Chapter 8. Komut düzeyi kontrol yapıları ISBN

Benzer belgeler
Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

Bölüm 8. İfade -Seviyeli Kontrol Yapıları ISBN

Bir seçme komutu yürümekte olan programda iki veya daha fazla yoldan birini seçmemizi sağlar. İki sınıfa ayrılır:

BLM210 HAFTA 9 STATEMENT-LEVEL CONTROL STRUCTURES (DEYİMLER DÜZEYİNDEKİ KONTROL YAPILARI)

Nesne Yönelimli Programlama

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

Bölüm 7. İfadeler ve atamalar ISBN

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

BİL-142 Bilgisayar Programlama II

Internet Programming II

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

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

1. PL/SQL de kontrol yapıları

Akış Konrol Mekanizmaları

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

Bölüm 4 C de Program Kontrolü

Nesne Tabanlı Programlama

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

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

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

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

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

Nesne Tabanlı Programlama

Mantıksal Kontrol ve Döngü Komutları

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

Akış Kontrol Mekanizmaları

Programlama Dilleri 3

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

Program AkıĢ Kontrol Yapıları

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

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

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

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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

YZM 2105 Nesneye Yönelik Programlama

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Java da Program Denetimi ve Operatörler

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Döngü ve Koşul Deyimleri

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

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

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.

BM202 SAYISAL ÇÖZÜMLEME

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

KONTROL YAPILARI (CONTROL STRUCTURES)

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

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

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

Döngüler. 1.1 while döngüsü

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

Veri Yapıları ve Algoritmalar

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Python Programlama Dili

Bölüm 10. Altprogramların gerçeklenmesi ISBN

MAT213 Bilgisayar Programlama I

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

SAB104 Bilgisayar Programlama

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

3.Hafta. . Kontrol Deyimleri/İfadeler

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

Bölüm 15. Fonksiyonel Programlama Dilleri ISBN

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

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

1. LabVIEW ile Programlama

C Programlama Dili (MCS116) Ders Detayları

BİLGİSAYAR PROGRAMLAMA DERSİ

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

ELN1001 BİLGİSAYAR PROGRAMLAMA I

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA I

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

Bilgisayar Programlama

PASCAL PROGRAMLAMA DİLİ YAPISI

BPR152-Algoritma ve Programlama II Uygulama -8

PostgreSQL ve PL/pgSQL

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

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

Dekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili

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

Özyineleme (Recursion)

JAVASCRIPT JAVASCRIPT DİLİ

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

HSancak Nesne Tabanlı Programlama I Ders Notları

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Transkript:

Chapter 8 Komut düzeyi kontrol yapıları ISBN 0-321-49362-1

8. bölüm konuları Giriş Seçme komutları Tekrarlayan komutlar Şartsız dallanma Korumalı komutlar Sonuç Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-2

Kontrol komutları Akış şemaları ile temsi edilebilen tüm algoritmalar sadece iki taraflı seçim (ör: ifthen-else) ve ön-şartlı döngüler (ör: while) kullanılarak kodlanabilir Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-3

Kontrol yapısı Kontrol komutu ve kontrol ettiği komutlar Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-4

Seçme komutları İki veya daha çok çalışma alternatifi arasından seçme olanağı tanır İki genel kategori İkili seçme komutları (ör: if-then-else) Çoklu seçme komutları (ör: case) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-5

İkili seçme komutları Genel şekli: if control_expression then clause else clause Tasarım problemi: İç içe seçme komutunun anlamı nedir? Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-6

Kontrol ifadesi C, Python, ve C++ dillerinde kontrol ifadesi sayısal olabilir Ada, Java, Ruby, C# gibi dillerde Boolean olmalı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-7

Içiçe seçiciler Java örneği if (sum == 0) if (count == 0) result = 0; else result = 1; Soru: else deyimini hangi if sahiplenir? Cevap: En yakındaki if Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-8

Içiçe seçiciler... Daha değişik davranış için, bileşik komut kullanın: if (sum == 0) { } if (count == 0) result = 0; else result = 1; Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-9

Çok yönlü seçici örneği C, C++, ve Java switch (expression) { case const_expr_1: stmt_1; case const_expr_n: stmt_n; [default: stmt_n+1] } Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-10

Çok yönlü seçici örneği... Tasarım tercihleri 1. Kontrol ifadesi sadece tamsayı olabilir 2. Seçilebilen kısımlar komut serisi, blok veya bileşik komut olabilir 3. Kısım bittiğinde eğer break yoksa bir sonraki kısıma devam eder. 4. Default: belirtilmemiş değerler için (default yoksa ve kontrol ifadesi hiçbir seçeneğe uymuyorsa, case hiçbirşey yapmaz) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-11

If kullanarak çok yönlü seçim Python dilinde else-if kullanarak if count < 10 : bag1 = True elsif count < 100 : bag2 = True elsif count < 1000 : bag3 = True Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-12

Yineleme komutları Komutun birden çok kez tekrarlanmasının yöntemleri Yineleme (iteration) Özyineleme (recursion) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-13

Sayaç kontrollü döngüler Sayıcı yineleyen komutta, döngü değişkeni bulunur. Bu değişkenin İlk değeri Son değeri, ve Basamak artırımı değeri olur. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-14

Yineleyen komutlar: Örnek C-tabanlı diller for ([başlangıc_ifadesi] ; [bitiş_şarti] ; [artirma_ifadesi]) - İfadeler komut olabilir, hatta virgül ile ayrılan komut dizisi de olabilir Çoklu komuttan oluşan ifadenin değeri, ifadedeki son komutun değeridir İkinci ifade yoksa, sonsuz döngü Tasarım tercihleri: - Açıkça verilen döngü değişkeni yok - Döngü içinde herşey değiştirilebilir - İlk ifade bir kez değerlendirilir, diğer ikisi her yinelemede Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-15

Yineleyen komutlar: Örnek... C++, C den iki şekilde ayrılır: 1. Kontrol ifadesi Boolean olabilir 2. Birinci ifadede yeni değişken tanımı olabilir (etki alanı tanımdan başlayın döngünün sonuna kadar uzanır) Java ve C# Kontrol ifadesi Boolean olmak zorunda Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-16

Yineleyen komutlar: Mantık kontrollü döngüler Tekrarlama kontrolü Boolean ifadeye bağlı Tasarım problemi: Önce-test, sonra-test? Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-17

Yineleyen komutlar: Mantık kontrollü döngü örnekleri C ve C++: hem önce-test hem sonra-test döngüler, kontrol ifadesi aritmetik olabilir while (ctrl_expr) loop body do loop body while (ctrl_expr) Java: C ve C++ gibi, ancak kontrol ifadesi Boolean olmalı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-18

Yineleyen komutlar: break ve continue C, C++, C# dillerinde şartsız, etiketlenmemiş (unlabeled) çıkışlar (break) Java dilinde şartsız etiketlenmiş (labeled) çıkış (break) C, C++ dillerinde etiketlenmemiş continue, komutu: o anki yinelenen kısmın geri kalanını atlar, ama döngüden çıkmaz Java dilinde continue komutunun etiketli versiyonu var Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-19

Yineleyen komutlar: veri yapılarına dayalı yineleme Veri yapısındaki eleman sayısı yinelemeyi kontrol eder Kontrol mekanizması, veri yapısındaki bir sonraki elemanı veren bir yineleme (iterator) fonksiyonuna çağrıdır C dilindeki for yapısını kullanarak yineleyici (iterator) yapabiliriz: for (p=root; p!=null; traverse(p)){ } Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-20

Yineleyen komutlar: veri yapılarına dayalı yineleme C# dilinin foreach komutu dizilerin ve diğer kolleksiyonların elemanları üzerinde yineler : Strings[] = strlist = {"Bob", "Carol", "Ted"}; foreach (Strings name in strlist) Console.WriteLine ("Name: {0}", name); Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-21

Şartsız dallanma (branching) Çalışma kontrolünü programın herhangi bir yerine götürür goto komutu En büyük endişe: okunabilirlik Bazı dillerde goto yok (ör: Java) C# dilinde switch komutu içinde var Döngü çıkış komutları (break vs.) bir çeşit sınırlandırılmış gizli goto lar Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-22

Korunan (Guarded) komutlar Dijkstra tarafından tasarlandı Amaç: Program doğrulanmasını (verification) program geliştirme aşamasında desteklemek CSP ve ADA da paralel programlama için temel oluşturdu Ana fikir: hesaplama sırası (order of evaluation) önemli değilse, program bir sıra belirtmemeli Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-23

Seçme korumalı komutu Şekli: if <Boolean exp> -> <statement> [] <Boolean exp> -> <statement>... [] <Boolean exp> -> <statement> fi Anlamı: Tüm Boolean ifadeleri hesapla Birden çoğu doğru ise, bir tanesini tesadüfen seç (non-deterministically) Hiçbiri doğru değilse, çalışma zamanı (runtime) hatası Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-24

Seçme korumalı komutu görseli Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-25

Döngü korumalı komutu Şekli: do <Boolean> -> <statement> [] <Boolean> -> <statement>... [] <Boolean> -> <statement> od Anlamı: her yinelemede Tüm Boolean ifadeleri hesapla Birden çoğu doğru ise, bir tanesini tesadüfen seç (non-deterministically), sonra döngüyü yeniden başlat Hiçbiri doğru değilse, döngüden çık Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-26

Döngü korumalı komutu görseli Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-27

Sonuç Çeşitli komut düzeyinde yapılar Seçme ve öncetest döngüler: zorunlu. Diğer yapılar seçmeli. Daha çok yapı = kolay yazılabilirlik ama daha büyük/karmaşık dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ 1-28