Programlama Dili Prensipleri. Lab Notları 4

Benzer belgeler
Lab Notları 4. for ( ilklenme yeri bir kez çalışır ; Kontrol yeri her döngüde bakılır ; Güncelleme yeri her döngüde )

M.ilkucar MAKU MYO 1

ALGORİTMA VE PROGRAMLAMA I

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

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

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

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

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

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

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

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

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

Program Akış Kontrol Yapıları

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

İç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)

MAT213 Bilgisayar Programlama I

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.

3.Hafta. . Kontrol Deyimleri/İfadeler

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

Nesne Yönelimli Programlama

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Mantıksal (Logic) Operatörler

Akış Kontrol Mekanizmaları

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

Ders - 7 while döngüsü

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

Koşullu Önermeler (if else)

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Java da Program Denetimi ve Operatörler

PROGRAMLAMA DİLLERİ I

BİL-142 Bilgisayar Programlama II

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

HSancak Nesne Tabanlı Programlama I Ders Notları

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

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 5. UYGULAMA ERKEKLER İÇİN (BOY-108) BAYANLAR İÇİN (BOY-112)

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

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

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

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

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

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Program AkıĢ Kontrol Yapıları

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Yazılım Kodlama ve İ simlendirme Standartları v1.0

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

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

C# Örnek Uygulamalar I

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Temel Veri Türü İşlemleri

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Matematiksel Operatörler

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

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

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

Đlişkisel Operatörler

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 2:Server Side Internet Programming

Veri Yapıları Lab Notları 1

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Bölüm 08 Program Akışının Yönlendirilmesi

D İ Z İ L E R A R R A Y S

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

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

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

ARA SINAV 07.Nisan 2015

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

HSancak Nesne Tabanlı Programlama I Ders Notları

Algoritma ve Programlamaya Giriş

Programlama Dilleri 3

Programlama Dili Prensipleri. Lab Notları 8 ve 9

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım

Internet Programming II

NESNEYE YÖNELİK PROGRAMLAMA

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

C# Çalışma Örnekleri

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.

C dilinde if-else yapısı

Telefon Defteri Modülü Kullanım Kılavuzu

Lambda İfadeleri (Lambda Expressions)

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

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

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

Transkript:

Programlama Dili Prensipleri Lab Notları 4 1. Karar Yapıları IF Yapıları Karar yapıları olarak C/C++ ile Java programlama dilleri birbirine yakın ifadeler içerir. Bir programın akışı yukarıdan aşağı doğru ilerler. Bu ilerleyişte bazı satırların bazı koşullarda çalıştırılması istenebilir. Bu durumda kontrol blokları kullanılmalıdır. Karar yapıları, if-if else if else, ternary operator ve switch case şeklinde kullanılabilir. Aşağıda C++ ta basit bir if karar yapısı görülmektedir. cout<<"bir sayi girin:"; cin>>x; if(x % 2 == 0) cout<<"girilen sayi cifttir."<<endl; Aynı programı çok fazla ifadeyi değiştirmeden Java da aşağıdaki gibi yazarız. System.out.print("Bir sayı girin:"); x = in.nextint(); if(x % 2 == 0) System.out.println("Girilen sayı çifttir."); Peki birden çok kontrol yapılması gerekiyorsa ne yapılmalıdır? Yapılacak işlem if sayılarını çoğaltmak olabilir. Ayrı ayrı if blokları kullanılabileceği gibi içi içe de if blokları kullanılabilir. Burada dikkat edilmesi gereken blokları { parantezleri ile ayırmaktır. Fakat if içerisinde çalıştırılacak bir ifade varsa parantezlere gerek olmaz. cout<<"bir sayi girin:"; cin>>x; if(x % 2 == 0) if(x < 100) if(x > 10) cout<<"girilen sayi 10'dan buyuk 100'den kucuk bir cift sayidir."<<endl; Yukarıdaki aynı durum Java da da geçerlidir. Yukarıdaki kodu Java da aşağıdaki gibi genişletirsek yine değişen bir şey olmayacak ve blokları ayıran parantezlere gerek kalmayacaktır. Ama kullanılması da bir hataya sebebiyet vermez. Bu kural aynı şekilde C++ içinde geçerlidir. 1

System.out.print("Bir sayı girin:"); x = in.nextint(); if(x % 2 == 0) if(x < 100) if(x > 10) System.out.println("Girilen sayı 10'dan büyük 100'den küçük ve çift bir sayıdır."); else if(x > 5) System.out.println("Girilen sayı 5'ten büyük 100'den küçük ve çift bir sayıdır."); else System.out.println("Girilen sayı 5'ten küçük ve çift bir sayıdır."); Switch-case Yapısı Kontrol edilecek değerler kesin olarak belli ise switch case yapısı kullanmak daha uygundur. Belirli olmasından kasıt örneğin kullanıcının gireceği bir x değerinin belli sayılardan büyük, belli sayılardan küçük kontrolü if yapısına uygun iken girilecek değer sadece 2 veya 3 yani belli sayıda değer alabiliyorsa switch case yapısı daha uygundur. switch case yapısında switch ifadesinin içindeki değişkenin türü ne ise case ifadeleri o türde kontrol edilmelidir. Örneğin aşağıdaki Java örneğinde kullanıcıdan bir ülke adı girilmesi istenmiş ve ülke adına göre ya yurt içi ya yavru vatan ya da yurt dışı ekrana yazdırılmıştır. Dikkat edileceği üzere kullanıcıdan string türde değer alındığı için case ifadeleri string leri kontrol etmektedir. String ulke; System.out.print("Bir ülke girin:"); ulke = in.nextline(); switch(ulke) { case "Turkiye": System.out.print("Yurt İçi"); case "Kibris": System.out.print("Yavru Vatan"); default: System.out.print("Yurt Dışı"); Yukarıdaki default ifadesi switch case yapısının önemli bir unsurudur. default, eğer girilen değer hiçbir case ifadesine uymuyorsa çalışacak olan bloktur. Yazılması zorunlu değildir. switch case çok kullanılmasına karşın düşük seviyeli kontrol ifadesidir. Bundan dolayıdır ki yukarıda Java da yazılan kodu C++ ta yazılamaz. Çünkü C++ ta switch case yapısında string kabul edilmemektedir. Hatta daha da ilginci C++ ta switch case yapısı sadece tam sayıları desteklemektedir. Yukarıdaki program C++ ta 2

yazılmak isteniyorsa ya if-else yapısı kullanılmalı ya da değerler tam sayıya dönüştürülüp karşılaştırılmalıdır. Switch case yapısında bir diğer hayati önem taşıyan durum break ifadelerinin mutlaka konulması gerektiğidir. Konulmaması durumunda C++ ve Java herhangi bir hata vermez fakat break konulmayan case ifadesi çalışması durumunda bir alttaki case ifadesini de kontrol etmeden çalıştıracaktır. Örneğin yukarıdaki kod bloğunda case Turkiye kontrol bloğundaki break silinirse Turkiye girildiğinde ekrana yurt içi ve yavru vatan ifadelerinin her ikisi de yazacaktır. Erişilemeyen Satır Durumu Java gibi yüksek seviyeli bir dil erişilemeyen satıra izin vermez. Erişilemeyen satır hangi koşulda olursa olsun çalıştırılamayacak satırdır. Dolayısıyla yazılmasının bir anlamı yoktur. Örneğin aşağıdaki kodda return altında break kullanılmıştır. Bu satıra hiçbir durumda erişilemez. public class Sayi { public static int deger; public Sayi(int dgr){ deger=dgr; public int DegerAta(Double yenideger){ String dgr = Double.toString(yeniDeger); String ondalik = dgr.substring(dgr.indexof('.')+1,dgr.length()); int ondalikkismi = Integer.parseInt(ondalik); switch(ondalikkismi) { case 0: // ondalık kısmı yoktur deger = yenideger.intvalue(); return deger; // Erişilemeyen satır Fakat aynı durumda C++ hata vermez. Örneğin aşağıdaki kod derlenip çalışacaktır. Fakat bu şekilde bir kod yazımı anlamsız olacağı için kullanılmamalıdır. int turid; cout<<"tur girin:"; cin>>turid; switch (turid) { case 1: cout<<"yonetici"; return 1; case 2: cout<<"akademisyen"; return 2; case 3: 3

cout<<"ogrenci"; return 3; Kontrol bloklarında && ve! ifadeleri kullanılabilir. Bunların anlamı && ifadesi ve, ifadesi veya,! ifadesi ise değili gösterir. && ifadesinde if bloğunun çalışması için kontrollerden her ikisinin de doğru olması gerekir. // Girilen sayının pozitif çift sayı olduğunun kontrolü int sayi; cout<<"bir sayi Girin:"; cin>>sayi; if(sayi % 2 == 0 && sayi >= 0) cout<<"girilen sayi pozitif cift sayidir."; else cout<<"girilen sayi pozitif cift sayi degildir."; ifadesinde kontrollerden birinin doğru olması if bloğunun çalışmasını sağlar. System.out.print("x:"); int x = in.nextint(); System.out.print("y:"); int y = in.nextint(); if(x % 2 == 0 y % 2 == 0) System.out.println("x * y çifttir"); else System.out.println("x * y tektir"); Kontrol ifadeleri boolean türden kontrol yapar ve sonuç true ise çalışır false ise çalışmaz. C++ dilinde 0 değeri false diğer bütün değerler true olarak kabul edilir. Örneğin aşağıdaki C++ programı ekrana Merhaba yazacaktır. if(1){ if(135) cout<<"merhaba!"; Fakat aynı şekilde kullanım Java da derlenme anında hata verecektir. C++ ta boolean ifadenin sonucu ekrana yazdırılamazken Java da aşağıdaki gibi bir kullanımda ifadenin doğru olup olmamasına bağlı olarak ekrana true ya da false yazacaktır. System.out.print("x:"); int x = in.nextint(); System.out.print("y:"); int y = in.nextint(); 4

System.out.print( x > y ); // Ekrana true ya da false yazar. Aşağıdaki iki kod farklı yazılmalarına rağmen aynı kontrolleri yapıp aynı çıktıları üretirler. System.out.print("Notunuz:"); double not = in.nextdouble(); String harf=""; if(not >= 90) harf="aa"; else if(not >= 80) harf = "BA"; else if(not >= 75) harf = "BB"; else if(not >= 65) harf = "CB"; else if(not >= 55) harf = "CC"; else if(not >= 45) harf = "DC"; else if(not >= 40) harf = "DD"; else harf="ff"; System.out.println("Harf: "+harf); double notu; string harf=""; cout<<"notunuz (0-100):"; cin>>notu; if(notu < 40) harf="ff"; else if(notu < 45) harf="dd"; else if(notu < 55) harf="dc"; else if(notu < 65) harf="cc"; else if(notu < 75) harf="cb"; else if(notu < 80) harf="bb"; else if(notu < 90) harf="ba"; else harf="aa"; cout<<"harf: "<<harf<<endl; Üçlü Operatör (? : ) Üçlü operatör tek satırda kontrol ve sonucu yazabilmemizi sağlar. Kontrol Durumu? Doğru ise çalışır : Doğru değil ise çalışır; Örneğin aşağıda üçlü operatör ve if kontrollü iki örnek verilmiştir. Fakat yaptıkları iş aynıdır. System.out.print("Sayı:"); int sayi = in.nextint(); String sonuc = (sayi % 2 == 0? "Sayı çifttir." : "Sayı tektir."); System.out.println(sonuc); 5

System.out.print("Sayı:"); int sayi = in.nextint(); if(!(sayi % 2 == 0)) System.out.println("Sayı tektir."); else System.out.println("Sayı çifttir."); Hazırlayan : Arş. Gör. M. Fatih ADAK 6