algoritmalar ve programlama i blm 103levent.tc/courses/blm103/blm103_hafta5_secim_kontrol.pdfdr. v....
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/1.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/2.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/3.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/4.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/5.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/6.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/7.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/8.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/9.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/10.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/11.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/12.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/13.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/14.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/15.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/16.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/17.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/18.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/19.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/20.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/21.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/22.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/23.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/24.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/25.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/26.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/27.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/28.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/29.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/30.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/31.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/32.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/33.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/34.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/35.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/36.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/37.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/38.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/39.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/40.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/41.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/42.jpg)
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ı](https://reader030.vdocuments.site/reader030/viewer/2022040805/5e427a6effd70154d91f105a/html5/thumbnails/43.jpg)
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