Program Akış Kontrol Yapıları

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

Program AkıĢ Kontrol Yapıları

ALGORİTMA VE PROGRAMLAMA I

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

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.

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

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

Döngü ve Koşul Deyimleri

PROGRAMLAMA DİLLERİ I

Giris {\} /\ Suhap SAHIN Onur GÖK

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

BİL-142 Bilgisayar Programlama II

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

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

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

PROGRAMLAMAYA GİRİŞ DERS 2

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

M.ilkucar MAKU MYO 1

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.

Bölüm 3 Yapısal Programlama

Programlama Dili Prensipleri. Lab Notları 4

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

Algoritma ve Programlamaya Giriş

Akış Kontrol Mekanizmaları

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

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

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

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

Veri Tanımları ve Mantıksal İşlemler

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

4.Hafta BİL Soruların Çözümleri

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

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

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

C Programlama Dilininin Basit Yapıları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Bölüm 4 C de Program Kontrolü

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Nesne Yönelimli Programlama

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

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

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

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

C PROGRAMLAMA DİLİNE GİRİŞ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Java da Program Denetimi ve Operatörler

C ile Uygulamalar 1 - Cevaplar

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

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

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

B tekrarlama kontrol komutları 7. do-while döngüsü 8. while döngüsü 9. for döngüsü

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

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

HSancak Nesne Tabanlı Programlama I Ders Notları

C dilinde if-else yapısı

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

ARA SINAV 07.Nisan 2015

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılı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

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

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

Temel Bilgisayar Programlama

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

Fortran da kullanılan giriş çıkış komutları PRINT, WRITE ve READ dir.

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

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

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

Programlama Dilleri Laboratuvarı

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İ

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

Nesne Tabanlı Programlama

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

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

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

C++ Operatörler (Operators)

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

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

Giriş. ENF102 Jeoloji

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

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

BLM 111 Algoritma ve Programlama I Güz 2018

ALGORİTMA KAVRAMI. Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

Transkript:

Program Akış Kontrol Yapıları Giriş Normal şartlar altında program içerisindeki çalıştırılabilir satırlar, yazılmış oldukları sırada, yani birinden sonra diğerinin çalışması şeklinde ilerler. Programın ya da fonksiyonun çalışma akışını kontrol eden mekanizmalara kontrol yapıları (control structure) denilir. ENF 102 Jeoloji 2/32 C dilinde sıralı (sequence), seçimli (selection), tekrarlı (repetition) olmak üzere üç çeşit kontrol yapısı mevcuttur. Şu ana kadar bir bileşik yapı (compound statement) içerisindeki yani ve işaretleri arasındaki komutların sıralı (sequence) olarak çalıştıkları görüldü. C dilinde, 1adetsıralı, 3 adet seçimli, 3 adet de tekrarlı olmak üzere 7adetakış kontrol yapısı vardır. ENF 102 Jeoloji 3/32 ENF 102 Jeoloji 4/32 if Deyimi Verilen durum ya da koşula göre istenilen işlem ya da işlemleri gerçekleştirmek için kullanılır. if deyimi değişik biçimlerde kullanılabilir. Tek alternatifli if if (koşul) komut; Bu yapıda if komutundan sonra gelen koşul ya da durum ifadesinin sonucu doğru (true) başka bir ifade ile "Evet" ise şarttan sonra gelen komut çalışır. Koşulun sonucu yanlış (false) yani "Hayır" ise if komutundan sonra gelen komutlar çalışır. ENF 102 Jeoloji 5/32 ENF 102 Jeoloji 6/32 Ç.Ü Jeoloji Böl. ENF-102 2011 1

ÖRNEK: if (a>b) printf ("a, b den büyüktür"); Şarta ya da duruma bağlı olarak çalışması gereken birden fazla komut ya da çalıştırılabilir ifade mevcutsa blok açılır. Tek alternatifli bileşik komut yapılı (compound) if if ( koşul ) komut 1; komut 2; komut N; obuyapıda if komutundan sonra gelen koşul ya da durum ifadesinin sonucu doğru (true) ise şarttan sonra gelen blok içindeki komutlar çalışır. o Koşul yanlış (false) ise if bloğundan sonra gelen komutlar çalışır. ENF 102 Jeoloji 7/32 ENF 102 Jeoloji 8/32 İki alternatifli if yapısı ÖRNEK if( koşul ) komut 1; else komut 2; Bu yapıda if komutundan sonra gelen koşul ya da durum ifadesinin sonucu doğru (true) ise şarttan sonra gelen komut çalışır. Koşul yanlış (false) ise else'den sonra gelen komut çalışır. if (a>b) printf ( a, b den büyüktür"); else printf ( a, b den küçük ya da eşittir ); ENF 102 Jeoloji 9/32 ENF 102 Jeoloji 10/32 if ( koşul ) komut 1; komut 2; komut N; else komut 1; komut 2; komut N; İki alternatifli bileşik yapılı (compound statement) if Bu yapıda if komutundan sonra gelen koşul ya da durum ifadesinin sonucu doğru (true) ise şarttan sonra gelen blok içerisindeki komutlar çalışır. ş Koşul yanlış (false) ise else'den sonra gelen blok içerisindeki komutlar çalışır. ÖRNEK: Klavyeden girilen sayının çift mi yoksa tek mi olduğunu bulan c programını yazınız. Yazacağınız program aşağıdaki örnek çalışmaya uygun olmalıdır. ÖRNEK ÇALIŞMA: Sayiyi giriniz: 20 Girilen sayi cifttir. ENF 102 Jeoloji 11/32 ENF 102 Jeoloji 12/32 Ç.Ü Jeoloji Böl. ENF-102 2011 2

Kod: /*Bu program tek çift ayırımı yapar*/ printf("sayıyı giriniz:"); scanf("%d", &a); if( a % 2 ==0 ) /*2 ye bölündüğünde kalan 0 ise çifttir*/ printf("girilen sayı çifttir"); else printf("girilen sayı tektir"); ÖRNEK : Girilen 3 sayıdan büyük olanı bulup ekrana yazan C programını yazınız. Yazacağınız program aşağıdaki örnek çalışmaya uygun olmalıdır. ÖRNEK ÇALIŞMA: Sayilari giriniz (3 adet): 20 40 10 Girilen sayıların en buyugu = 40 ENF 102 Jeoloji 13/32 ENF 102 Jeoloji 14/32 Kod: /*Bu program girilen sayılardan en büyük olanı bulur*/ int a, b, c, enb; printf("sayilari giriniz (3 adet):"); ); scanf("%d%d%d", &a, &b, &c); enb = a; if( b > enb ) enb = b; if (c > enb ) enb = c; printf("girilen sayilarin en buyugu = %d", enb); ÖRNEK : Vize ve final notları girildikten sonra aşağıdaki tabloya göre öğrencinin harf notuna karar verip gösteren C programını kodlayınız. Program çalıştığında aşağıdaki örnek çalışmaya uygun olmalıdır. Başarı ortalaması= Vize nin %40 ı +Finalin %60 ı Başarı ortalaması 50 den küçük k olanlar l için i F 50 ve 59 arası için D 60 ve 69 arası için C 70 ve 79 arası için B 80 ve yukarısı için A ENF 102 Jeoloji 15/32 ENF 102 Jeoloji 16/32 ÖRNEK ÇALIŞMA: Öğrencinin vize notu: 40 Öğrencinin final notu: 50 --------------------------------- Başarı ortalaması tl = 46 Öğrencinin harf notu = F /*Bu program vize ve final notuna göre harf notunu hesaplar*/ int vize,final; float ortalama; char harf; printf("\n\n Ogrencinin vize notu: "); scanf("%d",&vize); printf("\n\n Ogrencinin final notu: "); scanf("%d",&final); ortalama = vize*0.4+final*0.6; if(ortalama<50) harf='f'; else if (ortalama<60) harf = 'D'; else if ( ortalama<70) harf = 'C'; else if (ortalama<80) harf = 'B'; else harf='a'; printf("---------------------- ------\n"); printf("basari ortalamasi = %.2f\n",ortalama); printf( Ogrencinin harf notu = %c\n",harf); ENF 102 Jeoloji 17/32 ENF 102 Jeoloji 18/32 Ç.Ü Jeoloji Böl. ENF-102 2011 3

Önceki program içice eğer yapısı kullanılmadan ayrı ayrı if komutları kullanılarak yazılmak işlenseydi mutlaka koşullar arasında mantıksal bağlaçlar kullanılması gerekecekti. Böyle bir durumdad hem alt sınır hem de üt üst sınır kontrolü yapılması gerekirdi. Sınanan iki sınır değeri de mantıksal VE (and) operatörü olan && operatörü ile birbirine bağlanmalıydı.?: Üçlü Şart Operatörü (Ternary Conditional) Bu operatör, üç adet operand alır. C diline özgü bir operatördür. Genel kullanım biçimi aşağıdaki gibidir. ENF 102 Jeoloji 19/32 ENF 102 Jeoloji 20/32 Üçlü şart operatörü? ve : olmak üzere iki ayrı sembolden oluşur.? simgesinin önündeki ifadenin sonucuna göre operand2 ya da operand3 işlem görür. operand1 ifadesinin sonucu 0 dan farklı yani doğru (true) ise oparand2 değil ise yani sonuç yanlış (false) ise operand2 gerçekleşir. Bu operatörün önceliği mantıksal operatörlerden sonra atama operatörlerinden öncedir. Doğru ise Ortalama>=60? printf( gecti ) : printf( kaldı ); Yanlış işe ENF 102 Jeoloji 21/32 ENF 102 Jeoloji 22/32 Mantıksal işlemleri gerçekleştirirken dikkat edilmesi gereken bir başka nokta ortaya çıkan sayısal değerlerde sıfırın (0) yanlışı (false) ifade etmesidir. Sıfırdan farklı (nonzero) herhangi bir değer doğruyu (true) ifade etmektedir. /*Bu program havanın sağuk olup olmadığına karar verir*/ printf( Hava derecesini giriniz:"); scanf("%d", &a); a <= 10? printf( hava soğuk ) : printf( hava o kadar da soğuk değil ); ENF 102 Jeoloji 23/32 ENF 102 Jeoloji 24/32 Ç.Ü Jeoloji Böl. ENF-102 2011 4

ÖRNEK: : if (5 >=5 && 6) printf ( Deneme 1 ); else printf ( Deneme 2 ); : Yandaki kod çalıştırıldığında ilk yapılacak işlem 5>=5 işlemi olur. Buradan çıkan değer doğru (true) olur. Doğru VE -AND 6(sıfırdan farklı olduğu için 6 da doğru kabul edilir) işleminin sonucu yine doğrudur. Dolayısı ile ekrana Deneme 1metniyazılacaktır. ENF 102 Jeoloji 25/32 Switch Çoklu Seçim Deyimi (Multiple Selection Slatenıent) Bu deyim verilen ifadenin değerine göre verilen komut ya da komut satırlarını çalıştırır. Verilen ifadenin değerinin sıralı giden olması gerekir. Bu ifade için kullanılacak değişken tipleri int ve char olabilir. float ya da double gibi ondalıkdeğerler olamaz. ENF 102 Jeoloji 26/32 Syntax: switch (ifade) case <değer 1> : komut 1; [break;] case <değer 2> : komut 2; [break;] : case <değer n> : komut N; [break;] Bu deyim, switch yanında verilen ifadenin değeri, blok içerisinde case sözcüklerinin yanında verilen değerlerden hangisine uyuyor ise o satırdaki komut ya da komutları çalıştırır. Buradaki break deyimi i verilmez ise hangi satıra uyuyorsa o satırdaki komutlar çalıştırılır ancakblok sonuna kadar uyan durumun altındaki satırlar da çalıştırılır. ENF 102 Jeoloji 27/32 ENF 102 Jeoloji 28/32 ÖRNEK: Klavyeden girilen 1 den 5 e kadar olan tamsayıların okunuşlarını yazı ile ekrana yazan c programını kodlayınız. /*Bu program 1-5 arasındaki değerlerin sayı olarak okunuşlarını yazar*/ printf("sayıyı giriniz (1-5):"); scanf("%d",&a); switch (a) case 1:printf("bir "); case 2:printf("iki "); case 3:printf("üç "); case 4:printf("dört "); case 5:printf("beş "); default:printf("yanlış değer girdiniz"); ENF 102 Jeoloji 29/32 Program çalıştırıldığında sonuçlan aşağıdaki gibi olacaktır. ÇIKTI: Sayıyı giriniz (1-5): 3 üç dört beş yanlış değer girdiniz Klavyeden 3 girildiğinde a değişkeninin değeri 3'e eşit olduğundan ekrana üç metnini yazmıştır ancakdiğer case satırlarını da sırası ileçalıştırmıştır. l Bunu önlemek için her case satırının bitmesi gereken yerinde break deyimi kullanılmalıdır. Böylece değişkenin değerine uyan durumdaki komut çalışacak diğer satırlar çalışmayacaktır, break deyimi switch bloğunu kırarak program akışını bloğun dışından devam etmesini sağlar. ENF 102 Jeoloji 30/32 Ç.Ü Jeoloji Böl. ENF-102 2011 5

Programın doğru hali aşağıdaki gibidir. /*Bu program 1-5 arasındaki değerlerin sayı olarak okunuşlarını yazar*/ printf("sayıyı giriniz (1-5):"); scanf("%d",&a); switch (a) case 1:printf("bir ");break; case 2:printf("iki "); break; case 3:printf("üç "); break; case 4:printf("dört "); break; case 5:printf("beş "); break; default:printf("yanlış değer girdiniz"); Soru : Klavyeden girilen gün değerine göre hangi güne ait olduğunu ekrana yazan C programını kodlayınız. Günler Pazar dan başlamak üzere 1 den 7 e kadar numaralandırılacaktır. ÖRNEK ÇALIŞMA: Gün değerini giriniz (1-7): 4 ------------------------------------ Girdiğiniz değer Çarşamba ya aittir. ENF 102 Jeoloji 31/32 ENF 102 Jeoloji 32/32 Kaynakça: Programlamayı C ile öğreniyorum (2. Baskı), M. Yorulmaz, S. Yorulmaz, 2005, Ankara ENF 102 Jeoloji 33/32 Ç.Ü Jeoloji Böl. ENF-102 2011 6