ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ

Benzer belgeler
HSancak Nesne Tabanlı Programlama I Ders Notları

ÜNİTE İÇİNDEKİLER HEDEFLER DÖNGÜ KONTROL DEYİMLERİ. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA

ÜNİTE İÇİNDEKİLER. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER OPERATÖRLER

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMA DİLLERİ I

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Akış Kontrol Mekanizmaları

Karşılaştırma İşlemleri ve Koşullu İfadeler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ

HSancak Nesne Tabanlı Programlama I Ders Notları

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

4. Bölüm Programlamaya Giriş

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

C#(Sharp) Programlama Dili

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Internet Programming II

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Nesne Yönelimli Programlama

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Programlama Dili Prensipleri. Lab Notları 4

Algoritma ve Programlama: Karar Yapıları ve Döngüler

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

BİL-142 Bilgisayar Programlama II

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

BİLGİSAYAR PROGRAMLAMA DERSİ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Dilleri 3

M.ilkucar MAKU MYO 1

BİLGİSAYAR PROGRAMLAMA DERSİ

Program Akış Kontrol Yapıları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Diziler İndisli Değişkenler

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Microsoft Visual Studio. internetten temin edilebilir. yazılımının başlatılması

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

ÜNİTE İÇİNDEKİLER HEDEFLER. Tarih, Zaman ve Metinsel Metotlar. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA

YZM 2105 Nesneye Yönelik Programlama

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

NESNEYE YÖNELİK PROGRAMLAMA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

/*int sayi1, sayi2,toplam=0;

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

3.Hafta. . Kontrol Deyimleri/İfadeler

SIMAN KULLANIM KILAVUZU

Fen ve Mühendislik Uygulamaları ile MATLAB

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

7.1- Operatörler ve Giriş-Çıkış İşlemleri. M.İLKUÇAR - 1

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

3. KOŞUL YAPILARI 3.1. IF YAPISI 2

Koşullu Önermeler (if else)

Internet Programming II

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

ÜNİTE NESNE TABANLI PROGRAMLAMA I İÇİNDEKİLER. Okt. Mustafa AKBUĞA HEDEFLER DOSYA VE KLASÖR İŞLEMLERİ

Lambda İfadeleri (Lambda Expressions)

Pascal Programlama Dili

Ders - 7 while döngüsü

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java da İşleçler, Ders #3 (4 Kasım 2009)

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

Bölüm 2 - C ile Programlamaya Giriş

Program AkıĢ Kontrol Yapıları

Transkript:

HEDEFLER İÇİNDEKİLER KARAR KONTROL DEYİMLERİ Karar Kontrol Deyimleri if ifadesi if - else ifadesi if - elseif - else ifadesi Switch- Case ifadesi NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA Bu üniteyi çalıştıktan sonra; Klavyeden alınan bilgileri bir değişkene atayabilecek, Program içinde üretilen değerleri bir düzen içinde ekranda gösterebilecek, Virtual C# diline ait karar kontrol deyimlerini tanıyabilecek, İşlemler için karar kontrol yapılarını program içerisinde kullanabileceksiniz. ÜNİTE 4

GİRİŞ Visual C# programlama dili ile geliştirilen uygulamalar Main (Ana) metodu ile çalışmaya başlar. Main içindeki kodlamalar ilk satırından başlayarak son satıra kadar sıralı olarak çalışır ve biter. Programlarda her ne kadar, kodlar sıralı olarak çalıştırsada bazen bu sıralı akışın değiştirilmesine ve program akışının istenilen başka bir satıra geçirilmesine ihtiyaç duyulur. Bu gibi durumlar için programlarda karar kontrol deyimleri kullanılır. Bu bölümde, Visual C# dilinde karar kontrol deyimi olan if, if else, if elseif ve swich case deyimleri incelenecek ve kullanış şekilleri hakkında bilgi için örnek uygulamalar hazırlanacaktır. KARAR KONTROL DEYİMLERİ Program akışını verilen koşullara göre denetleyen ve çıkan sonuca göre programı yönlendiren ifadelere karar yapıları denir. Visual C#, programlama dilinde if, if else, if- else if, switch-case olmak üzere toplam dört tane karar kontrol deyimi vardır. Bu karar control deyimlerinin nasıl kullanıldığı aşağıda detaylı olarak incelenecektir. IF KARAR İFADESİ Bir programın kod çalışma düzeni karar kontrol deyimleri kullanılarak değiştirilebilir. Programlama içerisinde kullanılan en temel karar verme yapısıdır. İf karar ifadesi, bir koşul sağlandığı zaman (koşul ifadesi doğru ise) gerçekleştirilmesi istenen program parçacıkları çalıştırılır, değilse program İf ifadesini atlayarak normal akışına devam eder. Birden fazla değer kontrolü yapılacaksa iki ya da daha fazla if yapısı peş peşe kullanılabilir. İf ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. if (Koşul) // Koşullar doğruysa çalışacak kodlar buraya yazılır. } İf ifadesinin içindeki koşul doğru ise program küme parantezleri arasındaki kodları çalıştırır. İf komutuyla birlikte verilen koşul ifadesi, genellikle ilişkisel operatörler yardımıyla kullanılır. Önceki ünitelerde ayrıntılı olarak anlatılan bu oparatörler Tablo 4.1 de kısaca gösterilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 2

Tablo 4.1. Karar ifadelerinde kullanılan Karşılaştırma Operatörleri Operatörler Anlamı Açıklaması (A==B) (A!=B) (A<B) (A>B) (A<=B) (A>=B) Eşittir. Eşit değildir. Küçüktür. Büyüktür. Küçüktür veya eşittir. Büyüktür veya eşittir. A değeri B değerine eşit midir? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) A değeri B değerine eşit değilmidir? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) A değeri B değerinden küçük müdür? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) A değeri B değerinden büyük müdür? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) A değeri B değerinden küçük veya eşit midir? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) A değeri B değerinden büyük veya eşit midir? (Eğer cevap evet ise koşul doğru (true) değerini alır. Aksi durumda koşul yanlış (false) değerini alır.) Örnek program_1: Geçme notunun 50 olduğu bir derste bir öğrenci sınavlardan 65 not ortalaması almış olsun. Bu not ortalamasına karşılık geçti mesajını veren programı if ifadesi ile yazalım. Bu işleme e ait C# kodu şekil Şekil 4.1 de gösterilmektedir. Yazılan kodun çalıştırılması sonucu Şekil 4.2 deki gibi bir ekran görüntüsü elde edilecektir. Şekil 4.1. Örnek Program_1 ye ait kod dosyasının gösterimi Atatürk Üniversitesi Açıköğretim Fakültesi 3

Şekil 4.2. Örnek Program_1 e ait ekran çıktısı Bu uygulamada; Konsole uygulamalarında programlar debug>start Debugging (F5) komutuyla çalıştırıldığında kod satırlarının en sonuna mutlaka Console. ReadKey() deyimi eklenmelidir. Aksi hâlde program çıktısı görüntüntülemez. notortalama isminde int veri türünde bir değişken tanımlanmış ve içerisine öğrencinin almış olduğu not ortalamasını gösteren 65 değeri atanmıştır. Ayrıca gecmenotu isminde bir kontrol değişkeni daha tanımlanmış ve içerisine geçme notu olan 50 değeri atanmıştır. if ifadesiyle notortama değerinin gecmenotu değerinden büyük veya eşit olup olmadığını kara veren denetim yapısı oluşturulmuştur. notortama değeri gecmenotu değerinden büyük olduğu için koşul ifadesi doğru (true) değerini üretmiş ve çıktı ekranına Geçti mesajı yazılmıştır. Öğrencinin not ortalaması 50 den küçük verilseydi koşul sağlanmadığı için (Koşul >false değeri üretecektir) küme parantez içerisindeki komutlar çalıştırılmayacaktır. Bu durumda örnek içinde başka bir program kodu almadığından herhangi bir şey yazmadan program sonlandırılacaktır. Klavyeden bilgi okuma ve Ekrana düzenli bir şekilde yazdırılma işlemi: Bu ders için yazılan bütün Visual C# kodlarında gerekli olan veriler, program içerisinde değişkenlere atanan sabit değerler ile yapılmıştır. Şimdi ise bu durumdan farklı olarak Console sınıfına ait ReadLine, Readkey, Write ve Writeline metotlarını kullanarak klavyeden bilgi okuma ve ekrana düzenli bir şekilde yazdırma işlemi yaptırılacaktır. Console. ReadLine () : Klavyeden bir değişkene değer atamak için kullanılır. Aşağıda kullanım şekli görülmektedir. string degisken = Console. ReadLine(); Visual C# ta klavyeden girilen bütün değerler her zaman string olarak değerlendirilir. Eğer matematiksel işlem yapacaksa bu string ifadeler sayısal ifadelere çevrilmesi gereklidir. Bunun için Değişken ve Veri tiplerinin anlatıldığı ünite 2 gösterilen Convert veya Parse metotlarından biri kullanılır. Atatürk Üniversitesi Açıköğretim Fakültesi 4

Convert metodunun kullanım şekli; int degisken = Convert.ToInt32(Console. ReadLine()); Parse metodu ile kullanım şekli; int degisken = int. Parse(Console. ReadLine()); Console. ReadKey():Programın çalışmasını geçici olarak duraklatır ve tekrar programın çalışması için enter tuşuna basılması gerekir. Kullanım şekli; Console. ReadKey(); Değişkenler ekrana istenirse bir düzen içerisinde yazdırılabilir. Console. WriteLine(): Ekrana yazdırma işlemi için kullanılır. Yazdırma işleminden sonra imleç bir alt satıra geçer. Kullanım şekli; Console. WriteLine( string değişken ); Console. WriteLine(sayısalDegisken); Console. Write(): Ekrana yazdırma işlemi için kullanılır. Yazdırma işleminden sonra imleç yazdırılan ifadenin yanında bekler. Şu parametrelerle beraber kullanılır; \n, Bir alt satıra geçmek \r Paragraf başı yapmak. WriteLine ile aynı kullanım şekline sahiptir. Write () veya WriteLine içerisine çift tırnak ("...") arasına yazılan her şey normalde ekranda görüntülenir. Fakat küme parantezler ekran çıktısında görüntülenmez; çünkü onlar başka değerler için yer tutuculardır. Yer tutmak istediğimiz her değer için bir süslü parantez içerisine '0'dan başlamak kaydıyla indeks numaraları verilir. Bu indekslerin yerine ekranda görünecek değerler ise çift tırnakların arkasından verilir ("...", değerler). Eğer birden fazla yer tutucu kullanılmışsa değerler, virgülle ayrılarak içerideki indeks sırasına göre yazılır. Yer tutucunun indeksine eklenecek bir parametre ile metinsel ifadelerin uzunluğu belirlenir ve ilgili değerin sağa ya da sola dayalı olarak yazdırılması sağlanabilir. Aşağıda a değeri olarak gösterilen (0,1,2.n) şeklindeki tamsayı değeridir. Yer tutucuların ve düzenli gösterme parameteleri aşağıda gösterildiği gibi kullanılmaktadır: Atatürk Üniversitesi Açıköğretim Fakültesi 5

Console. WriteLine("Değişken1:0}\nDeğişken2:1}\n ",deger1,deger2); Console. WriteLine("\"a birimlik alanda sola dayalı :0,-a}\"",deger); Console. WriteLine("\"a birimlik alanda sağa dayalı :0,a}\"",deger); Örnek program_2: Not ortalaması ve geçme notunu kullanıcıdan alan ve aldığı bu sayısal veriler ile geçme ya da kalma durumunu, if karar yapısıyla belirleyerek ekrana yazdıran bir programı hazırlayın. Bu uygulamayı not ortalaması 70 ve geçme notu 60 seçerek çalıştırın. Bu uygulamayı not ortalaması 30 ve geçme notu 60 seçerek çalıştırın. Bu uygulamada; Örnek program_2 de istenen özellikteki programın kaynak kodları Şekil 4.3 te görülmektedir. Bu programın çalıştırılması sonrası Şekil 4.4 ile verilen bilgi giriş penceresi ekrana gelir. Bu pencerede, Not ortalaması için 70 ve geçme notu içinse 60 değerleri girildiği görülmektedir. Bu değerler girildiğinde program çalışacak ve sonuç Şekil 4.5 te gösterilen ekran çıktısı şeklinde olacaktır. Şekil 4.3 te kaynak kodu gösterilen programda Console. ReadLine() program satırı kullanıcıdan bilgi almak amacıyla kullanılmıştır. Alınan bu veriler if(not ortalama >=gecmenotu) karar yapısıyla değerlendirilip (70>=60) koşul sağlanması sebebiyle if yapısı içindeki Console. Writeline() metodu ile ekrana Durum: Geçti şeklinde Şekil 4.5 te gösterildiği gibi yazdıracaktır. Kod içindeki ikinci İf(notoratalama<gecmeNotu) yapısında (70<60) koşulu sağlanmadığı için içerisindeki kodlar çalışmayacaktır. Aynı programı yeniden çalıştırılarak, giriş ekranından Not ortalaması için 30 ve geçme notu içinse 60 değerini girin. Bu durumda Şekil 4,6 da gösterilen program çıktısı ekrana gelecektir. Bu ekranda Durum: Kaldı mesajı görülmektedir. Bu ekrandaki mesaj, Kod içindeki ikinci İf(notoratalama<gecmeNotu) yapısının (30<60) koşulu sağlayarak blok yapısı içindeki Console. Writeline() metodunun çalışması ile verilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 6

Şekil 4.3. Örnek Program_2 ye ait kod dosyasının gösterimi Şekil 4.4. Örnek Program_2 için klavyeden 70 ve 60 değerlerinin girilmesi Şekil 4.5. Örnek Program_2 için klavyeden 70 ve 60 değerlerini girilmesi sonucu oluşan ekran çıktısı Şekil 4.6. Örnek Program_2 için klavyeden 30 ve 60 değerlerini girilmesi sonucu oluşan ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 7

Şekil 4.3 ile gösterilen program kodlarını Şekil 4.7 de gösterildiği şekilde yeniden yazarak, not ortalaması için 60 ve geçme notu içinse 60 değerleri girilecek şekilde yeniden çalıştırın; Bu durumda Şekil 4.8 de gösterilen program çıktısı elde edilir. Bu ekranda gösterilen sonuçların Şekil 4.5 te gösterilen sonuçlara göre daha tertipli ve düzenli olduğu görülecektir. Şekil 4.7. Örnek Program_2 ye ait düzenlenmiş kod dosyasının gösterimi Şekil 4.8. Örnek Program_2 nin kodları yeniden düzenlenenek klavyeden 60 değerlerini girilmesi sonucu oluşan ekran çıktısı Alternatif kod bloğu çalıştırmak istemiyorsanız, if deyimini else deyimi olmadan kullanabilirsiniz. Programa eklenen Console. Readkey() metodu, sonuçların Debug>Start Debugging (F5) komutuyla çalıştırılması durumuda; sonuçların Enter tuşuna basılana kadar bekletilmesini sağlayacaktır. Bu metod kullanılmadığında ve F5 ile program çalıştırıldığında sonuçlar ekranda çok kısa bir süre kalacağı için görülmez. Console. Readkey() metodu kullanılmamışsa, Sonuçların görüntülenmesi için daha önceki örneklerde olduğu gibi programın Debug>Start Without Debugging (Ctrl+F5) komutuyla çalıştırılması gereklidir. Atatürk Üniversitesi Açıköğretim Fakültesi 8

if-else ifadesi İf ifadesinde koşul sağlandığı zaman küme parantezi içerisindeki kodlar çalıştırılır, fakat koşul sağlanmadığı durumda hangi işlemin yapılacağı tanımlanamaz. Şayet koşulun sağlanmadığı durumda başka bir işlem yapılması isteniyorsa ya yeni bir if ifadesi yazılmalı ya da İf- else yapısı tercih edilmelidir. İf- else ifadesi koşulun doğru ya da yanlış olmasına göre her iki durumuda kontrol ederek gereken kod parçacıklarını çalıştırılır. if else ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. if (Koşul) // Koşullar sağlanmışsa çalışacak kodlar buraya yazılır. } else // Koşullar sağlanmamışsa çalışacak kodlar buraya yazılır. } Örnek uygulama_3: Geçme notunu kullanıcıdan alan ve aldığı bu sayısal veri ile geçme ya da kalma durumunu, if-else yapısıyla belirleyen ve ekrana yazdıran bir program hazırlayın. Bir karar ifadesinde koşulları her zaman parantez içerisinde kullanın. Bu uygulamayı kullanıcı, not ortalaması olarak 25 değerlerini girecek şekilde program çalıştırın. Bu uygulamayı kullanıcı not ortalaması olarak 75 değeri girilecek şekilde uygulamayı yeniden çalıştırın. Bu uygulamada; Örnek program_3 te istenen özellikteki programın kaynak kodları Şekil 4.9 da görülmektedir. Bu programın çalıştırılması sonrası Şekil 4.10 ile verilen bilgi giriş penceresi ekrana gelir. Bu pencerede, Not ortalaması için 25 değerleri girilmesi sonucu program Şekil 4.11 de gösterilen ekran çıktısını vercektir. Şekil 4.9 da kaynak kodu gösterilen programda int gecmenotu=50 ile verilen satırda int türünde bir geçmenotu değişkeni tanımlanmış ve içerisinde 50 sayısal değeri atanmıştır. Console. ReadLine() program satırı kullanıcıdan bilgi almak amacıyla kullanılmıştır. Kullanıcıdan alınan veri if (not ortalama >=gecmenotu) karar yapısıyla değerlendirilip (25>=50) koşul sağlanmadığı görülmüş ve blok içindeki kodlar çalıştırılmayarak else yapısının blok yapısına geçilmiştir. Buradan else yapısındaki Console. Writeline() metodu çalıştırılarak Şekil 4.11 da gösterilen Atatürk Üniversitesi Açıköğretim Fakültesi 9

Durum: Kaldı mesajı bir metot içindeki hazırlanan özel bir formatta ekrana yazılmıştır. Aynı programı yeniden çalıştırılarak, şekil 4.12 de gösterilen giriş ekranından geçme notunu olarak 75 değeri girilirse Şekil 4.13 te gösterilen program çıktısı ekrana gelecektir. Bu ekranda Durum: Geçti mesajının verilmektedir. Bu sebebi Kod içindeki İf(notoratalama>=gecmeNotu) karar yapısının (75>=50) koşulu sağlanması ve bunun sonucunda if blok yapısı içindeki Console. Writeline() metodunun çalışmasıyla sağlanmaktadır. İf yapısı çalıştığında else yapısındaki kodlar çalıştırılmayacaktır. Resim 4.9. Örnek Program_2 ye ait kod dosyasının gösterimi Şekil 4.10. Örnek Program_3 için klavyeden Not ortalaması için 20 değerlerinin girilmesi Şekil 4.11. Örnek Program_3 e klavyeden 25 değerlerini girilmesi sonucu oluşan ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 10

Şekil 4.12. Örnek Program_3 için klavyeden Not ortalaması için 20 değerlerinin girilmesi Şekil 4.13. Örnek Program_3 e klavyeden 75 değerlerini girilmesi sonucu oluşan ekran çıktısı if-else if- else ifadesi if-else if- else kontrol ifadesi koşul sayısının birden fazla olduğu durumlarda kullanılır. Bu kontrol ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir: Bir kontrol bloğunda elseif deyimlerinden sadece bir tanesindeki işlem gerçekleştirilir. if ( Kosul_1 ) // Koşul sağlanırsa çalışacak kodlar buraya yazılır. } else if ( Kosul_2 ) // Koşul sağlanmazsa çalışacak kodlar buraya yazılır. }... else if ( Kosul_N) // Koşul sağlanmazsa çalışacak kodlar buraya yazılır. } else // Diğer tüm koşullar sağlanmassa çalışacak kodlar buraya yazılır. } Atatürk Üniversitesi Açıköğretim Fakültesi 11

Örnek Uygulam_4 : Bu örnek uygulamada klavyeden verilecek gün isminin (Pazartesi, Salı, Çarşamba, vb.) haftanın kaçıncı gününe denk geldiğini hesaplayan ve hesaplanan sonucu Çıktı ekranında gösteren bir uygulama yazalım. Şekil 4.14 te gösterilen kodları (Ctrl+F5) veya F5 tuşlarına basılarak çalıştırın. Şekil 4.15 te gösterilen ekrandaki gibi Gün adını Büyük harfle Salı olarak girin ve Enter tuşuna basın. Bu durumda Şekil 4.16 da gösterilen ekran çıktısını görüntülenecektir. Programı yeniden çalıştırın; Şekil 4.15 te gösterilen ekrandaki gibi Gün adını küçük harfle salı olarak girerek ve Enter tuşuna basın. Bu durumda Şekil 4.17 de gösterilen ekran çıktısı görüntülenecektir. Program Şekil 4.18 ile başka bir gün ismi veya Şekil 4.19 da gösterilen hatalı bir giriş değerleri girilerek test edildiğinde programın üretebileceği diğer sonuçlarda görülebilir. Eğer (if), (if else), ( ifelse if- else) den sonra tek kod satırı varsa küme parantezler, } kullanılmayabilir. Şekil 4.14. Örnek Program_4 ye ait kod dosyasının gösterimi Şekil 4.15. Örnek Program_4 için klavyeden Gün adı için Salı değerlerinin verilmesi Atatürk Üniversitesi Açıköğretim Fakültesi 12

Şekil 4.16. Örnek Program_4 e klavyeden Büyük harfli (Salı) gün değerinin girilmesi sonucu oluşan ekran çıktısı Şekil 4.17. Örnek Program_4 e klavyeden küçük harfli (salı) gün değerinin girilmesi sonucu oluşan ekran çıktısı Şekil 4.18. Örnek Program_4 e klavyeden klavyeden küçük harfli (pazar) gün değerinin girilmesi sonucu oluşan ekran çıktısı Şekil 4.19. Örnek Program_4 e klavyeden küçük harfli (paşartesi) hatalı değerinin girilmesi sonucu oluşan ekran çıktısı Bu uygulamada; İlk olarak string veri türünde bir gun değişkenine klavyeden değer girilmesi istenmiştir. İf ifadelerinin yanında mantıksal veya operatörü kullanılarak gün isimlerinin büyük ya da küçük hafle girilmesi durumundada karar ifadesinin çalışması sağlanmıştır. Atatürk Üniversitesi Açıköğretim Fakültesi 13

gun isminde string veri türünde bir değişken tanımlanmış ve içerisine gün olarak salı değeri klavyeden girilmiştir. Girilen değer string olduğu için herhangi bir tür dönüşümü yapılmamıştır. gun Pazartesi, Salı ve Çarşamba, Perşembe, Cuma, Cumartesi, Pazar günlerinden hangisine eşit olduğu sorgulanmaktadır. Şayet gun değeri Pazartesi, Salı ve Çarşamba, Perşembe, Cuma, Cumartesi, Pazar günlerinden daha farklı bir değer girilmiş ise programı yönlendirilecek satır else yapısında tanımlanmıştır. Bu programın başında gun değişkene klavyeden Salı girildiğinde Salı gününü kontrol eden if bloklarındaki kod çalışacak ve Haftanın ikinci günü mesajı ekranda görülecektir. Bu durum Şekil 4.17 deki gibi gösterilmektedir Program yeniden çalıştırılıp klavyeden küçük harfli salı girildiğinde yine salı günü kontrol eden yapı çalışacak ve 4.17 deki ekran görüntülenecektir. Program yeniden çalıştırılıp 4.18 deki gibi küçük harfli pazar girildiğinde ilgili if bloğu çalıştırılıp haftanın yedinci günü mesajı verilecektir. Klavyeden 4.19 daki gibi if karar yapısında tanımlanmayan bir yeni değer girildiğinde ise bütün if yapıları şartı sağlayamayacağı için else yapısı çalışacak ve Hatalı giriş yaptınız. mesajını verecektir. Switch- Case ifadesi Önceki görülen if - else if - else yapısında olduğu gibi birden fazla koşul için gerekli kontrolü yapar. Fakat şartın boolean( true ya da false ) bir ifade döndürmesine bakmaz, değer kısmına yazılan ile kontrol ifadesinin aynı olup olmamadığı kontrol edilir. Kullanımı ve yapısı çok basittir. İstenilen sayı kadar kontrol ifadesi eklenebilir. Her case kontrol şartı bir break ifadesiyle sonlandırılmalıdır. switch case ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

switch ( değer ) case kontrol ifadesi_1: // değer ifadesi kontrol ifadesi_1 e eşitse çalışacak kodlar buraya yazılır. break; case kontrol ifadesi_2: // değer ifadesi kontrol ifadesi_2 e eşitse çalışacak kodlar buraya yazılır. break;.. case kontrol ifadesi_n: // değer ifadesi kontrol ifadesi_n e eşitse çalışacak kodlar buraya yazılır. break; default: // değer hiçbir ifadeye eşit değilse çalışacak kodlar buraya yazılır. break; Örnek Uygulam_5: Bu uygulamada if-else if- else ifadesi ile yapılan işlemleri bu uygulamada switch-case ifadesi kullanılarak yeniden yazılacaktır. Kodlar yazılırken ilk olarak string veri türünde gun isimli bir değişken tanımlanır. Klavyeden girilecek değer bu gun değişkenine atanır. Switch deyimine gun değişkeni kontrol değeri olarak aktarılır ve switch e ait küme parantez işereti ile gösterilen kod bloğu içine girilir. Kontrol değeri her case içindeki yazılan değerle tek tek kontrol edilir. Bu değere uygun bir case ifedesi bununduğunda ilgili case blok içindeki kodlar çalıştırılarak break deyimine gelindiğinde switch blok yapısından çıkılır. Eğer kontrol değeri hiçbir case ifadesine uymaz ise default ile verilen blok içerisine girilerek buradaki kodlar berak komutuna kadar çalıştırılıp switch e ait blok yapısından çıkılır. Bu uygulamada klavyeden yazılan gün isimleri hep küçük harfle başlamak zorundadır. Aksi hâlde sadece default ile verilen blok çalışır. Çünkü case ifadeleri değişkenin içerisindeki değerin kontrolu gerçekleştirir. Bu yüzden Mantıksal operatörlerden hiç biri case ifadesi olarak kullanılamaz. Fakat İstenirse kontrol edilmek istene değer ayrı bir case ifadesi olarak yazılabilir Atatürk Üniversitesi Açıköğretim Fakültesi 15

Şekil 4.20. Örnek Program_5 e ait kod dosyasının gösterimi Şekil 4.21. Örnek Program_5 e klavyeden küçük harfli (pazartesi) değerinin girilmesi sonucu oluşan ekran çıktısı Şekil 4.22. Örnek Program_5 e klavyeden büyük harfli Pazartesi değerinin girilmesi sonucu oluşan ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 16

Şekil 4.23. Örnek Program_5 e klavyeden (Gece) hatalı değerinin girilmesi sonucu oluşan ekran çıktısı Bu uygulamada Şekil 4.20 de gösterilen kodlar (Ctrl+F5) veya F5 ile çalıştırılıp klavyeden baş harfi küçük pazartesi değeri girildiğinde ilk case ifadesi içideki değerle eşleştiğinden Şekil 4.21 de gösterilen ekran çıktısı elde edilir. Program yeniden çalıştırılıp klavyeden baş harfi büyük Pazartesi girildiğinde bu değer hiçbir case ifdesiyle eşleşmediğinden Şekil 4.22 deki hatalı giriş yaptınız mesajı ekranda görülecektir. Şekil 4.23 te gösterilen Gece ifadesi gun ismi olarak girildiğinde yine hiçbir case ifadesi ile eşleşmez ve Hatalı giriş yaptınız mesajı ekranda gösterilir. Örnek Uygulam_6: Bu uygulamada; switch kontrol deyimine, string bir değer yerine (int) sayısal bir değer girilmesi durumunda Kod yapısının nasıl değişmesi gerektiği gösterilecektir. Şekil 4.24. Örnek Program_6 e ait kod dosyasının gösterimi Atatürk Üniversitesi Açıköğretim Fakültesi 17

Şekil 4.24 te kaynak kodu gösterilen uygulamada; Klavyeden girilecek (1, 2, 3.. gibi) sayısal bir değerin switch- case yapısı içerisinde değerlendirilmesi sağlanmıştır. Bu uygulama ile bir önceki uygulama aynı çalışma mantığına sahiptir. Önceki uygulamada gün ismi yazılarak haftanın kaçıncı günü olduğu hesaplatılırken, Bu uygulamada haftanın kaçıncı günü olduğu verilerek (1, 2, 3, 4, 5, 6, 7) Şekil 4.25 te gösterilen gün ismi ortaya çıkarılmaktadır. Ayrıca önceki uygulamada gün isiminin hatalı girilmesiyle ortaya çıkan sonuç, bu uygulamada Şekil 4.26 da gösterildiği gibi (1, 2, 3, 4, 5, 6, 7) sayıların dışında farklı bir değer girilmesi sağlanabilir. Şekil 4.25. Örnek Program_5 e klavyeden 1 sayısal değerinin girilmesi sonucu oluşan ekran çıktısı Şekil 4.26. Örnek Program_5 e klavyeden 8 hatalı değerinin girilmesi sonucu oluşan ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 18

Özet Karar Kontrol Deyimleri Grafik tabanlı uygulamalarda Main metodu içerisinde yer alan kodlar Form1 adı verilen görsel bir ara birim oluşturur. Biz bu formu kapatana kadar da bir döngü, formu sürekli olarak hafızada tutar ve formun üzerinde birtakım olay ve metotların gerçekleşmesini bekler. Konsol uygulamasında, bir program çalıştırıldığında kodlar ilk satırdan başlayarak son satıra kadar teker teker çalışır ve sonlanır. Biz programı yeniden başlatana kadar bir daha da çalışmaz. Konsol uygulamalarında program her ne kadar, kodları sıralı olarak çalıştırsa da bazen bu sıralı akışın değiştirilmesi ve program akışının istenilen bir başka satıra geçirilmesine ihtiyaç duyulur. Bu gibi işlemler için karar kontrol deyimleri kullanılır. İf karar ifadesi, bir koşul sağlandığı zaman yapılacak işlemleri kapsar. Kontrol edilecek koşul ifadesinin sonucu doğru (true) ise gerçekleştirilmesi istenen program parçacıkları çalıştırılır. if..else koşul deyimi, bir koşulun doğru yada yalnış olmasına göre her iki durum içinde kontrol yaparak gereken kod parçacıklarını çalıştırır. Konsol ekranına yazdırmak için consol sınıfının WriteLine ve Write metodlarından faydalanılır. İmleç, WriteLine yazdırmadan sonra bir alt satıra geçer. Write ise aynı satırda yazdırılan metnin hemen sonunda kalır. Console.ReadLine () metodu klavyeden bir değişkene değer atamak için kullanılır. Console. ReadKey (), Programın çalışmasını geçici olarak duraklatır ve tekrar programın çalışması için enter tuşuna basılması gerekir. Write () veya WriteLine içerisine çift tırnak ("...") arasına yazılan süslü parantezler içindeki sayısal sıra değerine yer tutucu denir. Birden fazla değişken degeri yer tutucular sayesinde tek bir Write ya da WriteLine komutuyla ekranda yazdırılabilir. Yer tutmak istediğimiz her değer için bir süslü parantez içerisine '0'dan başlamak kaydıyla indeks numaraları verilir. Bu indekslerin yerine ekranda görünecek değerler ise çift tırnakların arkasından yazılır ("...", değerler). Eğer birden fazla yer tutucu kullanılmışsa değerler, virgülle ayrılarak içerideki indeks sırasına göre yazılır. Değişken değerleri, Yer tutucunun indeksine eklenecek parametreyle (negatif değer) sola (pozitif değer) sağa dayalı olarak ekrana yazdırılabilir. if..else if deyimi, birden fazla şartın kontrol edilmesi gereken yerlerde kullanılır. Hangi şart true değeri üretirse o kod bloğu arasındaki kodlar çalıştırılır. switch.. case deyimi, bir Boolean değerinin koşulunu test etmek yerine, bir ifade olarak değerlendirilir ve hangi kod bloğunun çalıştırılacağını belirlemek için bu ifadeyi kullanır. Her case.. blogu içerisinde mutlaka break komutu kullanılmak zorundadır. Case içinde tanımlanmayan değer aralıklarında ise default deyimi çalışır. Atatürk Üniversitesi Açıköğretim Fakültesi 19

DEĞERLENDİRME SORULARI 1. if ifadesi içerisinde kontrol değişkeni olarak hangi veri tipi kullanılır? Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan bölüm sonu testi bölümünde etkileşimli olarak cevaplayabilirsiniz. a) int b) string c) double d) char e) bool 2. Aşağıdakilerden hangisi istenirse if else yerine kullanılabilir? a) String-char b) int-uint c) if d) if- else e) switch- case 3. Aşağıdakilerden hangisi C# programlama dilinde yazılmış bir programı çalıştırır? a) Ctrl+N b) Alt+R c) Shift+P d) Ctrl+F5 e) Alt+F1 4. Swich -Case yapısı içerisinde kullanılan break komutu ne işe yarar? a) Mevcut dönğünün sonlandırılmasını sağlar. b) Komutları devam ettirir. c) Değişkenin değerini ekrana yazdırır. d) Değişkenlerin Veri tipi belirler. e) Kontrol şartlarını denetler. Atatürk Üniversitesi Açıköğretim Fakültesi 20

5.Eğer string tipindeki karar değişkeninin içeriği Visual C# ise Nesne Tabalı programlama mesajını ekranda görüntüleyen kod satırları aşağıdakilerden hangisidir? a) if (karar = Visual C#) Console. Write( Nesne Tabalı programlama );} b) if (karar == Visual C# ) Console. Write( Nesne Tabalı programlama ;} c) if (karar = = Visual ); Console. Write( ( C#, Nesne Tabalı programlama ); d) if (karar= C# ) Console. Write( ( Nesne Tabalı programlama );} e) if(karar= Nesne Tabalı programlama ) Console. Write( ( Visual C# );} 6. Switch yapısında her bir durum hangi komutla ifade edilir? a) case b) break c) default d) else e) new Atatürk Üniversitesi Açıköğretim Fakültesi 21

7. using System; class Program static void Main() } } Console. Write("Lütfen sıcaklık degerini giriniz:"); int sıcaklık = Convert.ToInt32(Console. ReadLine()); switch (sıcaklık) } case 0: Console. Write("Çok düşük sıcaklık"); break; } case 10: Console. Write("Düşük sıcaklık"); break; } case 20: Console. Write("sıcaklık normal"); break; } case 30: Console. Write("Yüksek sıcaklık"); break; } default: Console. Write("Tanımsız sıcaklık"); break; } Yukarıdaki switch-case yapısı içinde sıcaklık değerine 33 olarak girildiğinde aşağıdakilerden hangisi ekranda görülür? a) Çok düşük sıcaklık b) Düşük sıcaklık c) Sıcaklık normal d) Yüksek sıcaklık e) Tanımsız sıcaklık Atatürk Üniversitesi Açıköğretim Fakültesi 22

8. using System; class Program static void Main() int x = 2; if (x * 9 <= 10) Console. WriteLine("Hoşgeldin"); else Console. WriteLine("Gülegüle"); } } Yukarıda verilen kodların çalıştırılması sonucu hangi değer ekran çıktısında görüntülenir? a) Hoşgeldin b) 9 c) Hatalı giriş yaptınız d) 2 e) Gülegüle 9. Aşağıda verilen kodların hangisi programın çalışmasını geçici olarak durdurur? a) Convert.ToInt16(Console. ReadLine()) b) Convert.ToInt32(Console. ReadLine()); c) int. Parse(Console. ReadLine()); d) Console. ReadKey(); e) Console. WriteLine(""); 10. Aşağıdakilerden hangisi if-else yapısında kontrol operatörü olarak kullanılamaz? a) > b) >= c) < d) << e) == Cevap Anahtarı: 1.E,2.E,3.D,4.A,5.B,6.A,7.E,8.E,9.D,10.D Atatürk Üniversitesi Açıköğretim Fakültesi 23

YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR AKBUĞA. Mustafa, (2011), Atatürk Üniversitesi, Uzaktan Eğitim Merkezi, Nesne Tabanlı programa-i Ders Notları ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul. AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul. CLARK, Dan, (2013), Your visual blueprint for building.net application, 2nd Edition, Hungry Minds, New York. SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa Basım Yayım Dağıtım, İstanbul. SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Arkadaş Yayınevi, Ankara. YANIK, Memik, (2004), Microsoft Visual c#.net, 1.Baskı, Seçkin Yayıncılık, Ankara. Atatürk Üniversitesi Açıköğretim Fakültesi 24