12 : Yıldızlarla Üçgen Oluşturma - içiçe döngü

Döngü kullanarak tekrarlanan işleri yapmayı önceki örneklerde görmüştük. Şimdi bu bilgilerle aşağıdaki şekli oluşturalım:

*
* *
* * *
* * * *
* * * * *

Burada şekil oluşturulurken yine bir döngü kurup her indisi kontrol edip yeni bir printf fonksiyonu ile çizdirebiliriz. Kodu gösterirsek:


 ucgen.c
#include<stdio.h>
 
int main()
{
   int i = 0;
   for (i = 0; i < 5; i++)
   {
       if (i == 0) 
       printf("* \n");
       if (i == 1)
       printf("* * \n");
       if (i == 2)
       printf("* * * \n");
       if (i == 3)
       printf("* * * * \n");
       if (i == 4)
       printf("* * * * * \n");
       
   }
return 0;
}
  

Burada yine aynı problemi görüyoruz. Bu üçgen 5 basamaklı bir üçgen. Ancak biz bu üçgeni 15 adımlı da yapmak isteyebilirdik. Aynı kodu 15 kere yazmak zorlaştı. Peki 150 adımlı olsa yapılabilir miydi?

Bu tür problemler için iç içe döngüler kurabiliriz. Bu şekilde her bir döngü farklı bir boyutu kontrol etmiş olur. Kod üzerinden inceleyelim.

#include<stdio.h>
 
int main()
{
   int i = 0, j = 0;
   for (i = 0; i < 15; i++)
   {
       for (j = 0; j < i ; j++)
       {
           printf("* ");
       }
       printf("\n");       
   }
return 0;
}
  

Bu kod 15 adımlı bir üçgen oluşturmasına rağmen bir önceki koddan daha az satırla yazılabildi. Buradaki mantık ise şöyledir: İçerideki j indisli döngü dıştaki i indisli döngünün her bir dönüşü için tam tur dönecektir. Yani i 0'a eşitken j döngüsü koşulu sağladığı sürece çalışacak ve bu döngü bittiğinde i 1 artarak j indisli döngünün bir kez daha çalışması sağlanacaktır. Burada üçgen olması için iç döngü j < i koşuluna göre çalışıyor. j < 15 yapsak bir kare elde ederdik. Deneyip görebilirsiniz.

Kendiniz de denemek isterseniz şu grafiği çıkartmaya çalışabilirsiniz:

* * * * *
* * * *
* * *
* *
*

Yorumlar

Bu blogdaki popüler yayınlar

31 : Fonksiyonda Struct Kullanımı

Structure - 29 : Yapılar ile Öğrenci Bilgileri Tutma

23 : İki Karakter Dizisini Birleştirme