Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanCanan Paşa Değiştirilmiş 8 yıl önce
1
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) for Komutu for Komutu do-while Komutu do-while Komutu Bileşik Komut Bileşik Komut İçiçe Döngüler İçiçe Döngüler break ve continue Komutları break ve continue Komutları Döngülerde Yapılan Temel Hatalar Döngülerde Yapılan Temel Hatalar
2
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 2Giriş Döngü komutları komutların bir çok kez yeniden yürütülmesini sağlayan, programlamada kullandığımız önemli yapılardan biridir. C dilinde bize bu özelliği sağlayan komutlar while for do-while komutlarıdır.
3
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 3 while ( koşul_ifadesi ) komut; while Komutu while döngüsünde komut’un yürütümü koşul ifadesi doğru olduğu sürece devam eder.
4
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 4 while Komutu printf(“Bir pozitif sayi giriniz:”); scanf(“%d”,&n); while(n<0) scanf(“%d”,&n); printf(“En son n degeri: %d”,n); Örnek:
5
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 5 while Komutu sayac=1; → İlk değer atama aşaması while(sayac<=10) → Kontrol aşaması { printf(“%3d”,sayac); sayac=sayac+1; → Güncelleme aşaması } while Komutunun Aşamaları
6
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 6 while Komutu Örnek : Pozitif sayıların girildiği ve girilen bu pozitif sayıların en büyüğünün bulunduğu programı yazınız. Programda sayı girme işlemi negatif bir sayı girilinceye kadar devam etmelidir. –
7
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 7 while Komutu #include int main(void) { int sayi,max=0; /*En buyuk sayinin sifir oldugunu kabul edelim.*/ printf("Sayi giriniz: "); scanf("%d",&sayi); while(sayi>0) { /*Eger girilen sayi max da bulunan buyuk sayidan daha buyukse yeni girilen sayi max degiskenine atanir*/ if(sayi>max) max=sayi; printf("Sayi giriniz: "); scanf("%d",&sayi); } printf("En buyuk pozitif sayi: %d",max); return(0); }
8
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 8 Diğer Operatörler Bileşik Atama Operatörleri: +=, -=, *=, /=, %= değişken = değişken operatör ifade; değişken operatör = ifade;
9
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 9 Diğer Operatörler Artırma ve Azaltma Operatörleri: ++, -- sayac=sayac+1; sayac++; (son-ek) ++sayac; (ön-ek)
10
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 10 int i=20, k=2, bul; printf (“bul=%d”, bul=++i + 5 – k--); Yukarıdaki program parçası çalıştırıldığında ekranda görülecek değer nedir? ÇIKTI: bul=24 Diğer Operatörler
11
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 11 for Komutu for ( ilk_değer_atama_komutu ; kontrol_ ifadesi ; güncelleme_ komutu) döngü_komutları;
12
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 12 for Komutu for ( ilk_değer_atama_komutu ; kontrol_ ifadesi ; güncelleme_ komutu) döngü_komutları;
13
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 13 for Komutu while döngüsü sayac=1; while(sayac<=10) { printf(“%3d”,sayac); sayac++; } Eşdeğer for döngüsü for(sayac=1; sayac<=10; sayac++) printf(“%3d”,sayac);
14
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 14 for Komutu Örnek: Pozitif bir n sayısını ve bu n sayısı kadar da tamsayıyı girdi olarak alan programı yazınız. Ayrıca, bu programda girilmiş olan n tane tamsayının kaçının negatif, pozitif ve sıfır olduğunu hesaplayıp ekranda gösteriniz.
15
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 15 for Komutu #include int main(void) { int pos=0,neg=0,sifir=0,n,sayi,i; printf("Kac tane sayi gireceksiniz: "); scanf("%d",&n); /*Dongu icinde n tane sayinin girilmesi ve islenmesi*/ for(i=1;i<=n; i=i+1) { printf("%d. sayi: ",i); scanf("%d",&sayi); /*Girilen sayinin pozitif, negatif veya sifir olup olmadiginin belirlenmesi*/ if(sayi>0) pos++; else if(sayi<0) neg++; else sifir++; } /*Sonuclarin gosterilmesi*/ printf("\n%d adet pozitif sayi.\n",pos); printf("%d adet negatif sayi.\n",neg); printf("%d adet sifir sayisi.\n",sifir); return(0); }
16
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 16 for Komutu for(i=0,j=0; i -8; i++, j--) printf(“%3d %3d\n”,i,j); toplam=0; i=1; for(; i<=10; i++) toplam+=i; toplam=0; i=1; for(; i<=10; ) { toplam+=i; i++; } for Komutunun Farklı Kullanımları
17
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 17 do-while Komutu do komut; while (koşul_ifadesi );
18
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 18 do-while Komutu while ve for komutlarında koşul ifadesi, döngünün başında kontrol edilirken, do-while komutunda kontrol işlemi döngünün sonunda yapılır. Dolayısıyla, do-while komutunun diğerlerinden en büyük farkı, içerisindeki komut ya da komutların (koşul ifadesi doğru olsa da olmasa da) en az bir kere çalışacak olmasıdır.
19
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 19 do-while Komutu Örnek : Aşağıdaki seçenekleri görüntüleyecek ve seçeneklere göre aşağıda tanımlanan seçeneğin alanını bulacak bir C programı yazınız. 1. Kare 2. Daire 3. Bitti
20
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 20 do-while Komutu #include #define PI 3.141592654 int main(void) {int cevap; double a,r,alan; do { /*Menunun goruntulenmesi*/ printf("\n1. Kare"); printf("\n2. Daire"); printf("\n3. Bitir"); printf("\n\nSeceneginizi belirtiniz: "); scanf("%d",&cevap); switch(cevap) { case 1: /*Karenin alaninin hesaplanmasi*/ printf("\nKarenin kenar uzunlugunu giriniz: "); scanf("%lf",&a); alan=a*a; printf("Karenin alani:%.2f\n",alan); break; case 2: /* Dairenin alaninin hesaplanmasi*/ printf("\nDairenin yaricap uzunlugunu giriniz: "); scanf("%lf",&r); alan=PI*r*r; printf("Dairenin alani:%.2f\n",alan); } while(cevap!=3); return(0); }
21
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 21 4. bölümde anlatılan bileşik komut döngülerde de kullanılır. Ayrıca, bileşik komutların if komutları, else komutları ve döngülerde kullanımı dışında farklı kullanımları da söz konusudur. Bileşik Komut
22
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 22 İçiçe Döngüler
23
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 23 İçiçe Döngüler Örnek : Bir başka örnek olarak aşağıdaki çıktıyı veren program parçasını içiçe döngüler kullanarak yazalım. 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 for( i=1; i<=8; i++) { for(j=i; j>=1;j--) printf(“%3d”,j); printf(“\n”); }
24
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 24 İçiçe Döngüler Örnek: Pozitif bir tamsayı olan n değerini girdi olarak alan ve n sayısına kadar olan bütün asal sayıları bulup ekranda gösteren bir C programı yazınız. Örnek Çıktı: Pozitif tamsayi giriniz: 24 1-24 arasindaki butun asal sayilar: ------------------------------------- 2 3 5 7 11 13 17 19 23 Örnek: Pozitif bir tamsayı olan n değerini girdi olarak alan ve n sayısına kadar olan bütün asal sayıları bulup ekranda gösteren bir C programı yazınız. Örnek Çıktı: Pozitif tamsayi giriniz: 24 1-24 arasindaki butun asal sayilar: ------------------------------------- 2 3 5 7 11 13 17 19 23
25
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 25 #include int main(void) {int n; int num,bayrak,i; printf("Pozitif tamsayi giriniz: "); scanf("%d",&n); printf("\n 1-%d arasindaki butun asal sayilar:",n); printf("\n-------------------------------------\n"); for (num=2 ; num<=n ; num=num+1) { bayrak=1; i=2; while ((i<num) && (bayrak==1)) { if((num%i)==0) bayrak=0; i=i+1; } if (bayrak==1) printf("%3d",num); } printf("\n"); system("pause"); return 0; } 25 İçiçe Döngüler
26
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 26 İstediğiniz döngü çeşitlerini içiçe kullanabilirsiniz. İstediğiniz kadar döngü içiçe kullanabilirsiniz. Not: Gereksiz döngülerden kaçınmanız programın verimliliğini artıracaktır. Unutmayınız!! İstediğiniz döngü çeşitlerini içiçe kullanabilirsiniz. İstediğiniz kadar döngü içiçe kullanabilirsiniz. Not: Gereksiz döngülerden kaçınmanız programın verimliliğini artıracaktır. Unutmayınız!! İçiçe Döngüler
27
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 27 break ve continue Komutları break komutu herhangi bir döngü komutu içinde kullanıldığında döngüden çıkılmasını sağlar. for( i=1; i<=10;i++) { printf(“Sayi giriniz:”); scanf(“%d”,&sayi); if(sayi<=0) break; } printf(“%d pozitif sayi girildi.”,i-1);
28
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 28 break ve continue Komutları Döngünün herhangi bir aşamasında continue komutuna gelindiğinde, o turun yürütümü o noktada kesilir ve yürütüm bir sonraki tur ile devam eder. toplam=0; for( i=1; i<=5;i++) { printf("Sayi giriniz:"); scanf("%d",&sayi); if(sayi<=0) { i--; continue;} toplam+=sayi; } printf(“Toplam: %d”,toplam);
29
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 29 Döngülerde Yapılan Temel Hatalar ‘{’ ve ‘}’ ayraçlarının unutulması. toplam=0; carpim=1; for (i=1;i<n;i++) toplam +=i; carpim+=i; printf(“Toplam=%d Carpim=%d\n”,toplam,carpim);
30
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 30 Döngülerde Yapılan Temel Hatalar ‘;’ hatalı kullanımı. toplam=0; for (i=1;i<n;i++); toplam+=i; printf(“Toplam=%d\n”,toplam);
31
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 31 Döngülerde Yapılan Temel Hatalar Yapısal hatalar. Örnek: toplam=0; i=1; while(1) { if(i<=100) { toplam+=i; ++i; } else break; } printf(“Toplam=%d\n”,toplam); toplam=0; i=1; while(i<=100) { toplam+=i; ++i; } printf(“Toplam=%d\n”,toplam); toplam=0; i=1; while(i<=100) { toplam+=i; ++i; } printf(“Toplam=%d\n”,toplam); Yürütüm süresi (Execution time) azaltılır. Daha okunabilir ve anlaşılabilir yapı elde edilebilir. Yürütüm süresi (Execution time) azaltılır. Daha okunabilir ve anlaşılabilir yapı elde edilebilir.
32
C DERSİ Programlamaya Giriş Bölüm 5 Döngü Komutları 32 Okuma ve Alıştırma Ödevi “C Dersi Programlamaya Giriş”, N. E. Çağıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan, 5. Baskı, Ada Matbaacılık Ltd. Şti., 2013 ders kitabının 5. bölümünü evde okuyunuz ve bölüm sonundaki problemleri çözünüz.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.