C PROGRAMLAMADA AKIŞ KONTROLÜ

Slides:



Advertisements
Benzer bir sunumlar
switch - case Yapısı Döngü Yapıları
Advertisements

Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Bölüm 2: Program Denetimi
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Program Kontrol İfadeleri
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Kontrol Yapıları ve Döngüler
PHP'de Program Denetimi
PROGRAM DENETİM DEYİMLERİ
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
2. HAFTA 2. Hafta.
3. HAFTA 3. Hafta.
BİLGİSAYAR programlama II
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
Bölüm 4 Seçme Komutları Alıştırmalar
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
6. HAFTA Mart Mantıksal Operatörler & Ve | Veya ~ Değil / Bölme.
Algoritma ve Programlamaya Giriş Ders 5. C Programlama Dili - 2.
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
Bilgisayar Programlama BIL 107
Printf Bu komut ekrana çıktı veren komuttur. Pascalda kullanılan writeln komutuyla aynı anlamdadır.
C Programlama Dili Çağdaş Hakan Aladağ.
Algoritma ve Programlamaya Giriş
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
DÖNGÜLER(do-while deyimi)
BİLGİSAYAR PROGRAMLAMA Ders 3: C ile Programlamaya Giriş
BÖLÜM 5 POINTER’LER (İŞARETÇİLER)
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Algoritma ve Programlamaya Giriş
Algoritma ve Programlamaya Giriş
tanımları yapabilmeniz gerekmektedir .
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Mühendisliğine Giriş
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
Komut düzeyi kontrol yapıları
YAPISAL PROGRAMLAMA Hafta-4
Bölüm 2: Program Denetimi
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
?: KARŞILAŞTIRMA OPERATÖRÜ
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
WHILE DÖNGÜSÜ while (şart) { ifade 1; ifade 2; }
NİŞANTAŞI ÜNİVERSİTESİ
Aritmetik Operatörler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
C Programlama Diline Giriş
Sunum transkripti:

C PROGRAMLAMADA AKIŞ KONTROLÜ BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ

#include <stdio.h> main() { int a=2,b=4; IF-ELSE Yapıları: Mantıksal bir ifadenin doğru yada yanlış olmasına göre farklı yerlere dallanmayı sağlar. IF-Yapıları: Örn #include <stdio.h> main() { int a=2,b=4; if( a>5) printf ("\n %d",a) ; printf ("\n %d", b ) ; }

#include <stdio.h> #include <conio.h> main(){ int a,b; If - Else Yapısı Örnek: #include <stdio.h> #include <conio.h> main(){ int a,b; printf (“birinci sayiyi giriniz:”);scanf(“%d”,&a); printf (“ikinci sayiyi giriniz:”);scanf(“%d”,&b); if (a>b) printf (“ilk girilen %d sayisi en buyuk”); else printf (“ikinci girilen %d sayısi en buyuk”);getche(); }

If – Elseif – Else Yapısı

Örnek # include <stdio.h> int a,b,c, min, max, ort ; main (){ scanf ("%d,%d, %d,",&a ,&b,&c) ; if (a<b) if (a<c) if (b<c) {min=a; ort=b; max=c;} else {min=a; ort=c; max=b;} else {min=c; ort=a; max=b;} else if (b<c) if (a<c) {min=b; ort=a; max=c;} else {min=b; ort=c; max=a;} else {min=c; ort=b; max=a;} printf ("\n %d %d %d ",min,ort,max) ; }

/* Girilen 3 sayıdan büyüğünü bulan program */ Örnek /* Girilen 3 sayıdan büyüğünü bulan program */ #include <stdio.h> main() { int a,b,c,buyuk; printf(“a sayısını giriniz:”); scanf(“%d”,&a); printf(“b sayısını giriniz:”); scanf(“%d”,&b); printf(“c sayısını giriniz:”); scanf(“%d”,&c); buyuk=a; if(buyuk<b) buyuk=b; if(buyuk<c) buyuk=c; printf (“büyük sayı=%d\n”,buyuk); }

Örnek /* Girilen sayının tek mi? Çift mi? Olduğunu bulan program*/ #include <stdio.h> main() { int a,b; printf(“a sayısını gir:”); scanf(“%d”,&a); b=(a/2) * 2; if (a==b) printf(”sayi çift”); else printf(”sayi tek”); } -------------------------------------------------------- b=(a%2); if (b==0) printf(”sayi çift”);

Örnek: Kendisine verilen iki tam sayıyı, bölecek ve sonucu virgüllü sayı olarak gösterecek bir bölme işlemini programı hazırlayınız. (Şayet bölen 0 olarak verilirse, bölme işlemi yapılmamalıdır.) #include<stdio.h> main() { int bolunen, bolen; float sonuc; printf("Bölünecek sayıyı giriniz> "); scanf("%d",&bolunen); printf("Bölen sayıyı giriniz> "); scanf("%d",&bolen); if( bolen != 0 ) { sonuc = (float)bolunen / bolen; printf("Sonuc: %.2f\n",sonuc); } else printf("Hata: Sayı 0'a bölünemez!\n");

#include <stdio.h> #include <conio.h> #include <stdlib.h> //system ("PAUSE") komutu için eklendi main () { int sayi; printf ("Notunuzu girin:"); scanf ("%d",&sayi); if (sayi==5) printf ("Pekiyi\n"); if (sayi==4) printf ("İyi\n"); if (sayi==3) printf ("Orta\n"); if (sayi==2) printf ("Gecer\n"); if (sayi==1) printf ("Basarisiz\n"); if ((sayi!=1)&&(sayi!=2)&&(sayi!=3)&&(sayi!=4)&&(sayi!=5)) { printf ("Gecersiz bir sayi degeri girildi!\n"); } if (sayi==1){ printf ("Sinif Tekrari!\n"); } else{printf ("Sinifi Gecti!\n"); } printf ("\n"); system ("PAUSE"); //getche(); // pause eklendiği için gerek yok. }

#include <stdio.h> #include <stdlib.h> //system ("PAUSE") komutu için ekliyorduk int main (void) { int sayi; printf ("Notunuzu girin:"); scanf ("%d",&sayi); if ((sayi!=1)&&(sayi!=2)&&(sayi!=3)&&(sayi!=4)&&(sayi!=5)) printf ("Gecersiz bir sayi degeri girildi!\n"); else { if (sayi==5)printf ("Pekiyi\n"); if (sayi==4)printf ("İyi\n"); if (sayi==3)printf ("Orta\n"); if (sayi==2)printf ("Gecer\n"); if (sayi==1)printf ("Basarisiz\n"); if (sayi==1)printf ("Sinif Tekrari!\n"); else printf ("Sinifi Gecti!\n"); printf ("\n");system ("PAUSE");return 0; }

Switch-Case Yapısı Char ya da int tipi değişkenlerin değerlerine bağlı olarak programın işleyişini dallandıran yapıdır (bir kalıptır). switch (ifade) { case etiket: blok1; case etiket: blok2; . default: blokn; }

Örnek # include <stdio.h> # include <conio.h> main() { int d1; printf ( “Bir Sayı Giriniz [1-5]”); scanf ( “%d”, &d1); switch (d1) { case 1: printf (“Bir”);break; case 2: printf (“İki”);break; case 3: printf (“Üç”);break; case 4: printf (“Dört”);break; case 5: printf (“Beş”);break; default: printf (“1-5 arası sayi girmediniz”);break; } getch();

#include <stdio.h> #include <conio.h> main () { int gun; printf ("Gun degerini girin:"); scanf ("%d",&gun); switch (gun){ case 1:printf ("pazartesi\n"); break; case 2:printf ("sali\n"); break; case 3:printf ("carsamba\n"); break; case 4:printf ("persembe\n"); break; case 5:printf ("cuma\n"); break; case 6:printf ("cumartesi\n"); break; case 7:printf ("pazar\n"); break; default:printf ("gecersiz deger girdiniz!\n");break; } case 1: case 2: case 3: case 4: case 5:printf ("hafta ici\n"); break; case 6: case 7:printf ("hatfa sonu\n"); break;} getche();}

FOR Döngüsü Tek bir işlem satırını veya birden fazla işlem satırından oluşan bloğun istenen sayıda tekrarlanması için kullanılır.

Kullanım Şekli: for (ilk değer; koşul; arttırma) işlem satırı ; Örnek: for (i=0 ; i<10 ; i++) printf (“\n %d”,i) ; for (i=0, j=5 ; i<= j ; i++, j--) { a=i+j ; printf (“\n %d”, a) ; } for ( ; ; ) sonsuz döngü

Örnek #include <stdio .h> main( ) { int i,toplam; toplam=0; for (i=1;i<=100;i++) toplam=toplam+i; printf( “toplam=%d\n”,toplam); }

Örnek # include <stdio.h> int x,i,j ; main () { for (x=1 ; x<2 ; x++) for ( j=1 ; j<=4 ; j++) for ( i=x ; i<x+3 ; i++) printf (“%d\n”, i*j ) ; }

Örnek /*Rasgele girilen 10 sayıdan negatif ve pozitif olanların sayısını bulma #include <stdio.h> #include <conio.h> int i,neg,poz,a; main() { neg=0;poz=0; for (i=1;i<=10;i++) { printf(“a Sayısını Giriniz”); scanf(“%d”,&a); if (a<0) neg=neg+1; // neg++; if (a>0) poz=poz+1; // poz++; } printf(“Negatif sayılar Top. = %d \nPozitif Sayılar Top.=%d”,neg,poz); getch();

Örnek # include <stdio.h> # include <math.h> /*Arka arkaya girilen rasgele 10 tamsayının ortalaması ile bu sayılardan en büyük ve en küçük olanının ortalamasını bularak elde edilen bu iki ortalamanın farkını alan*/ # include <stdio.h> # include <math.h> int i,a,ek,eb,tp; float b,fark,ort; main(){ printf(“a sayısını gir.:”); scanf( “%d”,&a); eb=a; ek=a, tp=a; for (i=2;i<11; i++) { printf(“a sayısını gir..:”); scanf(“%d”,&a); if(ek>a) ek=a; if(eb<a) eb=a; tp=tp+a; } b=(ek+eb)/2; ort=tp/10; fark=ort-b; printf("fark=%f",fark); }

Örnek Ondalıklı kısmı iki haneli girilen pozitif bir rasyonel sayının ondalıklı kısmının sayı değerinin bir tam kare olup olmadığını bulma #include <stdio.h> #include <conio.h> #include<math.h> float a,k; int b,c,sayi,deger; main() { printf("sayiyi girin:"); //sayı: "2.25" olsun, "2,25" olmamalı scanf( “%f”,&a); b=a; k=a-b; sayi=k*100; deger=sqrt(sayi); printf(“%f %d %f %d %d”,a,b,k,sayi,deger); deger=deger*deger; if(sayi==deger) printf(“\nbu sayi tam karedir..”); else printf(”\nbu sayi tamkare degildir..”); getche(); }

while döngüsü while (mantıksal ifade) { işlem satırı } “mantıksal ifade” ile belirtilen koşul doğru olduğu sürece blok içerisindeki satırlar tekrarlanır. Koşul yanlış olduğu anda döngüden çıkar.

while( Koşul) { ___ while ( n) { ____ y, d ___ ____ ___ } ____ } ____ ____ n=0 olduğu anda sonuç yanlıştır ve döngüden çıkar. n>0 iken döngü çalışır. while (1) { __ while (;) { ___ } ___ } sonsuz döngü

Örnek # include <stdio.h> # include <conio.h> int i ; main () { i=1; while (i<20) { printf ("\ni=%d",i) ; i++; } printf("i’nin değeri=%d",i); getch();

do – while Döngüsü While döngüsü gibidir. Ancak do-while döngüsünde önce program doğrudan döngüye girer ve satırları çalıştırır. Daha sonra koşula bakılır. Koşul doğru olduğu sürece döngü bloğu tekrarlanır.

#include <stdlib.h> Örnek # include <stdio.h> # include <conio.h> #include <stdlib.h> int i ; main () { system("CLS"); i=1; do printf ("\ni=%d",i) ; i++; } while (i<20); printf("i’nin değeri=%d",i); getch(); }

Örnek # include <stdio.h> # include <conio.h> int x,y ; main () { //clrscr () ; do { printf(“sayi giriniz=“); scanf(“%d “,&x) ; y = (x<1||x>9); if ( y ) printf (“\n hatalı secim”) ; } while (y); printf (“\n dogru secim “) ; getche () ; }

GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur. label_name: . if( kosul ) { goto label_name; } #include <stdio.h> #include <conio.h> main() { int a=5 ; dal1: printf("\n%d",a); a+= 2; getch(); if(a<100) goto dal1 ; }

#include <stdio .h> main( ) { int i,toplam; toplam=0; i=0; Örnek // 1 den 10 e kadar olan sayıların toplamı #include <stdio .h> main( ) { int i,toplam; toplam=0; i=0; etiket: i=i+1; toplam=toplam+i; if (i<10) goto etiket; printf("toplam=%d\n",toplam); }

break ve continue for, while, do-while gibi döngü içlerinde kullanılan komutlardır. Break döngüden çıkılmasını sağlarken continue ise döngü bloğuna ait sonraki bölümü atlayarak döngü sonuna gidilmesini, dolayısı ile döngü şartının kontrol edilmesini sağlar. Örnek for (başlangış; şart; artım) while (1) { scanf (“%d”,&x); { if (x<0) break; . printf (“sayi=%d”,x); . if (şart) continue; } . . }

Örnek #include<stdio.h> #include<conio.h> #include<math.h> float a,b,c,x1,x2,d; char y; main() { printf("katsayilari girin:"); scanf("%f %f %f",&a,&b,&c);getche(); d=b*b-4*a*c; y=(d<0.0)*1+(d==0.0)*2+(d>0.0)*3; printf("\n determinant:%f",d); switch(y){ case 1: printf ("\n gerçek kök yok"); break; case 2: x1=-b/(2*a); printf ("\n cakisik kok=%f",x1);break; case 3: x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); printf ("\n kokler=%f %f",x1,x2);getche(); } getche(); }

Örnek /* İki sayının okek’ini bulan program*/ # include <stdio.h> # include <conio.h> main() { clrscr(); int a,b,buyuk,i; printf("1.sayiyi giriniz:"); scanf("%d",&a); printf("2.sayiyi giriniz:"); scanf("%d",&b); if(a>b) buyuk=a; else buyuk=b; for(i=buyuk; ;i++) if(i%a==0 && i%b==0) { printf("okek=%d",i); break; } getche(); }

Örnek // İki sayının obebini bulan program # include <stdio.h> # include <conio.h> main() { clrscr(); int a,b,x,i; printf("1.sayiyi giriniz:"); scanf("%d",&a); printf("2. sayiyi giriniz:"); scanf("%d",&b); if(a<b) x=a; else x=b; for(i=x;;i--) if(a%i==0 && b%i==0){ printf("obeb=%d",i); break; } getche(); }