C’de Döngüler

Öncelikle “Döngü nedir?” sorusuna cevap arayalım. Şunu söylemeliyim ki: Döngü programlamanın temelidir ve bir programcının en iyi yardımcısıdır. Sözlük anlamına baktığımız zaman: “Bir olayın birden fazla tekrarlanması” diye geçer.

while
İlk olarak while döngüsünü ele alacağım. Çünkü temel, en basit döngü budur. Önce şarta bakar doğruysa kodu çalıştırır, sonra tekrar bakar ve doğruysa tekrar çalıştırır. Ve bu şart yanlış oluncaya kadar böyle devam eder..

while(/*şart*/)
{
	//Her adımda çalışacak kodlar
}

Şartların nasıl belirtileceğine karar yapıları konusunda değinmiştim.

do – while
Bunun while’dan farkı, şartın sonra kontrol edilmesidir. Yani önce kodu çalıştırır, sonra şartı kontrol eder ve doğruysa tekrar, tekrar çalıştırır. Bu yüzden şart yanlış olsa dahi bir kez çalışacaktır.

do
{
	//Her adımda çalışacak kodlar
}
while(/*şart*/);

Burada dikkat edilmesi gereken bir diğer husus da, diğer döngülerden farklı olarak bu döngü noktalı virgül (;) ile biter.

Şimdi de programlamada oldukça sık kullanılan bir yapının örneğine bakalım;

int i;
i=0;//İlk değer
while(i<10/*Son değer*/)
{
	printf("\n%d",i);
	i++;
}

(“i++;”, “i=i+1;” demektir)
Bu yapı ile i = 0..9 arası değerler alacaktır, her adımda da belirttiğim kısıma yazacağınız kodlar çalışacaktır. Son olarak değişkenimiz 10 değerini alıp döngüden çıkacaktır. Ama bu iş için bir kolaylık sunuluyor bize, “For döngüsü”.

for
Bu döngü sık kullanılan bu yapının kalıplaştırılmış halidir. Genel kullanımı bir değişkenin belirli aralıktaki tüm değerleri sırayla alıp her seferinde bloğu çalıştırmaktadır, örneği aşağıdaki gibidir.

for(i=0;i<10;i++)
{
	printf("\n%d",i);
}

(Bu örnek bi üstteki while örneğiyle aynı işlevdedir.)

Biraz daha teknik yaklaşırsak, aşağıdaki gibidir;

for(/*ilk atama*/;/*şart*/;/*artırım*/)
{
	//Her adımda çalışacak kodlar
}

Örnek sorular

  1. 1’den klavyeden girilen sayıya kadar olan tüm sayıları sırayla ekrana yazdıran program kodunu yazınız.
    Örneğin, kullanıcı 7 girmiş ise; 1 2 3 4 5 6 7 yazacak.(Biçimlendirme önemsiz)
  2. Klavyeden girilen sayıdan 1’e kadar olan tüm sayıları sırayla ekrana yazdıran program kodunu yazınız.
    Örneğin, kullanıcı 7 girmiş ise; 7 6 5 4 3 2 1 yazacak.(Biçimlendirme önemsiz)
  3. 1’den klavyeden girilen sayıya kadar olan tüm sayıları toplayan program kodunu yazınız.
    (Toplam formülü kullanmadan, döngü ile)
  4. Kullanıcının girdiği sayının faktöriyelini hesaplayan program kodunu yazınız.
  5. Kullanıcının istediği miktarda girdiği sayıların ortalamasını hesaplayan program kodunu yazınız. (Önce kaç sayı gireceğini soracak, sonra sayıları soracak)
  6. Kullanıcının istediği sürece girdiği sayıların ortalamasını hesaplayan program kodunu yazınız. (Her sayıdan sonra yeni sayı girecek misiniz diye soracak (1:Evet 0:Hayır))
  7. Kullanıcının girdiği sayının kaç basamaklı olduğunu bulan program kodunu yazınız.
  8. Kullanıcının girdiği sayının rakamları toplamını bulan program kodunu yazınız.
  9. Kullanıcının bir dik kenar uzunluğunu girdiği ikizkenar dik üçgeni ekrana çizdiren program kodunu yazınız.
    Örneğin 5 girmiş ise;

    *
    **
    ***
    ****
    *****
    
  10. Kullanıcının bir dik kenar uzunluğunu girdiği sağa yaslı ikizkenar dik üçgeni ekrana çizdiren program kodunu yazınız.
    Örneğin 5 girmiş ise;

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

Çözümlerini buradan indirebilirsiniz.

Tags: , , , , , ,

No comments yet.

Leave a Reply

*