5 Nisan 2011 Salı

İki for döngüsü ile yıldızlardan eşkenar dörtgen çizimi (baklava deseni), C#

Sadece iki for döngüsü ile yıldızlardan eşkenar dörtgen çiziminin programı. (Baklava deseni de denir.)
Murat Hacıömeroğlu “Java ile nesne yönelimli programlama” dersinde ödev vermişti. Kodu C#-ta yazmışım ama.
   1: void EskenarDortgen(int n)
   2: {
   3:     for (int i = 0; i < n * 2; ++i) {
   4:         int ln = i / 2;
   5:         int cs;
   6:         char ch;
   7:  
   8:         if (i % 2 == 0) { // " "
   9:             cs = Math.Abs(n / 2 - ln);
  10:             ch = ' ';
  11:         } else { // "*"
  12:             cs = (Math.Abs(Math.Abs(n / 2 - ln) - n / 2)) * 2 + 1;
  13:             ch = '*';
  14:         }
  15:         for (int j = 0; j < cs; ++j) Console.Write(ch);
  16:         if (i % 2 != 0) Console.WriteLine();
  17:     }
  18: }
Böyle güzel çıktı veriyor:
romb9out_thumb_thumb
Not: Girilen satır sayı (yukarıda 9 girilmiş) çift olursa, verilen yıldız baklavasının ucu ısırlmış olur. Çift satırlı romb çizebilen olursa, haber versin. (not defterinde, eşaralıklı yıldızlarla.) :).

15 yorum:

  1. iyi gunler ya bi problemim var ben C de boyle baklava dilimi deilde kelebek yapmak istiyorum yani yarım baklava dilimi olcak 2 tane ama sivri uclari birbirine bakıcak kelebek gibi bişi cıkıo ortaya yardım ederseniz cok sevinirim.

    YanıtlaSil
  2. Buyurun, yıldızlardan kelebek burada:
    http://programcidegirmeni.blogspot.com/2011/11/c-yildizlardan-kelebek-deseni-iki-ucgen.html

    Burdakı kadar lakonik değil, 9 for döngüsü içeriyor : ).

    YanıtlaSil
    Yanıtlar
    1. consol ile yıldızlardan kelebeği iki for ile yaparmısınız. lütfen acil yardıma ihtiyacım var.

      Sil
  3. Yalnız bu C#'tadır. C-de olması için sadece Console.WriteLine ve Console.Write komutlarını değiştirmek gerekir.

    YanıtlaSil
  4. Arkdasım cok tesekkur ediyorum hayatımı kurtardın gibi bişi oldu sevinçten kafamı dolaba vuruyorum saolasın hersey için:))

    YanıtlaSil
  5. merhabalar
    bn cde * ile eskenar üçgen bastırmak istyorum fakat bunu baska bir fonk.da yapıp daha snra main ile cagırmam gerekiyor ayrıca while yasak,sadece for kullanablrz.yardımcı olursanız cok sevinirm

    YanıtlaSil
    Yanıtlar
    1. bu şekilde yapabilirsin
      #include
      #include
      void ucgenciz();
      int kenar;
      main()
      {
      printf("\nEskenar ucgenin kenar uzunlugunu giriniz\n");
      scanf("%d",&kenar);
      ucgenciz();
      getch();
      }
      void ucgenciz()
      {
      int i,j;

      for(i=0;i=0;j--)
      printf(" ");
      for(j=i;j>=0;j--)
      printf("*");
      for(j=i-1;j>=0;j--)
      printf("*");

      printf("\n");
      }
      }

      Sil
  6. #include
    #include
    bunlar eksik çıkmış galiba

    YanıtlaSil
    Yanıtlar
    1. stdio.h
      conio.h

      Sil
    2. cok tesekkur ederim

      Sil
    3. bunu nasıl yapacağımızı detaylı bi şekilde anlatabilir misiniz? dürüst olmam gerekirse kodlarla ilgili pek bilgim yok :( eşkenar dörtgenden ödevim var. bunu yapabilirsem çok şahane olur. şimdiden teşekkürler

      Sil
  7. merhaba ben javada yıldızlarla yuvarlak ve dörtgen yapmak istiyorum bana yardımcı olur musunuz?

    YanıtlaSil
  8. arkadaşlar merhaba ya bir ödevim var fakat yapamadım yardım edermisiniz lütfen ben robot sekli cıkartmak istiyorum nasıl yapabilirim lütfen yardım edin

    YanıtlaSil
  9. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  10. iki forlu console ile yıldızdan kelebek yapma;
    static void Main(string[] args)
    {
    for (int i = 0; i < 10; i++)
    {
    for (int j = 0; j < 9; j++)
    {
    if (i <= 5 && ((j - i) <= -1 || (j + i) >= 9))
    {
    Console.Write("*");
    }
    else if (i <= 5)
    {
    Console.Write(" ");
    }
    else if (i >= 6 && ((j + i) <= 9 || (j - i) >= -1))
    {
    Console.Write("*");
    }
    else if (i >= 6)
    {
    Console.Write(" ");
    }
    }
    Console.WriteLine();
    }
    Console.ReadLine();

    }
    }
    }

    YanıtlaSil