algoritmalar ve programlama i blm 103levent.tc/courses/blm103/blm103_hafta5_secim_kontrol.pdfdr. v....

43
Algoritmalar ve Programlama I – BLM 103 Fenerbahçe Üniversitesi Hafta 5: Seçim ve Kontrol Yapıları

Upload: others

Post on 26-Jan-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM 103

Fenerbahçe Üniversitesi

Hafta 5: Seçim ve Kontrol Yapıları

Page 2: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

5. Hafta İçeriği

• Durum Yapıları• Eğer (if) İfadesi

• Eğer/Değilse (İf/Else) İfadesi

• Döngü Yapıları• While İfadesi

• For İfadesi

• Do-While İfadesi

• Diğer Kontrol Mekanizmaları• Switch

• Break ve Continue İfadeleri

2/43

Page 3: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Kontrol Mekanizmaları

• Koşul İfadeleri• Bir koşula başlı olarak programın çeşitli kararlar vermesini sağlayan yapılardır.• Eğer (if)• Eğer-Değilse(if-else)• Anahtar (switch)

• Tekrar ifadeleri• Bir kod parçacığını birden çok defa çalıştırmak için kullanılan yapılardır.• while• for• do-while

3/43

Page 4: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Eğer (If)

• if (durum)çalıştırılacak olan kod;

Durum?

İşlem

T

Y

Durum Doğru veya Yanlış olarak hesaplanan bir ifadedir.İşlem durum’un doğru olması durumunda çalıştırılacak olan kod parçacığıdır.

4/43

Page 5: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Eğer (if) Örnekleri

• if (x <= 10)y = x * x + 5;

• if (x <= 10) {y = x * x + 5;z = (2 * y) / 3;

}

• if (x <= 10)y = x * x + 5;

z = (2 * y) / 3;

Her iki satır, ifadenin doğru olduğu durumda çalıştırılacaktır

İfadenin doğru olması durumunda, ilk satır çalıştırılacaktır. İkinci satır bir koşula bağlı değildir. Her zaman çalıştırılmaktadır.

5/43

Page 6: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Eğer (if) Örnekleri

• if (0 <= yas && yas <= 11)

cocuk += 1;

• if (ay == 4 || ay == 6 ||

ay == 9 || ay == 11)

printf(“Girilen ay 30 gündür.\n”);

• if (x = 2)y = 5;

• == yerine = yazılmamalıdır.

Eşitli her zaman doğrudur, yanlış bir kullanım!

6/43

Page 7: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

İç İçe Eğer (if)

if (x == 3)

if (y != 6) {

z = z + 1;

w = w + 2;

}

if ((x == 3) && (y != 6)) {

z = z + 1;

w = w + 2;

}

Aynı İfadedir

7/43

Page 8: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Eğer-Değilse (If-else)

• if (durum)islem1;

else

islem2;

Durum

islem1 islem2

D Y

8/43

Page 9: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Eğer-Değilse Örneği

• if (x) {

y++;

z--;

}

• else {y--;

z++;

• }

9/43

Page 10: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Else ile If Eşleştirme

• Else ifadesi daima en yakın if ile eşleşmektedir.if (x != 10)

if (y > 3)

z = z / 2;

else

z = z * 2;

if (x != 10) {

if (y > 3)

z = z / 2;

else

z = z * 2;

}

Aynı işlem:

if (x != 10) {

if (y > 3)

z = z / 2;

}

else

z = z * 2;

Farklı işlem:

10/43

Page 11: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

If-Else Zincirleri

• if (ay == 4 || ay == 6 || ay == 9 || ay == 11)

printf(“Girilen ay 30 gündür.\n”);

else if (ay == 1 || ay == 3 ||

ay == 5 || ay == 7 ||

ay == 8 || ay == 10 ||

ay == 12)

printf(“Girilen ay 31 gündür.\n”);

else if (ay == 2)

printf(“Girilen ay 28 veya 29 gündür.\n”);

else

printf(“Tanımsız ay.\n”);

11/43

Page 12: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

While

• while (durum)tekrarlayan islemler;

Durum?

Tekrarlayan İşlemler

D

Y

Durum değeri doğru kaldıkça, tekrarlayan işlemler çalıştırılır.

Durum koşulu, tekrarlayan işlemlere başlanmadan önce kontrol edilmektedir.

12/43

Page 13: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

While Örneği

x = 0;

while (x < 10) {

printf(“%d ”, x);

x = x + 1;

}

13/43

Page 14: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Sonsuz Döngüler

• Aşağıdaki döngü hiçbir zaman sona ermez:

• x = 0;while (x < 10)

printf(“%d ”, x);

• Kontrol edilen x<10 işlemini, değiştirecek bir atama olmadığı için, döngü sonsuza kadar dönecektir.

14/43

Page 15: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

For

• for (Başlangıç Ataması; Durum?; Tekrar Atama)döngü islemleri

Başlangıç Ataması

Durum?

Döngü İşlemleri

Tekrar Atama

Y

D

İlk olarak başlangıç ataması gerçekleştirilir.Sonra Durum kontrol edilirEğer doğru ise döngü işlemi gerçekleştirilir.Tekrar atama yapılır.Durum kontrolü yanlış olana kadar süreç devam eder.

15/43

Page 16: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

For Örneği

for (i = 0; i < 10; i++)

printf(“%d ”, i);

16/43

Page 17: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

For Örneği

• for (i = 0; i <= 10; i ++)

printf("%d ", i);

• harf = 'a';

• for (c = 0; c < 26; c++)

printf("%c ", harf+c);

17/43

Page 18: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

İç İçe Döngüler

for (mp1 = 0; mp1 < 10; mp1++) {

for (mp2 = 0; mp2 < 10; mp2++) {

printf(“%d\t”, mp1*mp2);

}

printf(“\n”);

}

18/43

Page 19: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

İç İçe Döngüler

• for (dis = 1; dis <= input; dis ++) {

for (ic = 0; ic < dis; ic++) {

toplam += ic;

}

}

19/43

Page 20: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

For ve While Karşılaştırması

• For döngüsü, ilk çalıştırıldığında bir atama yaparak başlar. Atamadan sonra kontrol ifadesi gelir, ve for’un kapsamındaki kod parçacıkları çalıştırılır. Ardından ikinci atama bloğu çalıştırılır. Tekrar kontrol bloğu kontrol edilerek, yanlış olana kadar işlem devam ettirilir.

• While döngüsünde sadece tek bir koşul kontrol edilir. Koşul doğru olduğu sürece döngü devam eder.

• Her iki tür döngü çeşiti, birbirleri cinsinden yazılabilir.

20/43

Page 21: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Do-While

• dodöngü işlemi;

• while (durum);Döngü işlemi

Durum?D

Yİlk başka herhangi bir koşula bakmadan döngü işlemini çalıştırır. Sonrasında durum’u kontrol eder.

21/43

Page 22: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Switch

• switch (ifade) {case deger1:

islem1; break;

case deger2:

islem2; break;

default:

islem3;

• }

ifade

= deger1?

= deger2?

islem1

islem2

islem3

D

D

Y

Y

22/43

Page 23: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Switch Örneği

• switch (ay) {

case 4:

case 6:

case 9:

case 11:

printf(“Ay 30 gündür.\n”);

break;

case 1:

case 3:

printf(“Ay 31 gündür.\n”);

break;

case 2:

printf(“Ay 28 veya 29 gündür.\n”);

break;

default:

printf(“Tanımsız ay.\n”);

}

23/43

Page 24: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Switchler

• Case ifadeleri sabit sayı olmak zorundadır.

• Eğer satırlardan sonra break konulmazsa, diğer case’den işlem yapmaya devam edecektir.

• switch (a) {case 1:printf(“A”);

case 2:printf(“B”);

default:printf(“C”);

}

Eğer a 1 ise, “ABC”.Eğer a is 2, “BC”Değilse, “C"Bastırılacaktır.

24/43

Page 25: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

C ile Problem Çözme

• Basit Yapılar

• C İfadeleri, Operatörleri

• Kontrol İfadeleri, if-else, switch

• Döngü İfadeleri, while, for, do-while

25/43

Page 26: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 1: Pi Hesaplama

• serisi açılımını kullanıcıdan alınacak N sayısı kadar bulunuz.

𝜋 = 4 −4

3+4

5−4

7+⋯+ (−1)𝑛−1

4

2𝑛 + 1+⋯

Başla

Atamaları Yap

Giriş Al

Seriyi Hesapla

Çıktı Ver

Bitir

26/43

Page 27: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 1: Pi Hesaplama

Başlat

İlk Atamaları Yap

Giriş Al, N

Seriyi Hesapla

Çıktı Ver

Bitir

iterasyon indexdeğişkenini sıfırla

index<N

Sonraki terimi hesapla

index = index +1

for döngüsü

Y

D

27/43

Page 28: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 1: Pi Hesaplama

index teksayi ise?

Terimi çıkart Terimi Ekle

Pi’e Ekle

if-else

YD

iterasyon indexdeğişkenini sıfırla

index<N

Sonraki terimi hesapla

index = index +1

Y

D

28/43

Page 29: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 1: Pi Hesaplama

• for (index=0; index < N; index ++) {

if (index % 2) {

pi -= 4.0 / (2 * index + 1);

}

else {

pi += 4.0 / (2 * index + 1);

}

29/43

Page 30: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 1: Pi Hesaplama#include <stdio.h>

int main() {

double pi = 0.0;

int N, index;

printf("N sayisini giriniz ");

scanf_s("%d", &N);

for (index =0; index < N; index ++) {

if (index % 2) {

pi -= 4.0 / (2 * index + 1);

}

else {

pi += 4.0 / (2 * index + 1);

}

}

printf("Sonuc Pi: %f\n", pi);

return 1;

}

30/43

Page 31: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplama

• 100’den küçük tüm asal sayıları bulup, yazdırınız.• Bir asal sayı sadece kendisi ve 1’e tam bölünebilen sayılardır.

• Asal olmayan 100’den küçük sayıların 2-10 sayıları arasında bölenleri vardır.

Başla

Bitir

İlk Atamaları Yap

Değerleri Yazdır

31/43

Page 32: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplamaİlk Atamaları Yapsayi = 2

sayi < 100

Eğer Sayi Asal iseEkrana Bastır

sayi = sayi + 1

Y

D

Başla

Bitir

İlk Atamaları Yap

Değerleri Yazdır

32/43

Page 33: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplama

Sayıyı 2 ile 10 arasındaki sayılara

böl

Kalan Var?

Bastır sayi

Y

D

İlk Atamaları Yapsayi = 2

sayi < 100

Eğer Sayi Asal iseEkrana Bastır

sayi = sayi + 1

Y

D

33/43

Page 34: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplama

bölen = 2Atamasını Yap

bölen <= 10

sayi%bölen == 0Bayrak = yanlış

bölen = bölen + 1

Y

D

Sayıyı 2 ile 10 arasındaki sayılara

böl

Kalan Var?

Bastır sayi

Y

D

34/43

Page 35: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplama

• Bir sayının 2-10 arası bölünüp bölünemediğinin sonucunu tutmak için bayrak isimli değişken kullandık.

• Macro’lar kod okunabilirliğinin arttırılması için faydalıdırlar.

• #define DOGRU 1

#define YANLIS 0

35/43

Page 36: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 2: Asal Sayı Hesaplama

• #include <stdio.h>#define DOGRU 1#define YANLIS 0

int main () {int sayi, bolen, asalMi;

/* 2 - 100 arasındaki sayılar */for (sayi = 2; sayi < 100; sayi ++ ) {

asalMi = DOGRU; /* 2-10 arasında bölünebilirlik testi */

for (bolen = 2; bolen <= 10; bolen ++) if (((sayi % bolen) == 0) && (sayi != bolen))

asalMi = YANLIS; /* asal Degil */

if (asalMi)printf("Asal sayı: %d \n", sayi);

}

return 1;}

36/43

Page 37: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 3: Durum Makinası

• Kullanıcıdan karakterler alınız. Alınan karakterlerin içerisinde sırasıyla ABC girişinden kaç adet yapıldıysa ekrana gösteriniz.

• scanf_s veya getchar() fonksiyonu içe yapılabilir.

• Durum makinaları kavramı ile gerçekleyebilirsiniz.

37/43

Page 38: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 3: Durum Makinası

‘A'

‘AB'

‘ABC’

'A'

'B'

'C'

'A'

'A'

'A'

Başla

Diğer

Diğer

Diğer

Diğer

tekrar değerini arttır

Karakter Oku

durum = 0

durum = 1

durum = 2

'A’, durum=1

if ‘B', durum =2if ‘A’, durum =1else durum =0

'C, tekrar++,durum = 0‘A', durum =1else durum =0

D

D

D

Y

Y

Y

38/43

Page 39: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Substring: Code (Part 1)

• #include <stdio.h>

• İnt main() {

char giriş;

int durum = 0;

int tekrar = 0;

while ((giriş = getchar()) != '\n') {

switch (durum) {

• case 0:

if (giriş == ‘A’)

durum = 1;

break;

39/43

Page 40: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Substring: Code (Part 2)

• case 1:

if (giriş == ‘B’)

durum = 2;

else if (giriş == ‘A’)

durum = 1;

else

durum = 0;

break;

40/43

Page 41: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Substring: Code (Part 3)

• case 2:if (giriş == ‘C') {

tekrar++; durum = 0;

• }else if (giriş == ‘A') {

• durum = 1;else

• durum = 0;break;

}}printf("Tekrar sayisi = %d\n", tekrar);

• return 1;}

41/43

Page 42: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Break ve Continue

• break;

• O an çalışan döngüyü kırarak, bitirir. Döngü koşulunun yanlış olması beklenmez.

• continue;

• O aç çalışmakta olan döngüde, continue; satırı çalıştırıldığında, doğrudan döngünün başına gidilerek, döngü devam ettirilir.

42/43

Page 43: Algoritmalar ve Programlama I BLM 103levent.tc/courses/blm103/BLM103_hafta5_secim_kontrol.pdfDr. V. E. Levent Algoritmalar ve Programlama I –BLM103 For ve While Karşılaştırması

Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent

Örnek 4: Break ve Continue

• for (i = 0; i <= 20; i++) {

if (i%2 == 0) continue;

printf("%d ", i);

• }

• for (i = 0; i <= 20; i++) {

if (i%2 == 0) break;

printf("%d ", i);

• }

43/43