Konular

C Programlama Döngüler

 
Döngüler : C Programlama Dilinde döngüler bir veya birden fazla işlem satırını programcı tarafından belirlenen sayılarda tekrarlı bir şekilde çalıştırmak için kullanılan ifadelerdir. C Programlama Dilinde, for, while ve do-while olmak üzere üç tip döngü vardır. Diğer programlama dillerinde olduğu gibi, bu deyimlerle istenildiği kadar iç-içe döngü yapısı kullanılabilir. 
 
for Döngüsü : Yazım şekli olarak for deyiminin üç bileşeni vardır. Birincisi ve üçüncüsü atama ifadesi ve fonksiyon çağrısı iken, ortadaki ikincisi karşılaştırma ifadesidir.
 
for Döngüsü Genel Yazım Biçimi : 
for (başlangıç ifadesi; koşul ifadesi; artırma ve azaltma ifadeleri;)
{
........
döngüdeki deyimler
........
}
 
Başlangıç İfadesi : Döngü içerisinde kullanılacak olan temel atama işlemlerini içerir.
Koşul İfadesi : Mantıksal ifadelerin bulunduğu kısımdır.
Artırma ve Azaltma İfadeleri : Döngü içerisinde kullanılacak sayaç değişkenlerinin değerlerinin değiştirildiği komutları içerir.
 
Yazım biçiminde gördüğünüz gibi bileşenler arasında (;) bulunması zorunludur. Örneğin karşılaştırma ifadesi yazılma ise koşulun her zaman pozitif olduğu kabul edilir ve  döngü koşulsuz tekrarlanır.
 
for (;;) 
{
....
}
 
ifadesinde sonsuz bir döngü oluşturmuş oluruz.

Örnek for Kullanımı : 
#include<stdio.h>
int main( void )
{
 int x;
 for( x = 0 ; x < 20; x++ ) {
 printf("%2d: Merhaba Dunyan",(x+1));
 }
 return 0;
}

Programın Çıktısı :
C Programlama Döngüler
 
while Döngüsü : Tekrarlama deyimidir. İçine yazılan br veya birden fazla işlem satırlarını belirli bir koşul sağlandığı sürece tekrar tekrar çalıştırmak için kullanılır. Bir küme ya da deyim while kullanılarak bir çok kez tekrarlanabilir. Tekrarlanması için koşul sınaması döngüye girilmeden yapılır. Koşul olumlu olduğu sürece döngü tekrarlanır.

while Döngüsü Genel Yazım Biçimi : 
while (koşul ifadesi)
{
......
döngüdeki deyimler
......
}

while döngüsünde ilk olarak döngü koşulu test edilir ve koşul pozitif ise döngüye girilir. Eğer koşul negatif ise döngüye hiç girmeden bir sonraki satırdan çalışmasına devam eder. while döngüsünde ifadenin sonucu döngünün başlangıcında kontrol edildiğinden, ifadenin yanlış sonuç verdiği durumlarda döngü bir defa bile çalışmaz. while döngüsünde,  for döngüsünden farklı olarak,  ilk değer atama ve artırma/azaltma ifadeleri bulunmamaktadır. while döngüsünde ilk değer atama işlemi döngü öncesinde, artırma/azaltma işlemi ise döngü kod bloğu içinde yapılır.

Örnek while Kullanımı : 
#include <stdio.h>

main()
{
   int s=0;
   while(s <= 10)
   printf("%dn",s++);

 return 0;
}

Programın Çıktısı : 
C Programlama Döngüler

Sonsuz Döngü (Infinite Loop) :  Koşul ifadesinin negatif olduğu durumlarda döngü hiç bir zaman sonlanmaz ve çevrime devam eder. Bu duruma sonsuz döngü (infinite loop) denir.

for(;;)
printf("Sonsuz döngü içindeyim...n");
------------------------------------------------
...while
{
printf("Sonsuz döngü içindeyim...n");
}...

do-while Döngüsü : while döngüsüne benzemektedir. do döngüsünde koşul kontrolü döngü sonunda yapıldığından koşul sağlanmasa bile döngü en az bir defa çalışır. Bu yönü ile do döngüsü for ve while döngülerinden farklıdır. Bir anlamda do-while döngüsü post test loop yani test yapan döngü olarakta bilinmektedir.

do-while Döngüsü Genel Yazım Biçimi :
do
{
.....
döngüde yapılacaklar
.....

}
while (koşul ifadesi);

Diğer döngülerin aksine do-while döngüsünden sonra mutlaka (;) eklenmelidir.

Örnek do-while Kullanımı :
#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[])
{
    int x=0;
    do
    {
        printf("Karakokunu almak istediginiz sayiyi giriniz:n");
        printf("(Programi sonlandirmak icin 0 giriniz):");
        scanf("%d",&x);
        //math.h kütüphanesindeki sqrt fonksiyonunu kullanarak sayının karakökünü bulalım//
        //bulunan karakökü karekok isimli değişkende tutalım//
        double karekok=sqrt((double)x);
        printf("-------------------------------------------n");
        printf("Girilen deger:%dn",x);
        printf("Karakoku:%.2fn",karekok);
        //program sonlandırılmadığı durumda döngü devam eder//
        //program 0 ile sonlandırıldığında döngüden çıkılır.//
    } while (x !=0);
    printf("Program sonlandiriliyor...");
    return 0;
}

Programın Çıktısı : 
C Programlama Döngüler

Goto Yapısı : C programlama dilinde bulunan bir başka yapı, goto deyimidir. Belirlenecek etiketler sayesinde, programın bir noktasından bir başka noktasına atlamanızı sağlar. goto, bir döngü değildir ancak döngü olarak kullanılabilir. goto, çalışabilmek için etiketlere ihtiyaç duyar. Etiketler, vereceğiniz herhangi bir isme sahip olabilir. Goto kullanmak için, "goto" isminin yanına, atlamak istediğiniz yerin sembolik ismini yazmanız yeterlidir. "goto" ile bir döngünün icine atlamanıza izin yoktur, fakat bir döngünün dışına atlayabilirsiniz. Ayrıca bir fonksiyondan ötekine de "goto" ile geçemezsiniz. goto için tanımlanan etiketin sonuna (:) eklemek zorunludur.

Örnek goto Kullanımı :
#include<stdio.h>
int main( void )
{
 int x = 0;
 start:
 printf( "Merhaba Dunyan" );
 x++;
 if( x<10 ) goto start;

 return 0;
}
 
break ve continue Deyimleri : break deyimi döngüde belirli şartlar oluştuğunda döngüyü sonlandırmak için kullanılır. Benzer şekilde continue deyimide bir döngünün herhangi bir satırından itibaren döngünün geri kalan işlem satırlarını çalıştırmadan, döngünün baş tarafına dönme olanağı sağlar. do ve while döngülerinde, program continue deyimi ile karşılaştığında, koşul bölümünü kontrol eder ve döngünün çalışmasını devam ettirir. for döngüsünde ise, artırma ve koşul bölümünü çalıştırdıktan sonra döngünün çalışmasını devam ettirir.
 
Örnek break ve continue Kullanımı :
#include<stdio.h>
int main()
{
   int s;
   for (s=5;s<15; s=s+1)
   {
    if (s==8)
     break;
    printf("Break dongusunun icinde, s in Degeri simdi %dn",s);
   }
   for (s=5;s<15;s=s+1)
   {
    if (s==8)
     continue;
    printf("Continue dongusunun icinde, s in Degeri simdi %dn",s);
   }
}

Programın Çıktısı : 
C Programlama Döngüler

İç İçe Döngüler : Kodlamada bazı problemler tek bir döngü ile çözülemezler. Bir veya birden fazla döngüyü iç içe kullanma ihtiyacı doğabilir.

Örnek İç İçe Döngü Kullanımı :
Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir.
Örneğin: 371 bir Armstrong sayıdır çünkü 3^3 + 7^3 + 1^3 = 371. 

İç İçe geçmiş üç for döngüsü ile bütün Armstrong sayıları bulup ekrana yazan bir C programı :
 
#include <stdio.h>

int main()
{
   int x,y,z, kup, sayi, s=1;

   for(x=1; x<=9; x++)
   for(y=0; y<=9; y++)
   for(z=0; z<=9; z++)
   {
       sayi = 100*x + 10*y + z;
       kup  = x*x*x + y*y*y + z*z*z;

       if( sayi==kup ) printf("%d. %dn",s++,sayi);
   }

return 0;
}
Programın Çıktısı :
C Programlama Döngüler
Klavyeden girilen bir sayının faktöriyelini bulan bir programı for, do while, while ve if goto ile yazınız?
 
for
 
#include <stdio.h>
#include <conio.h>

main()
{
      int sayi,fakt,s;
      s=0;fakt=1;
      printf("Bir Sayi Giriniz:");
      scanf("%d",&sayi);
      for (s=1;s<=sayi;s++)
      {
          fakt*=s;
      }
      printf ("Sonuc=%d dir...",fakt);
      getch();
}
while
#include <stdio.h>
#include <conio.h>

main()
{
      int sayi,fakt,s;
      s=0;fakt=1;
      printf("Bir Sayi Giriniz:");
      scanf("%d",&sayi);
      s=1;
      while (s<=sayi)
{    
            fakt*=s;
            s++;     
}
printf ("Sonuc=%d dir...",fakt);
getch();
}
do while
#include <stdio.h>
#include <conio.h>

main()
{
      int sayi,fakt,s;
      s=0;fakt=1;
      s=1;
      printf("Bir Sayi Giriniz:");
      scanf("%d",&sayi);
      do
      {
      fakt*=s;
      s++; 
      }
      while (s<=sayi);
      printf ("Sonuc=%d dir...",fakt);
      getch();
}
if goto
 
#include <stdio.h>
#include <conio.h>

main()
{
      int sayi,fakt,s;
      s=0;fakt=1;
      s=1;
      printf("Bir Sayi Giriniz:");
      scanf("%d",&sayi);
      bayraktar:
      {
      fakt*=s;
      s++; 
      }
      if (s<=sayi)goto bayraktar;
      printf ("Sonuc=%d dir...",fakt);
            
      getch();
}
 
 
Yorumunuzu Ekleyin

C Programlama Dilinde Değişkenler

Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına ihtiyacı vardır. İşte değişkenler bu bellek adreslerine verilen isimlerdir.

11,298 Okunma 1 Yorum 12/05/2015 00:26:24 22/05/2015 19:41:38

#define Ve #include Önişlemci Tanımlamaları

Hemen bütün C derleyicileri, özel önişlemci emirlerini tanıyan bir önişlemciyi yapılarında bulundururlar.

10,217 Okunma Henüz yorum yapılmamış 22/05/2015 19:27:09 29/05/2015 14:10:10

C Programlama printf() Fonksiyonu

Standart C kütüphanesinin bir parçası olan printf() C Programlama Dili'nin genel amaçlı çıktı alma fonksiyonudur.

9,047 Okunma Henüz yorum yapılmamış 22/05/2015 18:53:57 03/06/2015 15:57:27

DEV C++ Kurulumu

C çalışmak için bir editöre ve Derleyiciye ihtiyacınız var. Belkide en kolay çözüm DEV C++ kullanmak. Çünkü ücretsiz ve GNU lisansı ile dağıılmakta ve Mingw/GCC derleyiciside içerisinde bulunmaktadır.

8,972 Okunma Henüz yorum yapılmamış 12/05/2015 14:32:18 12/05/2015 14:33:21

C Diline Giriş

Blok Yapısı, Açıklamalar, Boşluklar, Kapsam

8,353 Okunma Henüz yorum yapılmamış 15/05/2015 19:07:26 29/05/2015 14:03:24

C Fonksiyon Yapısı

7,987 Okunma Henüz yorum yapılmamış 17/06/2015 18:31:11 17/06/2015 18:46:12

Tip Dönüşümleri

7,689 Okunma Henüz yorum yapılmamış 22/05/2015 17:39:09 29/05/2015 17:50:06

Operatörler

C programlamada toplama, çıkarma, çarpma, mod alma operatörleri

7,546 Okunma Henüz yorum yapılmamış 29/05/2015 16:49:24 29/05/2015 16:49:35

Yükleniyor...