27 Kasım 2011 Pazar

C#’ta Yıldızlı Kelebek tarifi, içerik: iki yarım üçgen, bir sürü boşluk…

Çıktı kodun altındadır.

Kod:

  1: void KelebekYildizli(int n)
  2:         {
  3:             if (n % 2 == 0) n++;
  4:             for (int i = 0; i < n / 2; i++)
  5:             {
  6:                 for (int j = 0; j < i + 1; j++)
  7:                 {
  8:                     Console.Write("*");
  9:                 }
 10:                 for (int j = 0; j < n - 2 * i - 2; j++)
 11:                 {
 12:                     Console.Write(" ");
 13:                 }
 14:                 for (int j = 0; j < i + 1; j++)
 15:                 {
 16:                     Console.Write("*");
 17:                 }
 18:                 Console.WriteLine();
 19:             }
 20:             for (int i = 0; i < n ; i++)
 21:             {
 22:                 Console.Write("*");
 23:             }
 24:             Console.WriteLine();
 25:             for (int i = (n-2) / 2; i >= 0 ; i--)
 26:             {
 27:                 for (int j = i+1; j > 0; j--)
 28:                 {
 29:                     Console.Write("*");
 30:                 }
 31:                 for (int j =  n - 2 * i - 2; j > 0; j--)
 32:                 {
 33:                     Console.Write(" ");
 34:                 }
 35:                 for (int j = i+1; j > 0; j--)
 36:                 {
 37:                     Console.Write("*");
 38:                 }
 39:                 Console.WriteLine();
 40:             }
 41:         }
 42: 

Çıktısı:
kelebekyildizli

Not: Girlen satır sayı tek değilse, bir üst tek satır gibi algılar (mes: 6 girildise, 7 algılar). Kelebeğin simetrik olması içindir.