Algoritma ve Programlamaya Giriş

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
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Program Kontrol İfadeleri
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Kontrol Yapıları ve Döngüler
DÖNGÜLER(Loop) while, for döngüleri Break ve continue işlevleri
PROGRAM DENETİM DEYİMLERİ
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
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.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
3. HAFTA 3. Hafta.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
1 Bölüm 5 Döngü Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan,
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
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 3 Atama ve Girdi/Çıktı Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir,
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 Ç.
Algoritma ve Programlamaya Giriş Ders 5. C Programlama Dili - 2.
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Bilgisayar Programlama BIL 107
Printf Bu komut ekrana çıktı veren komuttur. Pascalda kullanılan writeln komutuyla aynı anlamdadır.
Algoritma ve Programlamaya Giriş
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
DÖNGÜLER(do-while deyimi)
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ı
C PROGRAMLAMADA AKIŞ KONTROLÜ
Algoritma ve Programlamaya Giriş
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ı
Bölüm 7 İfadeler ve atamalar.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
YAPISAL PROGRAMLAMA Hafta-4
Bölüm 2: Program Denetimi
Örnek: Dışarıdan rast gele girilen 10 tane sayıdan kaç tanesi tek ve kaç tanesi çift ayrıca tekleri ve çiftleri ayrı ayrı toplayan programı yazınız. var.
Bilgisayar Bilimi Koşullu Durumlar.
BİL 112 Programlamaya Giriş
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İ
Bilgisayar Bilimi Fonksiyon Yazma.
WHILE DÖNGÜSÜ while (şart) { ifade 1; ifade 2; }
NİŞANTAŞI ÜNİVERSİTESİ
Aritmetik Operatörler
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
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ş
Diziler(Arrays).
Sunum transkripti:

Algoritma ve Programlamaya Giriş Ders 5

Koşullu İfadeler – if-else yapısı if( koşul ) { komut(lar) } if( koşul ) { komut(lar) } else {

İlişkisel ve Bileşik Operatörler < Küçüktür > Büyüktür == Eşittir <= Küçük eşittir >= Büyük eşittir != Eşit değildir && and ve || or veya ! not tersi

Koşullu İfadeler - 1 #include<stdio.h> int main( void ) { int girilen_sayi; printf("Lütfen bir tam sayı giriniz> "); scanf("%d",&girilen_sayi); if( girilen_sayi > 100 ) printf("Girilen sayı 100'den büyüktür\n"); return 0; }

Koşullu İfadeler - 2 #include<stdio.h> int main( void ) { int girilen_sayi; printf("Lütfen bir tam sayı giriniz> "); scanf("%d",&girilen_sayi); if( girilen_sayi > 100 ) printf("Girilen sayı 100'den büyüktür\n"); else printf("Girilen sayı 100'den küçüktür\n"); return 0; }

Örnek // Kendisine verilen iki tam sayıyla bölme işlemi yapan program. #include<stdio.h> int main( void ) { int bolunen, bolen; float sonuc; printf("Bölünecek sayıyı giriniz> "); scanf("%d",&bolunen); printf("Bölen sayıyı giriniz> "); scanf("%d",&bolen); // Bolenin 0 olmaması gerekiyor. if( bolen != 0 ) { sonuc = (float)bolunen / bolen; printf("Sonuc: %f\n",sonuc); } else printf("Hata: Sayı 0'a bölünemez!\n");

Örnek /* Girilen yaşın, 18 ile 65 arasında olup olmadığını belirler. */ #include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas >= 18 && girilen_yas <= 65 ) printf("Girilen yaş, 18 ile 65 arasındadır.\n"); //Girilen yaş 18 ile 65 arasında değilse, aşağıdaki else //bloğu çalışır. else { //Girilen yaş 18'den küçükse if( girilen_yas < 18 ) printf("Girilen yaş, 18'den küçüktür.\n"); //Girilen yaş 65'ten büyükse else printf("Girilen yaş, 65'ten büyüktür.\n"); }

If-else if if( koşul 1 ) { komut(lar) 1 } else if( koşul 2 ) { . else if( koşul n ) { komut(lar) n } else { komut(lar) n+1 }

#include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas < 18 ) printf("çocuk \n"); if( girilen_yas >= 18 && girilen_yas <= 30 ) printf("genc \n"); if( girilen_yas > 30 && girilen_yas <= 50 ) printf("orta yas \n"); return 0; }

#include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas < 18 ) printf("cocuk \n"); else { if( girilen_yas >= 18 && girilen_yas <= 30 ) printf("genc \n"); if( girilen_yas > 30 && girilen_yas <= 50 ) printf("orta yas\n"); } return 0;

#include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas < 18 ) printf(" cocuk\n"); else if( girilen_yas >= 18 && girilen_yas <= 30 ) printf(" genc\n"); else if( girilen_yas > 30 && girilen_yas <= 50 ) printf(" orta yas\n"); else printf("HATA: Girilen yaş tanımlı değildir!\n"); return 0; }

#include<stdio.h> int main( void ) { int sayi_1, sayi_2, sayi_3; printf("Üç sayı giriniz> "); scanf("%d %d %d", &sayi_1, &sayi_2, &sayi_3); if( sayi_1 >= sayi_2 && sayi_1 > sayi_3 ) printf("%d en büyük sayıdır!\n", sayi_1); else if( sayi_2 >= sayi_1 && sayi_2 >= sayi_3 ) printf("%d en büyük sayıdır!\n", sayi_2); else if( sayi_3 >= sayi_1 && sayi_3 >= sayi_2 ) printf("%d en büyük sayıdır!\n", sayi_3); return 0; }

Switch-case switch( degisken ) { case sabit1: komut(lar) [break] . case sabitN: default: komut(lar); }

#include<stdio.h> int main( void ) { int not; printf("Lütfen notu giriniz> "); scanf("%d",&not); switch( not / 10 ) { case 10: case 9: printf("NOT: A\n"); break; case 8: printf("NOT: B\n"); break; case 7: printf("NOT: C\n"); break; case 6: printf("NOT: D\n"); break; case 5: case 4: case 3: case 2: case 1: case 0: printf("NOT: F\n"); break; default: printf("HATA: Bilinmeyen bir değer girdiniz!\n"); } return 0;

#include<stdio.h> int main( void ) { int sayi_1, sayi_2; char operator_simgesi; printf("Lütfen işlem simgesi giriniz> "); scanf("%c",&operator_simgesi); printf("Lütfen birinci sayıyı giriniz> "); scanf("%d",&sayi_1); printf("Lütfen ikinci sayıyı giriniz> "); scanf("%d",&sayi_2); switch( operator_simgesi ) { case '+': printf("%d %c %d = %d\n",sayi_1,operator_simgesi, sayi_2, sayi_1 + sayi_2); break; case '-': printf("%d %c %d = %d\n",sayi_1,operator_simgesi, sayi_2, sayi_1 - sayi_2); break; case '%': printf("%d %c %d = %d\n",sayi_1,operator_simgesi, sayi_2, sayi_1 % sayi_2); break; case '*': printf("%d %c %d = %d\n",sayi_1,operator_simgesi, sayi_2, sayi_1 * sayi_2); break; case '/': printf("%d %c %d = %.2f\n",sayi_1,operator_simgesi, sayi_2, (float)sayi_1 / sayi_2);break; default: printf("HATA: Tanımsız bir operatör girdiniz!\n"); } return 0;

Gelişmiş Atama Operatörleri += , -= , *= , /= , %= 1-) j = j * ( 3 + x ) ==> j *= ( 3 + x ) 2-) a = a / ( 5 - z ) ==> a /= ( 5 - z ) 3-) x = x - 5 ==> x -= 5

#include <stdio.h> main() { int a = 21; int c ; c = a; printf("c = %d\n", c ); c += a; c -= a; c *= a; c /= a; c = 200; c %= a; }

Özel arttırma ve azaltma operatörleri Form Tip İsim Açıklama i++ postfix post-increment İşlem sonrası arttırma ++i prefix pre-increment İşlem öncesi arttırma i-- post-decrement İşlem sonrası azaltma --i pre-decrement İşlem öncesi azaltma

++ ve -- operatörleri /* Bu programda, arttırma ve azaltma işlemleri önce yapılacaktır. */ #include<stdio.h> int main( void ) { int i = 10, j = 60; printf("i = %d ve j = %d\n", ++i, --j); return 0; }

++ ve -- operatörleri /* Bu programda, arttırma ve azaltma işlemleri sonra yapılacaktır. */ #include<stdio.h> int main( void ) { int i = 10, j = 60; printf("i = %d ve j = %d\n", i++, j--); return 0; }

While döngüsü while( koşul ) { komut(lar) }

/* Ekrana 10 kere "Merhaba Dünya" yazan program*/ #include<stdio.h> int main( void ) { int i = 0; while( i++ < 10 ) { //2d bir tam sayının yazdırılacağını //ancak bu sayı tek basamaktan oluşsa da //2 rakamlık yer ayırılmasını belirtir. printf("%2d: Merhaba Dünya\n",i); } return 0;

#include<stdio.h> int main( void ) { int i = 0, toplam_deger = 0; int n; printf("Lütfen n değerini giriniz> "); scanf("%d",&n); while( i <= n ) { toplam_deger += i*i; i++; } printf("Sonuç: %d\n",toplam_deger); return 0;

Do-while döngüsü do { komut(lar) } while( koşul );

#include<stdio.h> int main( void ) { int i = 0; do { //Önce i'nin değeri arttırılıyor //sonra ekrana Merhaba Dünya yazdırılıyor. printf("%2d: Merhaba Dünya\n",++i); } while( i < 10 ); return 0; }

#include<stdio.h> int main( void ) { int sayi_1, sayi_2; char devam_mi; do { printf("Birinci sayıyı giriniz> "); scanf("%d",&sayi_1); printf("İkinci sayıyı giriniz> "); scanf("%d",&sayi_2); printf("%d + %d = %d\n", sayi_1, sayi_2, sayi_1 + sayi_2); printf("Devam etmek ister misiniz? "); scanf("%c",&devam_mi); }while( devam_mi == '\n' ); printf("\n"); } while( devam_mi == 'E' || devam_mi == 'e' ); return 0; }

For döngüsü for( ilk_deger_atama; koşul; arttırma/azaltma ){ komut(lar) }

#include<stdio.h> int main( void ) { int i; for( i = 0 ; i < 10; i++ ) { printf("%2d: Merhaba Dünya\n",(i+1)); } return 0;

#include<stdio.h> int main( void ) { int i; i = 0; for( ; i < 10; ) { printf("%2d: Merhaba Dünya\n",(i+1)); i = i + 1; } return 0;

Break komutu /* 0 ile 99 arasında tesadüfi sayılar üreten bir programın, kaçıncı seferde 61 sayısını bulacağını yazan program.*/ #include<stdio.h> int main( void ) { int i,tesadufi_sayi; int deneme_sayisi = 0; //while içinde 1 olduğundan sonsuza kadar döngü çalışır. while( 1 ){ //tesadufi_sayi değişkenine, 0 ile 99 arasında //her seferinde farklı bir sayı atanır. //rand( ) fonksiyonu tesadüfi sayı atamaya yarar. //mod 100 işlemiyse, atanacak sayının 0 ile 99 //arasında olmasını garantiler. tesadufi_sayi = rand() % 100; //Döngünün kaç defa çalıştığını deneme_sayisi //değişkeniyle buluruz. deneme_sayisi++; //Eğer tesadufi sayı 61'e eşit olursa, //döngü kırılıp, sonlandırılır. if( tesadufi_sayi == 61 ) break; } printf("Toplam deneme sayısı: %d\n",deneme_sayisi); return 0;

Continue komutu /* Sadece tek sayıları yazdıran bir program */ #include<stdio.h> int main( void ) { int i; for( i = 0; i < 10; i++ ) { //i değişkeninin 2'ye göre modu //0 sonucunu veriyorsa, bu onun //bir çift sayı olduğunu gösterir. //Bu durumda ekrana yazdırılmaması //için döngü bir sonraki adıma geçer. if( i%2 == 0 ) continue; printf("%2d\n",i); } return 0;

Sonsuz Döngü #include <stdio.h> int main () { for( ; ; ) { printf("Bu dongu sonsuza kadar calisir.\n"); } return 0;

#include <stdio.h> int main () { int i, j; for(i = 2; i<100; i++) { for(j = 2; j <= (i/j); j++) if(!(i%j)) break; if(j > (i/j)) printf("%d asal sayidir\n", i); } return 0;

#include<stdio.h> int main( void ) { int sayi,i; int faktoriyel = 1; printf("Sayı giriniz> "); scanf("%d",&sayi); //sayı 0'a büyük veya eşitse, faktoriyel //hesaplanır. if( sayi >= 0 ) { //Sayı 0 ise, alttaki döngü //hiç çalışmaz. for( i = sayi; i > 0; i-- ) { faktoriyel *= i; } printf("Faktoriyel = %d\n",faktoriyel); //Sayı 0'dan küçükse, değer hesaplanamaz. else printf("HATA: Sayı 0'dan küçük olamaz!\n"); return 0;

#include<stdio.h> int main( void ) { int sayi; int yazilacak_rakam; printf("Sayıyı giriniz> "); scanf("%d",&sayi); printf("Sayının tersi: "); while( sayi>10 ) { //Sayının son rakamı alınıp //ekrana yazdırılıyor. yazilacak_rakam = sayi % 10; printf("%d",yazilacak_rakam); //Son rakam ekrana yazdırıldığı //için sayının son hanesi atılıyor. sayi /= 10; } printf("%d\n",sayi); return 0;

#include<stdio.h> int main( void ) { int girilen_sayi_adedi = 0; int sayi_toplami = 0; int girilen_sayi; //Sonsuz döngü oluşturuyoruz. for( ; ; ) { printf("Lütfen bir sayı giriniz> "); scanf("%d",&girilen_sayi); if( girilen_sayi < 0 ) break; sayi_toplami += girilen_sayi; girilen_sayi_adedi++; } printf("Toplam %d adet sayı girilmiştir.\n",girilen_sayi_adedi); printf("Bunların toplam değeri %d olarak bulunmuştur.\n",sayi_toplami); printf("Ortalaması %.3f olarak hesaplanmıştır\n",(float)sayi_toplami/girilen_sayi_adedi); return 0;

#include<stdio.h> int main( void ) { int i, j; for( i = 0 ; i < 5; i++ ) { for( j = 0; j < i+1; j++ ) { printf("* "); } printf("\n"); return 0;

#include<stdio.h> int main( void ) { int i=0,j; while( i < 5 ) { j = 0; while( j < i+1 ) { printf("* "); j++; } printf("\n"); i++; return 0;