Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 If yapısı ve karşılaştırma operatörleri, >=, ==, != 2 sayını büyük/küçük olanını bulma 3 sayıdan küçük olanını bulma Kompleks karşılaştırma ifadelerini.

Benzer bir sunumlar


... konulu sunumlar: "1 If yapısı ve karşılaştırma operatörleri, >=, ==, != 2 sayını büyük/küçük olanını bulma 3 sayıdan küçük olanını bulma Kompleks karşılaştırma ifadelerini."— Sunum transkripti:

1 1 If yapısı ve karşılaştırma operatörleri, >=, ==, != 2 sayını büyük/küçük olanını bulma 3 sayıdan küçük olanını bulma Kompleks karşılaştırma ifadelerini anlama –Mantıksal operatörler (!, &&, ||) Kademeli ve iç içe if yapıları Koşul Operatörü ? switch ifadesi Bu Günkü Konular

2 2 Generic C Program Yapısı #include /* main programın başlangıcını işaret eder */ main() { /* Değişkenler programda kullanılacak verileri tutar. */ Değişken Tanımlama; /* Program basamakları: I/O, hesaplamalar (ifadeler) */ İfade1; İfade2; … İfadeN; } /* program sonu*/

3 3 Örnek C Programı #include /* Fahrenheit’ı santigrata dönüştür */ main() { float fahrenheit, santigrat; printf(“fahrenheit sıcaklığı gir: “); scanf(“%f”, &fahrenheit); santigrat = (fahrenheit-32)/1.8; printf(“%f fahrenheit derece %f santigrat dereceye eşittir\n”, fahrenheit, santigrat ); } Kullanıcıdan dönüştüreceğin Fahrenhayt dereceyi girmesini iste santigrat = (fahrenhayt -32)/1.8 Fahrenhayt ve Santigrat dereceleri ekrana yazdır. Başla Bitir Programımız programın sonuna kadar adım adım çalışacak ifadelerden oluşuyor.

4 4 İki farklı seçenekten birini seçmesi gereken programlar hakkında ne düşünüyorsunuz? –Bir karşılaştırma yaparsın ve karşılaştırma sonucuna göre iki farklı ifadeden birini çalıştırırsın. –Karşılaştırma, karar verme ile ilgili verdiğimiz örnekleri hatırlayın –İki sayıdan büyük ve küçük olanını nasıl çözdüğümüzü hatırlayalım. If yapıları ile programlar

5 5 2 sayıdan min ve max olanını bulma Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste min ve max’ı ekrana yazdır sayı1 < sayı2 ? min = sayı1 E max = sayı2 min = sayı2 max = sayı1 H Başla Bitir 1.Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste 2.if (sayı1 < sayı2) –2.1. min = sayı1; –2.2. max = sayı2; 3.else (sayı1 >= sayı2) –3.1. min = sayı2; –3.2. max = sayı1; 4.min ve max’ı ekrana yazdır

6 6 if-else İfadesi Bir karşılaştırma yaparak programın iki seçenekten birini çalıştırmasına izin veriyor. Syntax: if (karşılaştırma) ifade1; [else ifade2;] Eğer karşılaştırma sonucu doğru ise ( true -1) ifade1 çalışacak, değilse ifade2 çalışacak. karşılaştırma Y N ifade 1 ifade 2

7 7 if-else Örnekler int finalNotu; printf(“Final notunu girin: “); scanf(“%d”, &finalNotu); if (finalNotu >= 45) printf(“Geçti \n"); int finalNotu; printf(“Final notunu girin: “); scanf(“%d”, &finalNotu); if (finalNotu >= 45) printf(“Geçti \n"); else printf(“Kaldı!\n");

8 8 Eğer birden fazla durum işleteceksek ne yapmalıyız? int finalNotu; … if(finalNotu >= 45) { printf(“Geçti!\n"); printf(“Tebrikler!\n"); } else { printf(“Kaldı!\n"); printf(“Daha iyi çalış.\n"); } blok (birleşmiş durumlar)

9 9 Süslü parantezlerin yeri int finalNotu; … if(finalNotu >= 45){ printf(“Geçti!\n"); printf(“Tebrikler!\n"); } else { printf(“Kaldı!\n"); printf(“Daha iyi çalış.\n"); } Süslü parantezlerin yeri bir stil sorunudur –Compiler için bir sorun değildir.

10 10 2 tam sayıdan min ve max olanını bulalım int a, b; int min, max; printf(“2 sayı girin: “); scanf(“%d%d”, &a, &b); if (a < b) { min = a; max = b; } else { min = b; max = a; } /* end-else */ printf(“%d ve %d küçüğü = %d\n”,a, b, min); printf(“%d and %d büyüğü = %d\n”,a, b, max); Kullanıcıdan sayı1 ve sayı2 girmelerini iste min ve max’ı yazdır sayı1 < sayı2 ? min = sayı1 E max = sayı2 min = sayı2 max = sayı1 H Başla Bitir

11 11 Programın Çalışması(1) int a, b; int min, max; printf(“2 sayı girin: “); scanf(“%d %d”, &a, &b); if (a < b) { min = a; max = b; } else { min = b; max = a; } /* end-else */ printf(“%d ve %d küçüğü = %d\n”,a, b, min); printf(“%d ve %d büyüğü = %d\n”,a, b, max); ? a ? min DATA ? 45 ? b 56 ? max 56 2 sayı girin: 45 ve 56 küçüğü = ve 56 büyüğü =

12 12 Programın Çalışması(2) int a, b; int min, max; printf(“2 sayı girin: “); scanf(“%d%d”, &a, &b); if (a < b) { min = a; max = b; } else { min = b; max = a; } /* end-else */ printf(“%d ve %d küçüğü = %d\n”, a, b, min); printf(“%d ve %d büyüğü = %d\n”, a, b, max); ? a ? min DATA ? ? b ? max 77 2 sayı girin: 77 ve 22 küçüğü = ve 22 büyüğü =

13 13 if ifadesinde karşılaştırma işlemleri İf ifadesinin içindeki karşılaştırma iki değeri karşılaştırır ve doğru True (1) veya yanlış False (0) değer üretir. –Karşılaştırma ifadesi olarak adlandırılır –Karşılaştırma operatörleri kullanılarak biçimlendirilirler. büyük eşit>= büyüktür> küçük eşit<= küçüktür< eşit değil!= eşittir== AnlamıOperator C de boolean tipi yok!C de boolean tipi yok! –Bu yüzden onun yerine int kullanılıyor. Genel kural: –“Sıfır = false, diğer sıfır olmayan değerler =true” karşılaştırma Y N ifade 1 ifade 2

14 14 Karşılaştırma operatörleri Örnek Varsayalım a = 1, b = 2, ve c = 3 1Trueb == 2 0Falsec != 3 0False(b + c) > (a + 5) 1True(a + b) >= c 1Truea < b DeğerKararİfade

15 15 Akış diyagramı 3 sayının küçük olanını bulma (1) Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste sayı1 < sayı2 ? evet Başla sayı1 < sayı3 ? sayı2 < sayı3 ? min = sayı2 min = sayı3 hayır min = sayı3 min = sayı1 evet hayır min sayısını yazdır Bitir

16 16 Kod: 3 sayının küçük olanını bulma (1) int a, b, c; int min; printf(“3 sayı giriniz: “); scanf(“%d%d%d”, &a, &b, &c); if (a < b){ if (a < c) min = a; else min = c; } else { if (b < c) min = b; else min = c; } printf(“%d, %d, %d küçüğü = %d\n”, a, b, c, min); Problem: 3 tam sayıdan küçük olanını bulunuz

17 17 Akış diyagramı 3 sayının küçük olanını bulma(2) Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste sayı2 < min ? Start hayır min = sayı1 min = sayı2 evet sayı3 < min ? hayır min = sayı3 evet min sayısını ekrana yazdır End

18 18 Kod: 3 sayının küçük olanını bulma (2) /* daha basit alternatif kodlama*/ int a, b, c; int min; printf(“3 sayı girin: “); scanf(“%d%d%d”, &a, &b, &c); min = a; /* farzet; a en küçüğü*/ if (b < min) min = b; /* b daha küçük mü? */ if (c < min) min = c; /* c daha küçük mü? */ printf(“%d, %d, %d küçüğü = %d\n”, a, b, c, min); Problem: 3 tam sayıdan küçük olanını bulunuz

19 19 Mantıksal Operatörler Ciddi durumlarda daha kompleks karşılaştırma işlemleri yapmak isteyebilirsiniz. –(x eşittir 5 mi) VEYA (x eşittir 8 mi) (x == 5) VEYA (x == 8) –(x büyüktür 5 mi) VE (x küçüktür 10 mu) (x > 5) VE (x < 10) –(x küçüktür y mi) VE (y eşit değil 20 mi) (x < y) VE (y != 20) C programlama dili daha komplex karşılaştırma işlemleri yapmak için 3 mantıksal operatör sunuyor –AND-VE (&&), OR-VEYA (||), NOT-DEĞİL (!)

20 20 Mantıksal Operatorler Karşılaştırma işlemlerini doğru mu True (1) veya yanlış mı False (0) diye birleştirmede kullanılır. –Mantıksal operatörler kullanılarak oluşturulan kompleks karşılaştırmalar if ifadelerinin içinde kullanılabilir. && (AND) 0 (False) 1 (True) NOT! OR|| AND&& AnlamSembol || (OR) 0 (False) 1 (True)

21 21 Mantıksal Operatörler (1) Varsayalım a bir integer değişken ve değeri 7 ve ch de bir char değişken ve değeri ‘q’ ExpressionInterpretationValue (a >= 6) && ( ch == 'q')True1 (a >= 6) || ( ch == 'A')True1 (a >= 6) && ( ch == 'A')False0

22 22 Mantıksal Operatörler (2) int sicaklik = 75; double yagmur = 0.35; /* ihtimal */ printf(“sicak? %d\n”, sicaklik > 70 && sicaklik 70 && sicaklik < 85); printf(“guzel? %d\n”, sicaklik > 70 && yagmur 70 && yagmur < 0.4); printf(“cok sicak/bulutlu?%d\n”, sicaklik 85); printf(“ruzgarli? %d\n”, yagmur > 0.3 && yagmur 0.3 && yagmur < 0.7); sicak? 1 guzel? 1 cok sicak/bulutlu? 0 ruzgarli? 1

23 23 /* Eğer a eşittir 4 VEYA a eşittir 10 */ if (a == 4 || a == 10){... } else {... } /* x 2 VE 20 arasında mı*/ if (x >= 2 && x <= 20){... } /* y 20’den büyük VE x eşit DEĞİL 30’a */ if (y > 20 && x != 30){... } Mantıksal Operatörler (3)

24 24 Birleşme ve Öncelik Kuralları >, >=, <, <=4 +, -3 *, /, %2 ++, --1 OperatorÖncelik ==, != &&, || =, +=, -=,.. Tüm operatörler için birleştirme ve öncelik kuralları Hatırlayalım, ifadeleri parantez ile ayırmak en iyi yöntemdir.

25 25 Kademeli if deyimleri Bazen birden fazla koşulu test etmek isteriz, ta ki biri sağlanana kadar. Örneğin “n” in 0 a eşit, 0 dan büyük ve 0 dan küçük olmasını test etmek istiyoruz. if (n < 0) printf(“n < 0\n”); else { if (n == 0) printf(“n == 0\n”); else printf(“n > 0\n”); } /* end-else */ İkinci if deyimini else içinde kullanmaktansa onun yerine aşağıdaki gibi kullanabiliriz. Kademeli if olarak adlandırılıyor. if (n < 0) printf(“n < 0\n”); else if (n == 0) printf(“n == 0\n”); else printf(“n > 0\n”);

26 26 kademeli if Syntax if (durum1) ifade1; [else if (durum2) ifade2; else if (durum3) ifade3; … else ifadeN;]

27 27 kademeli if Örneği int finalNotu; … if (finalNotu >= 90) printf(“Geçti: Notun A \n”); else if (finalNotu >= 85) printf(“Geçti: Notun A- \n”); else if (finalNotu >= 80) printf(“Geçti: Notun B+ \n”); else if (finalNotu >= 75) printf(“Geçti: Notun B \n”); else if (finalNotu >= 70) printf(“Geçti: Notun B- \n”); else if (finalNotu >= 55) printf(“Geçti: Notun C \n”); else printf(“Kaldı \n”);

28 28 Koşul operatörü Kodunuzun birçok yerlerinde aşağıdaki kodu bula bilirsiniz: if (ifade) durum1; else durum2; Bu ifadeyi daha kısa yazabilecek bir operatör var –koşul ? ifade1 : ifade2 Örnekler: a = (b >= 0) ? b : -b; a b’nin mutlak değerini alır. min = (a < b) ? a : b; min a ve b den minimum olanını alır

29 29 switch deyimi Bazen bir karşılaştırmada bir sürü değerden hangisi olduğunu seçmek isteriz. –Bu durumda kademeli if leri aşağıdaki gibi kullanabiliriz. if (not == 5) printf(“Mükemmel\n”); else if (not == 4) printf(“iyi\n”); else if (not == 3) printf(“geçer\n”); else if (not == 2) printf(“zayıf\n”); else if (not == 1) printf(“kalır\n”); else printf(“geçersiz not\n”); Bir alternatif olarak kademeli if deyimlerinin yerine C switch yapısını destekliyor.

30 30 switch deyimi- örnek Önceki kodun kademeli if yerine switch ile yeniden yazımı switch(not){ case 5: printf(“Mükemmel\n”); break; case 4: printf(“İyi); break; case 3: printf(“Geçer\n”); break; case 2: printf(“Zayıf\n”); break; case 1: printf(“Kalır\n”); break; default: printf(“Geçersiz not\n”); break; } /* end-switch */

31 31 switch deyimi - Syntax İfadedeki koşula göre seçeneklerden bir tanesini çalıştırır. switch(koşul) { case değer1: durum1; … [break;] case değer2: durum2; … [break;] default: durumN; … [break;] } /* end-switch */

32 32 Bir başka switch Örneği int main(){ char operator; int a, b; printf(“bir işlem girin: “); scanf(“%d%c%d”, &a, &operator, &b); switch(operator) { case ‘+’: printf(“%d+%d = %d\n”, a, b, a+b); break; case ‘-’: printf(“%d-%d = %d\n”, a, b, a-b); break; case ‘*’: printf(“%d*%d = %d\n”, a, b, a*b); break; case ‘/’: if(b == 0) { printf(“Error: sıfıra bölme hatası \n”); printf(“ işlem iptal edildi \n”); } else printf(“%d/%d = %d\n”, a, b, a/b); break; default: printf(“bilinmeyen işlem \n”); break; } /* end-switch */ return 0; } /* end-main */

33 33 break in switch içindeki rolü “break” bizi switch bloğunun dışına atar. Eğer break unutulur veya yazılmazsa kontrol bir sonraki case ten devam eder. switch(not){ case 5: printf(“Mükemmel\n”); case 4: printf(“İyi\n”); case 3: printf(“Geçer\n”); case 2: printf(“Zayıf\n”); case 1: printf(“Kalır\n”); default: printf(“Geçersiz not\n”); } /* end-switch */ If not == 3, aşağıdaki yazılacak –Geçer Zayıf Kalır Geçersiz not

34 34 break in switch içindeki rolü Bunu kasten kendi kodunda kullanmış olabilirsin –Böyle bir durumda niçin böyle yaptığına açıklama eklemelisin Örnek: switch(not){ case 5: case 4: case 3: case 2: gecen_sayisi++; /* diğerleri kalmış*/ case 1: toplam_sayi++; break; } /* end-switch */


"1 If yapısı ve karşılaştırma operatörleri, >=, ==, != 2 sayını büyük/küçük olanını bulma 3 sayıdan küçük olanını bulma Kompleks karşılaştırma ifadelerini." indir ppt

Benzer bir sunumlar


Google Reklamları