C Dersleri 5: “For” Döngüsü

Aynı işlemi birden fazla değer için yapmak istersek ne yapacağız? Her değer için ayrı ayrı işlemi yazmak hiç de mantıklı olmayacaktır. Bunun yerine o işlem için bir döngü oluşturmamız gerekir. Bunu yapmanın yolu da for, while ya da do-while döngüleridir.

Diyelim ki 1′den 20′ye kadar bütün sayıların karelerini bulmak istiyoruz. Yazacağımız program şu şekilde olacaktır:

  1. #include <stdio.h>
  2. main()
  3. {
  4.     int sayi,kare;
  5.    
  6.     for (sayi=0;sayi<21;sayi=sayi+1)
  7.     {
  8.         kare=sayi*sayi;
  9.         printf("%d\t%d\n",sayi,kare);
  10.     }
  11. }

Bu programın çalıştırdığınızda şu sonucu elde edersiniz:

For döngüsü şu şekilde yazılır:

  1. for ([değişkenin başlangıç değeri];[koşul];[döngü başa döndüğünde yapılacak işlem])

Döngü şu şekilde çalışır: Önce sayı kendisiyle çarpılır (yani karesi alınır). Ekrana ilk olarak sayi, sonra karesi yazdırılır. Daha sonra döngü başa döner ve sayının değeri bir arttırılır. Gerekli koşul sağlanıyorsa aynı işlemler tekrarlanır ve döngü devam eder.

İlk sayımız for döngüsünde belirttiğimiz gibi 0′dır. 0′ın karesi yine 0 olduğu için ekrana “0 0″ yazdırılır. Döngü printf işlemini gerçekleştirdikten sonra for satırına döner.Sayının değeri bir arttırılır ve böylece yeni sayımız 1 olur. 1, sayı<21 koşulunu sağladığı için işleme devam edilir. Döngü bu şekilde sürüp gider. Sayı 20 olup gerekli işlemler yapıldığında döngü yine başa döner ve değer yine bir arttırılır. Yeni sayı 21 olur fakat 21, sayı<21 koşulunu sağlamadığı için döngü sonlanır. Bundan sonra yapılacak bir işlem olmadığı için program da sonlanmış olur.

“{ }” kullanmamızın nedeni printf ve kare alma işlemlerini döngü içine almak istememizdir. Parantezleri kaldırdığınızda sonucun farklı olacağını görebilirsiniz.

“/t”, sayı ile karesi arasında bir sekmelik boşluk bırakmak için kullanılmıştır.

for komutunun sonuna noktalı virgül koyulmadığına dikkat etmişsinizdir.

Siz de for döngüsüyle 0′da 100′e kadar 10′un katları olan bütün sayıları santigrat derece kabul edip bunları fahrenayta çeviren bir program yazın. Kullacağınız formül s=(5/9)*(f-32) dir. Programı bir sonraki derste bulabilirsiniz.

Konuyla ilgili her türlü soru, sorun ve eleştirileriniz için benimle iletişime geçebilirsiniz.

İyi çalışmalar…

Benzer Yazılar




Yorumlar

“C Dersleri 5: “For” Döngüsü” için 5 Yorum yapılmış.

  1. fatih atak 09 Ekim 2008 18:07

    mrblar,1den 100e kadar olan sayıları yan yana yazdıran ve en sonunda toplamını gösteren programda,şöyle bişeyler yaptım ama sayıları yan yana göstermiyor direk toplamını gösteriyor yanlışım nerde acaba tşkler…
    #include
    main()
    {
    int i,t=0;

    for(i=1;i<=100;i=i+1);
    {
    t=t+i;
    printf(”%5d”,i);
    }
    printf(”\n toplam=%d\n”,t);
    }

  2. Ufuk Eskici 10 Ekim 2008 14:50

    Sorun for döngüsünün sonuna koyduğunuz “;”. Kodu şu şekilde yazıp çalıştırırsanız istediğiniz sonucu elde edersiniz:

    #include
    main()
    {
    int i,t=0;
    for(i=1;i<=100;i=i+1)
    {
    t=t+i;
    printf(”%d\n”,i);
    }
    printf(”\ntoplam=%d\n”,t);
    }

  3. fatih atak 10 Ekim 2008 16:56

    tskler….hocam eyw.

  4. rıdvan 02 Kasım 2008 03:41

    merhaba, ben 0 ile 1000 arasındaki 7 nin katlarını göstermek istiyorum ama bu sayılar arasından 21 i gözükmesini istemiyorum bunu nasıl yazabilirim… yardımlarınız için teşekkürler

  5. Ufuk Eskici 02 Kasım 2008 12:44

    7′yi sırayla 1,2,3… ile çarpmalısınız. Böylece 7′nin katlarını bulursunuz. 1000 sınırı için “if” ile her sonucun 1000′den küçük olup olmadığını kontrol edeceksiniz. Sonuç 1000′i geçene kadar döngü devam etmeli. Bir de 21 için her sonucun 21′e eşit olup olmadığını kontrol edeceksiniz. Eşit değilse ekrana yadıracaksınız. Yani bu döngüde 2 kontrol yapılacak. Bu 2 kontrolü geçen sayıları ekrana yazdıracaksınız.
    Kolay gelsin.

Yorum Yapın




Kapat
E-posta ile paylaş