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

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

OPERATÖRLER. Bir işleme yol açan, işlem sonucunda belirli bir değer üretilmesini sağlayan atomlara operatör denir.

Döngü ve Koşul Deyimleri

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

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

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

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

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

Program Akış Kontrol Yapıları

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

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

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

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

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

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

Döngü blokunda tek bir deyim varsa {} yazılmayabilir.

M.ilkucar MAKU MYO 1

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

ARA SINAV 07.Nisan 2015

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

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

C PROGRAMLAMA D İ L İ

ALGORİTMA VE PROGRAMLAMA I

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

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

PROGRAMLAMAYA GİRİŞ DERS 2

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Programlama Dilleri Laboratuvarı

Adı Soyadı : Öğrenci No :

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

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.

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

Program AkıĢ Kontrol Yapıları

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

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.

C dilinde if-else yapısı

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 2 - C ile Programlamaya Giriş

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

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

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

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

Nesne Yönelimli Programlama

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

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

Akış Kontrol Mekanizmaları

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

BİL-142 Bilgisayar Programlama II

Karşılaştırma Komutları (Switch ve? Operatörü)

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

scanf () Fonksiyonu Klavyeden veri okumak için kullanılır. Yapı olarak printf () fonksiyonu aynıdır. Kullanım biçimi:

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

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

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

Telefon Rehberi Uygulaması

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

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

NOT: Bu kodlar çeşitli internet siteleri, üniversite siteleri ve ders kitaplarından derlenerek hazırlanmıştır.

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

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

C# Çalışma Örnekleri

C PROGRAMLAMA D İ L İ

Önişlemci Komutları, switch ve goto deyimleri

Java da Program Denetimi ve Operatörler

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

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

/* Çember alanını hesaplar */

scanf () Fonksiyonu Klavyeden veri okumak için kullanılır. Yapı olarak printf () fonksiyonu aynıdır. Kullanım biçimi:

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

C NASIL BİR DİL?.. PROGRAMIN ÇALIŞMASI

Temel Bilgisayar Bilimleri Ders Notu #2

Temel Giriş/Çıkış Fonksiyonları

Başkent Üniversitesi Mühendislik Fakültesi Güz Yarıyılı BİL 101-Bilgisayar Yazılımı I Arasınavı

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

C ile Uygulamalar 1 - Cevaplar

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

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

STRİNG DİZİLER(KATARLAR)

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

C Programlama Dilininin Basit Yapıları

C PROGRAMLAMA D İ L İ

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

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

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

Fonksiyonlar (Altprogram)

Bölüm 4 C de Program Kontrolü

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

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

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

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

PROGRAMLAMA DİLLERİ I

Transkript:

PROGRAM KONTROL KOMUTLARI A karşılaştırma kontrol komutları 1. if koşulu 2. if else koşulu 3. if - else if koşulu 4. (? :) üçlü koşul 5. goto deyimi 6. switch deyimi B tekrarlama kontrol komutları 7. do-while döngüsü 8. while döngüsü 9. for döngüsü

KARŞILAŞTIRMA KOMUTLARINDA OPERATÖR KULLANIMI Burada kullanılan operatörler ilişki operatörleri ve sayısal değerleri veya karakterleri karşılaştırmak için kullanılırlar. C dilinde karşılaştırma operatörleri karakter katarları( strings) için kullanılmazlar. Bunların karşılaştırılması için standart kütüphanede strcmp( ) ve buna benzer birçok fonksiyon vardır.

Karşılaştırma (ilişkilendirme) operatörlerinin if içerisinde anlamı: > büyük mü? >= büyük veya eşit mi? < küçük mü? <= küçük veya eşit mi? == eşit mi?!= farklı mı?

Genelde karşılaştırma ve döngü deyimlerinde koşulun sınanması için kullanılırlar. Karşılaştırma sonucu doğru( true ) ya da yanlış ( false ) çıkar. Koşul doğruysa olumlu varsayılarak, koşul sonunda istenenler yerine getirilir. Yanlış ise olumsuz varsayılır ve istenenler atlanır.

BOOLEAN SINAMA ÖRNEK #include<iostream> main() { bool a; //int a; a=2<3; std::cout<<a; }

if (Eğer) Karşılaştırması

İf koşulu if (şart) ifade; if (x>y) pirintf ("x büyüktür"); if (şart) { ifade 1; ifade 2;...... } if (x>y) { printf ("x büyüktür"); printf ("y küçüktür"); }

if-else koşulu if (şart ) ifade 1; else ifade 2; if (x>y) printf ( x büyüktür ) else printf ( y büyüktür veya eşittir ) if (şart) { ifade 1; ifade2; } else { ifade 4; ifade 5; }

İf else if koşulu if (şart 1) ifade 1; else if (şart 2) ifade 2; else if (şart 3) ifade 3;... else ifade 4; if (x>y) printf ("x>y"); else if (x=y) printf ("x=y"); else printf ("x<y");

Örnek: Girilen bir tamsayının char tip sınırlarında olup olmadığını denetleyen program: char 1 Byte -128 den +127 e kadar

#include<stdio.h> #include<cstdlib> #include "locale.h" main() { system("cls"); int x; char y; setlocale(lc_all,"turkish"); printf("bir tamsayi giriniz:"); scanf("%d",&x); printf("\n"); y=x; if(x>=-128 && x<=127) printf("girdiğiniz sayı char tipine uygundur.\nsayı=%d dir\n",x); else printf("girdiğiniz sayı char tipine uygun değildir=%d\n",y); system("pause"); }

Örnek: Hava sıcaklığını size sorup sıcaklık değerine göre normal, sıcak yada soğuk bir gün diye cevap veren program. 20-30 derece Normal bir gün >30 derece Sıcak bir gün 20> derece Soğuk bir gün

#include<stdio.h> #include<cstdlib> #include "locale.h" main() { setlocale(lc_all,"turkish"); int temp,k; printf("sıcaklık değerini giriniz\n"); scanf("%d",&temp); system("cls"); if(temp<30 && temp>20) printf("normal bir gün (Hava sıcaklığı=%d derece)\n",temp); else if(temp>30) printf("sıcak bir gün (Hava sıcaklığı=%d derece)\n",temp); else printf("soğuk bir gün (Hava sıcaklığı=%d derece)\n",temp); system("pause"); }

Girilen tarihteki günün adını veren programı yazınız.

#include <studio.h> main ( ) { int gun, ay, yıl ; long gt ; printf( Tarihi gir ) ; scanf ( %d %d %d,&gun) /* oncekı yıllardakı gun sayısını hesapla */ gt=( yıl*1)*365 + yıl/4; /* bu yildaki aylardaki gunleri ekle */ if (ay==2) gt = gt + 31 ; else if (ay ==3) gt = gt + 31 + 28 ; else if (ay ==4) gt = gt + 31 + 28 +31; else if (ay ==5) gt = gt + 31 + 28 +31+ 30 ; else if (ay ==6) gt = gt + 31 + 28 +31+ 30 +31; else if (ay ==7) gt = gt + 31 + 28 +31+ 30 +31+ 30 ; else if (ay ==8) gt = gt + 31 + 28 +31+ 30 +31+ 30 + 31 ; else if (ay ==9) gt = gt + 31 + 28 +31+ 30 +31+ 30 + 31+30 ; else if (ay ==10) gt = gt + 31 + 28 +31+ 30 +31+ 30 + 31+30 + 31; else if (ay ==11) gt = gt + 31 + 28 +31+ 30 +31+ 30 + 31+30 + 31+ 30 ; else if (ay ==12) gt = gt + 31 + 28 +31+ 30 +31+ 30 + 31+30 + 31+ 30 +31; /*Bu ayı ekle */ gt = gt+ gun; if(yıl%4==0 && ay>2) gt =gt+1; gt=gt %7, if(gt==1) printf( Pazar ); else if(gt==2) printf( Pazartesi ); else if(gt==3) printf( Salı ); else if(gt==4) printf( Carsamba ); else if(gt==5) printf( Persembe ); else if(gt==6) printf( Cuma ); else if(gt==7) printf( Cumartesi ); }

#include <stdio.h> main ( ) { long int gun, ay, yil ; long gt ; printf("gün Ay Yıl olarak Tarihi giriniz\n") ; scanf ( "%ld%ld%ld",&gun,&ay,&yil) ; gt=( yil)*365 + yil/4; if (ay==2) gt = gt + 31 ; else if (ay ==3) gt = gt + 59 ; else if (ay ==4) gt = gt + 90; else if (ay ==5) gt = gt + 120 ; else if (ay ==6) gt = gt + 151; else if (ay ==7) gt = gt + 181 ; else if (ay ==8) gt = gt + 212 ; else if (ay ==9) gt = gt + 242 ; else if (ay ==10) gt = gt + 273; else if (ay ==11) gt = gt + 303 ; else if (ay ==12) gt = gt + 334; gt = gt+ gun;/*girlen ayın günlerini ekleme */ if(yil%4==0 && ay>2) gt=gt+1; gt=gt%7; if(gt==2) printf("pazar"); if(gt==3) printf("pazartesi"); if(gt==4) printf("salı"); if(gt==5) printf("carsamba"); if(gt==6) printf("persembe"); if(gt==0) printf("cuma"); if(gt==1) printf("cumartesi"); }

?: KARŞILAŞTIRMA OPERATÖRÜ C dilinde if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Genel yazım biçimi: (koşul deyimi)? deyim1 : deyim2; İlk önce koşul deyimi sınanır;olumluysa deyim1, aksi durumda deyim2 değerlendirilir. Deyim1 ve deyim2 de atama işlemi yapılamaz,ancak koşul deyiminde atama işlemi de yapılabilir.

(şart)? (E1) : (E2); şart doğru (1) ise E1 işlem görür. şart yanlış (0) ise E2 işlem görür. x=10 y=5 ise z=(x>y)? 20:15; (z=20) z= (x>y)? x:y; (z=x=10)

İki sayının karşılaştırılmasında? İşareti ile karşılaştırma

#include<stdio.h> #include<conio.h> #include <stdlib.h> #include<locale.h> main() { int x,y,c; setlocale(lc_all,"turkish"); printf("1.sayıyı giriniz: "); scanf(" %d",&x); printf("\n"); printf("2.sayıyı giriniz: "); scanf("%d",&y); printf("\n"); c=(x<y)? x:y; system("cls"); printf("küçük olan sayı=%d dir\n",c); getche(); }

switch Deyimi switch(<seçici>) { case seçenek1 : Deyim; case seçenek2 : Deyim;... default : Deyim; } Seçicinin aldığı değere eşit seçeneğin olup olmadığına bakar. Var ise o noktadan sonraki deyimler yürütülür. switch deyiminin sonuna gelindiğinde veya break deyimi ile karşılaşıldığında yürütme işlemi durur ve programın akışı switch deyimini izleyen deyim ile devam eder.

switch(i) { case 1 : printf("bir"); case 2 : printf("iki"); default : printf("hiçbiri"); } i=1 ise çıkış BirİkiHiçbiri i=2 ise çıkış İkiHiçbiri Sorunu ortadan kaldırma için her durum için break deyimi eklenmeli.. Seçici Ordinal tiplerden biri olmalıdır (Ordinal tip: tüm değerleri listelenebilinen veri tipleri - integer, char).. Seçici ile seçenekler aynı tipte olmalıdır.. default kısmı seçimliktir. Seçeneklerin hiçbiri uygun değil ise yürütülür.

#include <stdio.h> main() { char islem; int s1, s2, s3; printf("önce işlemi sonra sayıları girin "); scanf("%c%d%d",&islem, &s1, &s2); switch (islem) { case '+' : s3 = s1 + s2; break; case '-' : s3 = s1 - s2; break; case '*' : s3 = s1 * s2; break; case '/' : s3 = s1 / s2; break; default : printf ("Hatalı işlem"); } printf("\nsonuç = %d",s3); }

1-12 arasında girilen sayıya göre mevsimlerin ismini veren programı yapınız

scanf("%d", &ay); switch (ay) { case 3: case 4: case 5: printf("ilkbahar"); break; case 6: case 7: case 8: printf("yaz"); break; case 9: case 10: case 11: printf("sonbahar"); break; case 12: case 1: case 2: printf("kış"); break; }

goto Deyimi Ve Etiketler goto deyimi etiket ile gösterilen yere programın akışının gitmesini sağlar. goto etiket;.. etiket: veya etiket:.. goto etiket; *Fonksiyon,döngü içerisinde kullanılabilir. Bunlar arasında kullanılmaz. *if ve goto kullanılarak döngü oluşturulabilir.

Her C deyimine, deyimden önce bir tanıtıcı sözcük ve iki nokta üst üste koyarak bir etiket iliştirilebilir. Bir deyimi etiketlemek suretiyle, gerektiğinde o deyime ulaşmak için kullanılabilecek bir adres verilir. Bir fonksiyon içinde birden fazla deyime aynı isim, etiket olarak, verilemez. Bir etiket ve onun arkasına bir deyim yeni bir deyim oluşturur. Bu tür bir deyime etiketli deyim denir: tanıtıcı_sözcük : deyim goto deyimi, kontrolü doğrudan etiketli deyime aktarır. Sözdizimi şöyledir: goto tanıtıcı_sözcük;

Tanıtıcı_sözcük aynı fonksiyon içinde var olan bir etiket olmalıdır. goto kullanarak, fonksiyon içinde (dışında değil) herhangi bir yere atlanabilir; ileri veya geriye doğru, istenildiği kadar içiçe geçmiş döngü veya blokların içine veya dışına, istediğiniz bir yere gidebilirsiniz. goto nun sorumsuzca kullanımı, anlaşılması ve bakımı yapılması olanaksız programlar yaratabilir. Kuramsal olarak, anlambilimsel hiçbir yitime uğratılmadan, goto bir programdan çıkarılıp yerine döngü ve if deyimleri konulabilir. Buna rağmen, hata işleme gibi, bazı durumlarda işleri kolaylaştırabilir. Örneğin: while (bir_kosul) {... do {... for (...;...;...) {... if (guuum) goto felaket;... } } while (baska_kosul);... }... felaket: hata işlemleri

#include<stdio.h> #include<conio.h> main() { int x,i; float ort,t; T=ort=0; i=1; label: printf("%d inci kişinin boyunu giriniz: ",i); scanf(" %d",&x); printf("\n"); i=i+1; T=T+x; if(i<=5) goto label; ort=t/5; printf("boy ortalaması=%5.2f cm dir\n",ort); }

#include<iostream> #include<conio.h> using namespace std; main() { int x,i; char he; float ort,t; basla: T=ort=0; i=1; label: cout<<i<<"'inci kişinin boyunu giriniz: "<<endl; cin>>x; cout<<"\n"; i=i+1; T=T+x; if(i<=5) goto label; ort=t/5; cout<<"boy ortalaması="<<ort<<endl; cout<<"\ndevam etmek için lütfen e harfine basınız"<<endl; cin>>he; if(he=='e' he=='e') goto basla; }

Bu durumda bile, goto deyimi kaldırılabilir. Hata işlemlerinin, bazı temizlik işleri yapıp, olası bir hata kodu ile, çağıran fonksiyona dönüş yaptığını varsayın. O zaman, niye bu işleri goto deyiminin bulunduğu yerde yapıp bir return kullanmayalım? break, continue ve return gibi daha uygun yapıların bulunduğu, C gibi bir dilde, goto lardan kaçınılabilir ve kaçınılmalıdır. ıyi bir programcı goto yu ve hatta continue yu hemen hiç bir zaman kullanmaz. switch dışında da, break deyimini çok seyrek kullanır. Bu arada, goto kullanmadan bile, kontrol akışı anlaşılmayan programlar yazmak olasıdır. Dikkatli tasarım, ayrıntılı belgeleme ve makul içerlek yazma alışkanlığı, bundan kaçınmanın bazı yollarıdır.

YAPILMASI İSTENENLER 1: Sınav notunu harfe dönüştüren programı yazınız (switch-case). ( >=90 :AA, 85-89:BA, 80-84:BB, 75-79:CB, 70-74:CC, 60-69:D, <60 :Başarısız ) 2: Klavyeden girilecek üç sayının çarpım sonucunun kaç basamaklı bir sayı olduğunu gösteren programı yapınız 3: Girilen bir sayının birler basamağı rakamı 5 ten büyük ve çift sayı ise sonucu kırmızı renkli yazan 5 e eşit, küçük ve tek ise sonucu Mavi renkli yazan diğer durumlarda Mor renkle yazan programı yapınız. 4: Kullanıcıdan üç adet sayı girmesini isteyen ve bu sayılardan en büyük olanı bulup, büyük olan sayının küpünü alıp ekranda gösteren programı yapınız. 5: Dışarıdan girilecek olan yarıçap değerine göre bir kürenin hacmini bulup değerini ekrana yazan programı bunuz. Ancak yarıçap 1.0 dan küçük olmamalıdır ve küçük olursa ekran temizlenip işlem baştan başlamalıdır.