İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu



Benzer belgeler
C Dersleri Bölüm 3 : Program akışı

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

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

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

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

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

Döngü ve Koşul Deyimleri

BÖLÜM 4 KONTROL DEYİMLERİ

Program Akış Kontrol Yapıları

BİL-142 Bilgisayar Programlama II

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.

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

Matris İşlemleri Uygulaması

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

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

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

Akış Kontrol Mekanizmaları

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

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

SİNOP ÜNİVERSİTESİ MESLEK YÜKSEKOKULU MEKATRONİK PROGRAMI

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

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

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

ALGORİTMA VE PROGRAMLAMA I

Döngü yapıları, (for, do while, while),

1. PL/SQL de kontrol yapıları

BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ. GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur.

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

Nesne Yönelimli Programlama

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

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

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

ALGORİTMA VE PROGRAMLAMA I

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

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

ALGORİTMA VE PROGRAMLAMA I

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

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

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

Programlama Temelleri Örnek Sorular

Ders 6: Karşılaştırma Deyimleri

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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.

Program AkıĢ Kontrol Yapıları

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Algoritmanın Hazırlanması

Bölüm 4 C de Program Kontrolü

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Döngü komutları komutların bir çok kez yeniden yürülmesini. sağlayan, programlamada kullandığımız önemli yapılardan biridir.

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

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

C dilinde if-else yapısı

Sınav tarihi : Süre : 60 dak.

Algoritmalar ve Programlama. Algoritma

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

Bil 105 Laboratuvar (1. Hafta Problemleri)

Algoritma ve Akış Şemaları

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

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

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

C Programlama Dilininin Basit Yapıları

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

Genel Programlama II

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

2. Dereceden Denklemin Köklerini Bulan Program

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Temel Giriş/Çıkış Fonksiyonları

BLM 111 Algoritma ve Programlama I Güz 2018

Program Akışının Denetimi

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

Main() Fonksiyonu. Main () Fonksiyonu. int main() İfadeler. Return ;

BM202 SAYISAL ÇÖZÜMLEME

PROGRAMLAMA DİLLERİ I

Programlama Dilleri 3

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

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Bölüm 3 Yapısal Programlama

BİLGİSAYAR PROGRAMLAMA DERSİ

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

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

BİLGİSAYAR PROGRAMLAMA

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Bil Hafta Çalışma Soruları (Yanıtlar)

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

Internet Programming II

GÖRÜNTÜ İŞLEME DERS-3

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

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

Transkript:

PROGRAM AKIŞ DENETİMİ Program akış denetimi konusu temel olarak 2 e ayrılır. Bunlar; 1)Koşul Deyimleri 2)Döngü Deyimleri KOŞUL DEYİMLERİ Koşul deyimleri temel olarak programı kontrol etmeye yararlar. Bunlara kontrol deyimleri de denir.iki tür koşul deyimi vardır.bunlar: IF DEYİMİ 1)if deyimi 2)switch-case deyimi IF deyimi C dilinde en önemli kontrol deyimidir. Genel kullanım biçimi şöyledir: if(ifade) Deyim1 ve deyim2 birer yalın deyim olabileceği gibi başka bir kontrol deyimi de olabilir. İf deyiminin çalışma mekanizmasını anlamak istersek şunları bilmeliyiz. derleyici önce if deyiminin içindeki ifadeyi hesaplar ve bunun sayısal değerini çıkarır. Sayısal değer 0 dan farklı bir değer çıkarsa mantıksal doğru olarak kabul edilir ve deyim1 icra edilir. Eğer sayısal değer 0 çıkarsa ki bu mantıksal yanlış demektir, derleyici deyim1 i atlar ve deyim2 e geçer. if(ifade) deyim3; Yukarıdaki örnek düzgün çalışmaz.çünkü bloklama yapmak gerekir diğer tüm deyimlerde olduğu gibi.

Bu örneğin doğrusu şöyle olmalıdır: if(ifade) deyim3; Eğer deyim3 ün yanında bir de deyim4 olsaydı deyim3 ü de bloklama yapmak gerekecekti if(ifade) Deyim4; Deyim5; Deyim6; Yukarıdaki örnekte eğer ifade doğru çıkarsa sırasıyla deyim1, deyim2, deyim 6 uygulanacak.eğer yanlış çıkarsa deyim4, deyim5 ve deyim6 icra edilecek. Son örneğin akış şemasını çizmek istersek: ifade Deyim4; Deyim5; Deyim6;

Bazen if tek başına kullanılır olmayabilir. if(ifade) Deyim3; Deyim4; Eğer ifade doğruysa deyim1 deyim2 deyim3 deyim4 yapılır eğer yanlışsa sadece deyim4 yürütülür. int a,b; printf("iki sayi giriniz"); scanf("%d%d",&a,&b); if(a<=5) printf("toplamlari=%d\n",a+b); printf("carpimlari%d\n", a*b); printf("farklari=%d\n",a-b); Bu örnekte a 5 e eşit veya küçük olduğu sürece derleyici hem toplamlarını hem çarpımlarını hemde farklarını hesaplayıp ekrana yazdırır, sayı 5 ten büyükse sadece farklarını ekrana yazdıracaktır. İç içe if de sık karşımıza çıkan bir uygulamadır. if(ifade1) if(ifade2) deyim3; Bu örnekte ifade 1 doğruysa derleyici ikinci if e geçer eğer ifade2 de doğruysa deyim1 ve deyim3 ü yürütür; eğer ifade2 yanlış çıkarsa deyim2 ve deyim3 yürütülür.en başta ifade1 yanlış çıksaydı derleyici deyim3 e atlayacaktı.eğer deyimini ifade1 in olduğu if e bağlamak isteseydik, kullanıp bloklama yapmamız gerekecekti.

if(ifade1) if(ifade2) deyim3; Bu örnekte birinci if e aittir. SWITCH CASE DEYİMİ if deyimi mantıksal doğru ve mantıksal yanlış olarak iki seçeneğe sahipken switch-case deyimi bize bir ifadenin çeşitli değerleri için farklı işlemler yapmayı sağlamaktadır. Genel kullanım biçimi şöyledir: switch(ifade) case<seçenek1>: case<seçenek2>: case<seçenek3>: deyim3; case<seçenek4>: deyim4;. default: deyim; Ana çalışma mantığı şöyledir: Derleyici switch in içindeki ifadenin değerini hesaplar, son case leri sıra sıra gezer, bu değer eşit bir case değeri bulursa o case in deyimini yürütür, eğer bulamazsa default un deyimini uygular. int a; printf("1 sayi gir"); scanf("%d",&a); switch(a) case 1: printf("bir"); case 2: printf("iki"); default: printf("olmadi"); Eğer a yerine 1 girersek ekrana bir iki olmadi yazılacak.2 girseydik ekrana iki ve olmadi başka bir değerde ise sadece olmadi yazacaktı.

Switch-case de break komutuda sık sık karşımıza çıkar.break döngüden çıkmayı sağlayan komuttur.yukarıdaki örneği break ile yazarsak: int a; printf("1 sayi gir"); scanf("%d",&a); switch(a) case 1: printf("bir");break; case 2: printf("iki");break; default: printf("olmadi");break; Bu sefer a yerine 1 yazarsak ekrana sadece 1 yazılacak. Çünkü derleyici break komutunu görünce o döngüyü sonlandırır. /*switch-case kullanarak hesap makinesi*/ int a,b,c; char islem; printf("islemi sonra sayilari giriniz"); scanf("%c%d%d",&islem,&a,&b); switch(islem) case '+': c=a+b;break; case '-': c=a-b;break; case '*': c=a*b;break; case '/': c=a/b;break; default : printf("düzgün islem giriniz."); printf("%d", c); while(1);

GENEL OLARAK DÖNGÜLER VE DÖNGÜ DEYİMLERİ Döngüler, temel olarak programın belli bir bölümünün tekrarlı olarak uygulanmasını sağlarlar. C de döngüler yalın ve esnek olarak tasarlanmıştır. Programın çalışma zamanının çoğunu döngü yapılarına harcadığını düşünürsek, C için döngülerin önemi bir kez daha ortaya çıkmış olur. Döngüleri koşul verip döngüyü koşul doğru olduğu sürece devam ettirmek, tekrarlama yapmak ve bunların türevleri pek çok işte kullanabiliriz. Bu nedenle bize büyük kolaylık sağlarlar. Döngüler temel olarak 2 bölüme ayrılır. 1-While döngüleri 2-For döngüleri While döngüleri, bir koşula bağlı olarak çalışırlar, for döngüleri ise belli bir sayıda yineleme yapmak amacıyla kullanılırlar. Şimdi bu döngülerden daha detaylı bahsedelim. While Döngüleri While döngüleri de koşul kontrolünün başta ve sonda yapıldığı döngüler olarak 2 başlığa ayrılır. Kontrolün başta yapıldığı döngülerde anahtar sözcük olarak while kullanılırken, kontolün sonda yapıldığı döngülerde do-while deyimi kullanılır. Kontrolün Başta Yapıldığı while Döngüleri Bu tip while döngülerde anahtar deyim olarak while deyimini kullanırız. While deyiminin belirttiği koşul geçerli olduğu sürece döngü devam eder, koşul geçerliliğini kaybedince, derleyici döngüden çıkar.yani while kullanılarak belirtilen ifade 0 farklıysa ifade doğru sayılır ve işlemler yürür, eğer bilgisayar 0 olarak okursa ifade yanlış değeri kazanır bu derleyicinin döngüden çıkmasına neden olur. Basit akış şeması: while(ifade) /*ifadeden sonra ; konulmadığına dikkat ediniz.*/ deyim; While bir anahtar sözcüktür ve C anahtar sözcüklerden sonra parantezlerin içinde bir ifade ister. while(ifade) Burada sadece deyim1 while döngüsünün içindedir, deyim2 döngünün dışıdadır. while(ifade) Deyim(3);

Burada deyim1 ve deyim2 döngüye dahilken deyim3 döngü dışındadır, yani örneklerden de anlaşılacağı gibi döngü içinde 1 den fazla deyim varsa deyimleri döngü içine sokmak için, parantezlerini kullanmak gerekir. while(ifade1) if(ifade2) Deyim4; Deyim3; Burada if döngü içindedir yani deyim1 ve deyim2 döngü içindedir, deyim3 döngüye dahil değildir. İfade1 İfade2 Deyim1 Deyim2 Deyim3 Deyim4 Son örneğin akış diyagramı Kontrolün Sonda Yapıldığı while Döngüleri Bu tip döngülerde anahtar sözcük olarak do ve while deyimleri kullanılır.while ın içindeki koşul doğru olduğu sürece işlem devam eder ama sadece while ın kullanıldığı döngüden bir farkı vardır.o da koşul bir kereliğine yanlış olunca da işlemin yürümesidir.çünkü derleyici ilk olarak işlemi yapar daha sonra koşulu sağlayıp sağlamadığına bakar.böyle olunca da deyimler en az bir kere işlem görmüş olur.do döngü başında, while döngü sonunda kullanılır.tek deyim için, kullanmaya gerek yokken birden çok deyim için bloklamaya gerek vardır.önemli bir farkı da while dan sonra ; kullanılmasıdır.basit olarak akış şeması şöyledir:

do deyim; while(ifade); do while(ifade); deyim3; Burada deyim2 ve deyim3 döngü dışındadır yalnızca deyim1 döngüye dahildir. do while(ifade); deyim3; Burada deyim1 ve deyim2 döngüye dahilken deyim3 döngü dışıdır. For Döngüleri For döngüleri deyimleri yinelemeye yarar. Diğer anahtar sözcükler while, if gibi yanında parantezler içinde ifadeler vardır.ifadelerden sonra parantez kapatılır, noktalı virgül koyulmaz.genel olarak şöyle kullanılır: for(ifade1;ifade2;ifade3) Eğer birden fazla deyim kullanılmak isteniyorsa bloklama yapılmalıdır. for(ifade1;ifade2;ifade3) İfade1: Derleyici ifade1 i döngüye girdiği zaman yalnızca bir kez yapar. Başlangıç adımıdır. Genellikle değişkenlere bir ilk değer atamak için kullanılır. İfade2: Aynı while deyiminde olduğu gibi bir koşul belirtir. Derleyici koşula uyulduğu sürece döngüyü devam ettirir. Bir başka deyişle, ifade2 nin sayısal değeri 0 dışı olduğu sürece döngü devam eder.eğer, ifade2 belirtilmez veya her zaman doğru seçilirse, döngü sonsuz olur. İfade3: Bu kısım döngü değişkenine işlem yapmak için kullanılır. Genellikle bir artırmak(++a) veya bir azaltmak (--a) için kullanılır.

Basit olarak for ifadelerini birleştirirsek: for(ilk değer; koşul; artırma/azaltma) gibi bir kısayol karşımıza çıkar. Örneğin: for(k=1;k<=5;++k) Ayrıca ifade1 yalnızca bir kez işlem gördüğü için for ifadelerinin içine yazılmayıp önceden de belirtilebilir. a=20; for(;a>15;--a) gibi. Daha başka kullanım şekilleri de vardır.örneğin parantezlerin için hem ifade1 hemde ifade3 olmayabilir. b=30 for(;b>25;) printf( %d\n,b) --b; Yukarıdaki örnekte olduğu gibi ifade1 ve ifade3 başka yerlerde kullanılabilir.buradan çıkarılacak bir sonuç da 1. ve 3. ifadeleri olmayan for döngüleri while döngüleriyle eşdeğerdir. for( ; ifade ; ) = while(ifade) For döngüsünün 3 kısmı bile boş olabilir.bu tip döngüler sonsuz döngü sağlama amacıyla kullanılır. for(;;) Şimdi de bir for örneği içinde for döngüsünün akış şemasını açıklayalım. int c; for (c=2;c<51;c=c+2) printf( %d\n,c);

Bu örneğin akış şeması: C=2 C<51 printf( %d\n, c); Çıkış c=c+2; For deyiminin akış şeması For döngüsünde ; ler arasını virgüllerle ayırabiliriz.örneğin; for(a=5,b=0,c=20;b<50;++b,a=a-3) Bu örnekte a=5, b=0, c=20 ifade1; b<50 ifade2; ++b,a=a-3 de ifade 3 yerine geçer. /*1 den 100 e kadar olan tamsayıların toplamı*/ int a,toplam; for(a=0,toplam=0;a<=100;toplam += a, ++a) ; /*for döngüsünün deyim kısmı boş olmasına rağmen program çalıştı.*/ printf( toplam = %d, toplam);

/*Girilen sayının faktöriyelini hesaplama programı*/ int a,fact; printf( bir sayi giriniz ); scanf( %d,&a); for(fact=1;a>0;--a) fact=fact*a; printf( bu sayinin faktoriyeli = %d, fact); 2 Anahtar Sözcük Break ve Continue Döngülerin işleyişinde 2 anahtar sözcük daha vardır.bunlar break ve continue komutlarıdır.bu komutlar while, for, switch döngülerinde kullanılır. BREAK KOMUTU Basitçe break deyiminin işlevi, derleyicinin döngüden çıkmasını sağlayıp döngü dışındaki ilk deyimle devam etmesini sağlamaktır.bu komut döngüde istemediğimiz bir değer olunca çıkmamıza yarar. int a; for(a=25;a>13;--a) if(a==17) break; printf( a nin simdiki degeri = %d\n, a); Bu örnekte derleyici for döngüsünün içinde sayıyı 25 ten başlayarak azaltıp 13 e kadar yazacakken, 17 e gelince break komutuyla karşılaştı ve döngüden çıktı.

CONTINUE KOMUTU Continue komutunun özelliği derleyicinin continue nun gösterdiği değeri atlayıp devam etmesini sağlamaktır. int a; a=17; while(0<a && a<=17) --a; if(a==8) continue; printf("simdiki deger = %d\n",a); Bu örnekte derleyici 17 den başlayıp 0 a doğru giderken 8 e gelince continue ile karşılaşınca 8 i ekrana yazdırmadı; ama 0 a kadar yazdırmaya devam etti. Burak Ataman atamanburak@msn.com İTÜ IEEE Bilişim Komitesi