41
PROJE GÖREVİ DERS: PROGRAMLAMA KONU : KARAR KONTROL DEYİMLERİ Emirhan KOTAN 10/C 791

Karar kontrol deyi̇mleri̇

Embed Size (px)

Citation preview

Page 1: Karar kontrol deyi̇mleri̇

PROJE GÖREVİ

DERS: PROGRAMLAMAKONU : KARAR KONTROL DEYİMLERİ

Emirhan KOTAN 10/C 791

Page 2: Karar kontrol deyi̇mleri̇

1. KARAR KONTROL DEYİMLERİ PROGRAM YAZARKEN BAZI NOKTALARDA BELİRLİ KOŞULLAR ALTINDA GERÇEKLEŞMESİNİ İSTENİLEN DURUMLAR OLABİLİR. BU BÖLÜMDE ANLATILAN İF-ELSE VE SWİTCH DEYİMLERİ İLE BU TÜR KAPSAMLI PROGRAMLAR GELİŞTİRİLEBİLİR.

Page 3: Karar kontrol deyi̇mleri̇

3

IF-ELSE

Page 4: Karar kontrol deyi̇mleri̇

4

IF-ELSE DEYİMİ Yukarıdaki diyagramdan da görüleceği

üzere, programın akışı If deyiminin olduğu satıra geldiğinde parantezler içerisindeki KOŞUL ifadesi çalıştırılır. Bu koşul ifadesi true (Doğru) yada false (Yanlış) olmak üzere bir değer üretmektedir.

Page 5: Karar kontrol deyi̇mleri̇

5

NOT : EĞER PROGRAMIMIZIN AKIŞINDA SADECE KOŞULUN DOĞRU OLMASINA BAĞLI İŞLEM YAPILMASI İSTENİYOR, KOŞULUN YANLIŞ OLDUĞU DURUMLARDA İŞLEM YAPILMASI İSTENMİYORSA ELSE BLOĞU PROGRAM İÇERİSİNDE HİÇ KULLANILMAZ.

Page 6: Karar kontrol deyi̇mleri̇

6

KULLANIMI :if(koşul) Koşul doğruysa yapılacak işlemler; else Koşul yanlışsa yapılacak işlemler;

Page 7: Karar kontrol deyi̇mleri̇

7

NOT : EĞER IF VEYA ELSE’DEN SONRA SADECE BİR KOMUT YAZILACAK İSE KÜME PARANTEZLERİ ({}) KULLANILMAYABİLİR.

Page 8: Karar kontrol deyi̇mleri̇

8

ÖRNEK : KLAVYEDEN YAŞI GİRİLEN KİŞİNİN ASKERE GİDİP GİDEMİYECEĞİNİ BELİRTEN PROGRAM

Console.Write("Yaşınızı giriniz: ");İnt yaş = Convert.ToInt32 (Console.ReadLine());İf (yaş < 18)Console.WriteLine(Askere gidemezsiniz );ElseConsole.WriteLine(Askere Gidebilirsiniz);

Page 9: Karar kontrol deyi̇mleri̇

9

« = « operatörü : Eşitlik bakımından değişkenleri karşılaştırmak için = = operatörünü kullandığına, özellikle dikkat edin.

Page 10: Karar kontrol deyi̇mleri̇

10

ÖRNEK : İSTANBUL KAÇ YILINDA FETHİ EDİLMİŞTİRConsole.Write(İstanbul’un fethi kaç yılında olmuştur?/nCevabınız :); string cevap = Console.ReadLine(); if (cevap == 1453) Console.Write ( Tebrikler Doğru Cevap );Else Console.WriteLine(Maalesef yanlış cevap);Console.ReadLine();

Page 11: Karar kontrol deyi̇mleri̇

11

If koşul deyimlerde zaman zaman birden fazla koşula bağlı

bir takım işler yapmanız gerekebilir

Page 12: Karar kontrol deyi̇mleri̇

12

VE (&&) BAĞLACI İLE if((koşul1) && (koşul2))

koşul1 ve koşul2 doğruysa yapılacak işlemler; else koşullardan en az birisi veya her ikisi de yanlış ise yapılacak işlemler;

Page 13: Karar kontrol deyi̇mleri̇

13

ÖRNEK : KLAVYEDEN GİRİLEN SAYININ HEM 3’E HEM DE 5’E KALAN’SIZ BÖLÜNÜP BÖLÜNEMEDİĞİNİ EKRANA YAZAN PROGRAMI YAZINIZ.

Console.Write("Bir sayı giriniz:"); int sayi = Convert.ToInt32(Console.ReadLine()); if((sayi % 3 == 0) && (sayi % 5 ==0)) Console.WriteLine("{0} sayısı hem 3'e hem de 5'e kalansız bölünebilir",sayi); else Console.WriteLine("{0} sayısı hem 3'e hem de 5'e kalansız bölünemez", sayi);

Page 14: Karar kontrol deyi̇mleri̇

14

VEYA ( \\) BAGLACI İLE if((koşul1) || (koşul2))

koşul1 veya koşul2’den en az birisi veya her ikisi de doğruysa yapılacak işlemler; else koşullardan her ikisi de yanlış ise yapılacak işlemler;

Page 15: Karar kontrol deyi̇mleri̇

15

ÖRNEK : KLAVYEDEN GİRİLEN CİNSİYET VE YAŞ BİLGİLERİNE GÖRE, KİŞİNİN ASKERE GİDİP GİDEMEYECEĞİNİ YAZAN PROGRAMI YAZINIZ. char cinsiyet; int yas; Console.Write("Lütfen cinsiyetinizi giriniz (E/K):"); cinsiyet=Convert.ToChar(Console.ReadLine()); Console.Write("Lütfen yaşınızı giriniz:"); yas =Console.Read(); if (((cinsiyet == 'E') || (cinsiyet=='e')) && (yas >= 20)) Console.WriteLine("Askere Gidebilir"); else Console.WriteLine("Askere Gidemez");

Page 16: Karar kontrol deyi̇mleri̇

16

İÇ-İÇE IF İFADESİ :Birden fazla koşula ihtiyaç duyulan durumlarda iç-içe If ifadeleri kullanılırlar.

Page 17: Karar kontrol deyi̇mleri̇

17

KULLANIMI :if(koşul1) koşul1 doğruysa yapılacak işlemler; else if(koşul2) koşul1 yanlışsa ve koşul2 doğruysa yapılacak işlemler; else her iki koşul da yanlışsa yapılacak işlemler;

Page 18: Karar kontrol deyi̇mleri̇

18

DİLERSENİZ İÇ- İÇE IF İFADELERİNE BİR ÖRENEK VERELİM

Page 19: Karar kontrol deyi̇mleri̇

19

Örnek : Klavyeden girilen iki sayıyı karşılaştıran programı yazınız.

Page 20: Karar kontrol deyi̇mleri̇

20

SORU :int sayi1, sayi2; Console.Write("1. sayıyı giriniz: "); sayi1 = Convert.ToInt32(Console.ReadLine()); Console.Write("2. sayıyı giriniz: "); sayi2 = Convert.ToInt32(Console.ReadLine()); if(sayi1>sayi2) Console.Write("{0} sayısı {1} sayısından büyüktür.",sayi1,sayi2); else if(sayi1<sayı2); Console.Write( {0} sayısı {1} sayısından büyüktür ,sayı2,sayı1); else Console.Write( {0}sayısı ile{1} sayısı birbirine eşittir. ,sayı1,sayı2);

Page 21: Karar kontrol deyi̇mleri̇

21

İÇ-İÇE IF İFADELERİNİN BİR BAŞKA KULLANIMI DA ŞU ŞEKİLDEDİR.

Bir koşulun sağlanması durumunda başka koşullara göre işlem yapılması istenilen durumlarda yine iç-içe If ifadeleri kullanılırlar.

Page 22: Karar kontrol deyi̇mleri̇

22

Kullanımı :if(koşul1) if(koşul2) koşul2 doğruysa yapılacak işlemler; else koşul2 yanlışsa yapılacak işlemler; else koşul1 yanlışsa yapılacak işlemler;

Page 23: Karar kontrol deyi̇mleri̇

23

İÇ – İÇE İFADESİ

Page 24: Karar kontrol deyi̇mleri̇

24

DAHA ÖNCEDEN KULLANICI ADI VE ŞİFREYİ KONTROL EDEN PROGRAMI YAZINIZ

Page 25: Karar kontrol deyi̇mleri̇

25

SORU :string kullaniciAdi, sifre; Console.Write("Lütfen kullanıcı adınızı giriniz:"); kullaniciAdi = Console.ReadLine(); if (kullaniciAdi == "Admin" || kullaniciAdi=="ADMİN" || kullaniciAdi=="admin") Console.Write("Lütfen şifrenizi giriniz:"); sifre = Console.ReadLine(); if (sifre == "123rty") Console.WriteLine("Tebrikler Kullanıcı ve Şifreniz Doğru"); else Console.WriteLine("Şifrenizi Hatalı Girdiniz"); } else Console.WriteLine("Kullanıcı Adınızı Hatalı Girdiniz"

Page 26: Karar kontrol deyi̇mleri̇

26

SWİT- CASE

Page 27: Karar kontrol deyi̇mleri̇

27

SWİT-CASE DEYİMİSwitch-Case deyimi genellikle karmaşık if-else bloklarının yerine, daha okunabilir oldukları için tercih edilmektedir.

Page 28: Karar kontrol deyi̇mleri̇

28

KULLANIMIswitch(ifade) case sabit1: Yapılacak işlemler; break; case sabit2: Yapılacak işlemler; break; case sabit3: Yapılacak işlemler; break; . . default: Yapılacak işlemler; break;

Page 29: Karar kontrol deyi̇mleri̇

29

SWİTCH-CASE YAPISININ ÇALIŞMASINA BİR GÖZ ATALIM; Önce switch parantezleri içerisindeki ifade

hesaplanır. Programın akışı, hesaplanan ifade ile aynı

case sabitinin bulunduğu satıra gelir Eğer hesaplanan ifade, mevcut case

sabitlerinden herhangi birisi ile eşleşmiyorsa default anahtar sözcüğünün bulunduğu yere gelir ve program buradan devam eder

Page 30: Karar kontrol deyi̇mleri̇

30

Her case satırı içerisindeki işlemlerimiz tamamlandıktan sonra, ilgili case satırının sonuna geldiğimizi belirtmek için break komutu kullanılır.

Eğer aşağıdaki örnekteki gibi break komutu kullanılmazsa, “Control cannot fall through from one case label (‘case 1:’) to another” yani “Bir case etiketinden (‘case1:’) başka bir case etiketine geçilemez” hatasını alırız

Page 31: Karar kontrol deyi̇mleri̇

31

ÖRNEK :switch(ifade) case 1: Yapılacak işlemler; case 2: Yapılacak işlemler; break; case 3: Yapılacak işlemler; break; default: Yapılacak işlemler; break;

Page 32: Karar kontrol deyi̇mleri̇

32

Switch-case yapısında case durumların sırasının sorun olmamaktadır. default durumunu bile ilk sıraya koyabilirsiniz. Sonuç olarak, iki durum aynı olamayacağı için ilgili case yapısına gelindiğinde o satırın çalışması sağlanacaktır

Page 33: Karar kontrol deyi̇mleri̇

33

ÖRNEK : switch(ifade) default: Yapılacak işlemler; break; case 3: Yapılacak işlemler; break; case 1: Yapılacak işlemler; break; case 2: Yapılacak işlemler; break;

Page 34: Karar kontrol deyi̇mleri̇

34

SWİTCH-CASE YAPISI İLE İLGİLİ ÖNEMLİ KURALLAR:

Case anahtar sözcüğünün yanındaki ifadeler sabit olmak zorundadırlar. Bu ifadeler içerisinde değişken bulunamaz.

Case ifadeleri herhangi bir tam sayı sabiti, karakter veya string sabiti olabilir

Bir switch bloğunda iki veya daha fazla sayıda aynı değere sahip case ifadesi bulunamaz.

Akış herhangi bir case ifadesine geldiğinde, akış farklı bir case ifadesine yönlendirilmek istenirse goto anahtar sözcüğü kullanılır.

Page 35: Karar kontrol deyi̇mleri̇

35

ÖRNEK :byte ay; Console.Write("1-12 arasında bir sayı giriniz:"); ay = Convert.ToByte(Console.ReadLine()); switch (ay) case 1: Console.WriteLine("{0}.ay OCAK ayıdır.", ay); break; case 2: Console.WriteLine("{0}.ay ŞUBAT ayıdır.", ay); break; case 3: Console.WriteLine("{0}.ay MART ayıdır.", ay); break; case 4:

Page 36: Karar kontrol deyi̇mleri̇

36

ÖRNEK : KLAVYEDEN GİRİLEN DEĞER İLE SEÇİMİ YAPILAN ŞEKLİN ALANINI VEYA ÇEVRESİNİ BULAN PROGRAMI YAZINIZ

Page 37: Karar kontrol deyi̇mleri̇

37

SORU :string sekil,secim; int kenar1, kenar2; Console.WriteLine("1.KARE--------->(kare)"); Console.WriteLine("2.DİKDÖRTGEN--->(dikdörtgen)"); Console.WriteLine("---------------"); Console.Write("Lütfen şeklin ismini yazınız:"); sekil = Console.ReadLine(); switch (sekil) case "kare": Console.WriteLine(" # ALAN--------->(alan)"); Console.WriteLine(" # ÇEVRE-------->(çevre)"); Console.WriteLine("------------------------"); Console.Write("Lütfen seçiminizi yazınız:"); secim = Console.ReadLine(); switch (secim) case "alan":

Page 38: Karar kontrol deyi̇mleri̇

38

Not : Aşşağıdaki örnekteki bazı satırlar alta kaymıştır, programı yazarken

kayan satırların tek satırda olmasına dikkat ediniz.

Page 39: Karar kontrol deyi̇mleri̇

39

SORU :Console.Clear(); Console.WriteLine("********************************"); Console.WriteLine("* Seçilen işlem ÇIKARMA işlemi *"); Console.WriteLine("********************************"); Console.Write("1.Sayıyı giriniz:"); sayi1 = Convert.ToInt32(Console.ReadLine()); Console.Write("2.Sayıyı giriniz:"); sayi2 = Convert.ToInt32(Console.ReadLine()); switch (sayi2) default: sonuc = sayi1 / sayi2; Console.Write("Sonuç={0}", sonuc); break; case 0: Console.WriteLine("!!! SIFIRA BÖLME HATASI !!!"); break; break; default: Console.WriteLine("T-C-R-B ‘den farklı bir değer girdiniz..."); break;

Page 40: Karar kontrol deyi̇mleri̇

40

KARAR KONTROL DEYİMLERİ İLE İLGİLİ SLAYT İZLEDİNİZ .

TEŞEKKÜRLER

Page 41: Karar kontrol deyi̇mleri̇

41

KAYNAK : http://www.selcuk.edu.tr/dosyalar/files/074/3%20C%23%20KONTROL%20DEY%C4%B0MLER.pdf