1. Algoritmayı Anlamak Nirvana Yayınları Mustafa EKER 2. ALgoritma Geliştirme ve Prog. a Giriş Seçkin Fahri Vatansever 3. İnternet, c ile ilgili kitaplar 1. Temel Kavramlar Bilgisayar Donanım Yazılım Sistem yaz. Uygulama yaz. Yaz. Geliştirme Araçları Programlama dili, bilgisayar programcısı/ kodlayıcı bilgisayar işletmeni(operatör) kodlama kaynak kod çalıştırma derleme (compiling) amaç kod Program yazma adımları: 1. problem/ihtiyaç analizi 2. çözüm yolu 3. algoritma/akış çizelgesi 4. kodlama 5. çalıştırma (deneme) 6. derleme programlama hataları: 1. yazım hataları 2. mantık hataları 3. girdi/çıktı hataları ALGORİTMA 1. Başla 2. Dur 3. Kesinlik 4. Tüm ihtimaller dikkate alınmalı 5. En kısa yol tercih edilmeli örnek: Klavyeden girilen iki sayının toplamı 1. başla 2. A, B yi gir 2. A yı gir 2. Gir A,B 3. B yi gir 3. T=A+B 4. A ve B yi topla T ye yaz 3. A+B->T 4. T yi yaz 5. Dur Günlük hayattan örnekler Çay demleme? 1. başla 2. çaydanlığa su koy 3. demliğe çay koy 4. çaydanlık ve demliği ocağa koy 5. ocağı yak 6. bekle 7. çaydanlık kaynadı mı? E:8 H: 6 8. Çaydanlıktan demliğe su koy 9. çaydanlığa eksilen su kadar su ilave et 10. bekle 11. demlendi mi? E:12 H: 10 12. Ocağı kapat. 13. Servis yap. 14. dur bölünmüş yolda karşıdan karşıya geçiş? 1. başla 2. sağa-sola bak 3. araba var mı? e:4 h:6 4. bekle 5. 2 ye git 6. refüje yürü 7. sağa-sola bak 8. yol boş mu? e:11 h:9 9. bekle 10. 7 e git 11. karşıya yürü 12. dur sabit telefonla görüşme? 1. başla 2. ahizeyi kaldır 3. çevir sesi var mı? e:7 h:4 4. ahizeyi kapat. 5. bekle. 6. 2 ye git 7. numarayı çevir 8. numara düştü mü? e:9 h:4 9. meşgul mü? e:4 h:10 10. cevap veren var mı? e:11 h:4 11. görüşmeyi yap. 12. ahizeyi kapat. 13. dur Sayısal örnekler: değişken: atama: değişken=değer | değişken | fonksiyon | aritmetik/mantıksal ifade a=5 b=a+5 a=b-3 a+b=c yanlış c=a+b c=carp(a,b) a=a+5 a=b>c aritmetik işlem operatörleri: + - * / ^ mod öncelik sırası () ^ / * - + örnekler: a=4 b=6 c=8 d=10 x1=c*d/(a*d)+b+c*d/a x2=c*d/a*d+b+c*d/a x3=c*d/a*d+(b+c)*d/a x1=8*10/(4*10)+6+8*10/4 x1=8*10/40 +6+8*10/4 x1=80/40 +6+80/4 8*0.25+6+8*2.5 x1=2 +6+20 x1=28 x2=8*10/4*10+6+8*10/4 x2=8*2.5*10 +6+20 x2=80/4*10+26 x2=20*10 +6+20 x2=20*10+26 x2=200+26 x2=200+26 x2=226 x3=8*10/4*10+(6+8)*10/4 x3=200 +14 *10/4 x3=200 +140/4 x3=200 +35 x3=235 soru: a=8 b=8 c=2 d=4 e=2 x1=(a+b)/c*e^2+(a+d)/(c^2+e) x2=a+b/c*e^2+a+d/c^2+e x3=a+b/(c*e^2)+(a+d)/(c^2+e) x4=(a+b)/c*e^2+a+d/c^2+e x5=(a+b)/(c*e^2)+(a+d)/(c^2+e) soru: a=9 b=16 x1=a+b^1/2 x2=(a+b)^1/2 x3=a+b^(1/2) x4=(a+b)^(1/2) soru: a=1 b=2 c=3 d=4 e=-2 x1=a+d/b+d^2+2*a*b*c/d+e x2=(a+b)/c+d^2+2*a*b*c/(d+e) x3=a+b/(c+d)^2+2*a*b*c/d+e x4=(a+b)/(c+d)^2+2*a*b*c/(d+e) x1=1+4/2+4^2+2*1*2*3/4-2 x2=(1+2)/3+4^2+2*1*2*3/(4-2) x3=1+2/(3+4)^2+2*1*2*3/4-2 1+2/7^2+12/4-2 1+2/49+3-2 1+0,04+3-2 2,04 x4=(1+2)/(3+4)^2+2*1*2*3/(4-2) 3/7^2+12/2 3/49+6 0,06+6 6,06 karşılaştırma operatörleri > < = >= <= <> mantıksal operatörler ve veya değil örnekler: 1. klavyeden iki sayı gir. Büyük olan? (= dikkate alma) 2. klavyeden bir sayı gir. tek mi çift mi? 3. klavyeden iki sayı gir. Büyük olan? (= se "eşit" yaz) ödev 1: iki sayıdan küçük olanı bul. ödev 2: bir sayı giriliyor. pozitif-negatif-0 mı? bul. 4. klavyeden üç sayı gir. en Büyük olan? (= dikkate alma) ödev 3: üç sayıdan en küçüğü? ödev 4: üç sayıdan ortancayı? ödev 5: beş sayıdan en büyüğü? 5. klavyeden üç basamaklı sayı girilsin. (sayı 3 basamaklı değilse tekrar girdirilsin.) bu sayının basamaklarını ayrı ayrı yazdıran algoritma/akış çizelgesi? ödev 6. klavyeden beş basamaklı sayı girilsin. (sayı 5 basamaklı değilse tekrar girdirilsin.) bu sayının basamaklarını ayrı ayrı yazdıran algoritma/akış çizelgesi? 6. gün-ay-yıl cinsinden iki tarih bilgisi gir. bu iki tarih arasındaki farkı aynı cinsten bulup ekrana yazdıran alg. ve akış çizelgesi? 1 ay=30 gün 1yıl=12 ay ödev 7: saat, dakika, saniye, salise cinsinden iki zaman bilgisi girilmektedir. Bu iki zaman arasındaki farkı aynı cinsten bulup yazdıran...? ödev 8: Klavyeden bir çocuğun doğum tarihi gün-ay-yıl olarak girilmektedir. Çocuğun okul çağına girip girmediğini ekrana yazdıran algoritma/akış çizelgesi? (60-66 ay isteğe bağlı, 66 aydan büyük okul çağı) 7. tahtadaki denklemde(a x kare+b x+c=0) a, b, c katsayıları klavyeden girilmektedir. Denklemin köklerini bul? C programlama dili yazım kuralları: 1. programlar bloklardan oluşur. { ile başlar, } ile biter. 2. komutlar ; ile biter. 3. Programda kullanılacak değişkenler mutlaka tanımlanır. 4. kütüphane dosyaları mutlaka eklenmelidir. 5. büyük küçük harf ayrımı vardır. c programının yapısı /* açıklamalar1 açıklama 2 açıklama 3 */ başlık ya da // açıklama #include ..... // kütüphane dosyasını ekle/çağır #define ......; // tanımlama #undef .......; // tanımlamayı kaldırma typedef ......; // yeni tip tanımlama struct .......; // kayıt tipi (yapısal tip) tanımlama const ........; // sabit tanımlama tip değişkenler; // değişken tanımlama tip fonk_adı(parametreler) //alt program/fonksiyon bildirimi { } main() // ana program { } örnek: #define kare(a) (a*a) ilk örnek: #include #include main() { printf("merhaba sınıf.\n"); getch(); } bilgi tipleri değişken: değişken bildirimi: tip değişken_listesi ; değişken bildiriminde dikkat edilmesi gereken kurallar: 1. değişken isminde a..z, A..Z, 0..9 ve _ kullanılabilir. 2. rakamla başlamaz. 3. özel karakterler ve tr harfler bulunmaz. 4. ayrılmış kelimeler (reserved words) kullanılmaz. 5. k/b harf ayrımı vardır. örnek: #include #include main() { int a,b,sonuc=0; printf("1. sayıyı giriniz:"); scanf("%d",&a); printf("2. sayıyı giriniz:"); scanf("%d",&b); sonuc=a+b; printf("sonuç=%d \n",sonuc); getch(); } sayısal alfasayısal tamsayı char -128 +127 1 byte int -32768 +32767 2 byte tip sıfatları: unsigned işaretsiz signed işaretli short kısa long uzun ondalıklı sayı float 3.4 E-38 3.4 E+38 4 byte double 1.7 E-308 1.7 E+308 8 byte sıfatlı tip örnekleri: uzun kısa unsigned char unsigned int unsigned long int long unsigned long long double alfasayısal char örnek: char a; // tek karakterllik bilgi char ad[20]; //20 karakterlik bilgi, cümle ya da kelime örnek bildirimler: double y; char ch; y=4.687; ch='f'; ch=102; double y=4.687; int v,f; float ort; char bn[2]; long nufus; unsigned adet; long double ortalama; atama: = örneK: a=7; b=7.25; c=a+b; x+y=z; //olmaz a=b=c=d=8; operatörler: tekli: - + ikili: + - * / % işlemli atama: += -= *= /= %= artırma azaltma: ++ -- karşılaştırma > < >= <= == != mantıksal: ve && veya || değil ! bitsel operatör: & | ^ ~ << >> koşullu atama işlem ? örnek: #define mutlak(a) ((a<0) ? -a : a) ekrana yazdırma komutları: printf printf(biçim,değerler/değişkenler); biçim karakterleri: " " işaretleri arasında belirtilir. %karakter c karakter d decimal(tamsayı) e bilimsel formatta sayı f lf ondalıklı sayı g e ya da f den hangisi kısa ise s string(metin/ karakter zinciri) u işaretsiz sayı x 16lık sistemde sayı %4d 4 karakterlik kısmını yaz %nd yazdırmak için n kolonluk bir alan kullanır. n bir sayıdır. %nc %ns %n.mf n ve m sayıdır. n toplam karakter miktarı, m . dan sonraki basamak %n.me kontrol karakterleri: \ dan sonra kullanılır b geriye bir boşluk (bir karakter sol) f feed form besleme n bir alt satır başı r satır başı t bir tab boşluk \ \yaz ' ' yaz " " yaz 0 boş örnek: #include #include main() { float p; p=22.0/7.0; printf("pi=%f\n",p); printf("pi=%6.2f\t\t",p); printf("\t\bpi=%e\n",p); printf("\t\t\tpi=%2.2e",p); printf("\rpi=%g",p); getch(); } örnek: #include #include main() { int p; p=300; printf("pi=%d\n",p); printf("pi=%10d\t\t",p); printf("\t\bpi=%2d\n",p); printf("\t\t\tpi=%x",p); getch(); } puts(değişken) putchar(değişken) örnek: #include #include main() { char c,ad[10]; c='x'; printf("adı gir:"); scanf("%s",ad); putchar(c);printf("\n"); puts(ad); getch(); } klavyeden giriş komutları: scanf("biçim",değişken adresleri); biçim % işaretinden sonra karakter konulur. c karakter d decimal(tamsayı) e bilimsel formatta sayı f lf ondalıklı sayı g e ya da f den hangisi kısa ise s string(metin/ karakter zinciri) u işaretsiz sayı x 16lık sistemde sayı örnek: #include #include main() { int a,b,c,d,e,f; printf("bir tamsayı giriniz:");scanf("%u",&a); printf("araya bir boşluk bırakarak iki tamsayı giriniz:"); scanf("%d %d",&b,&c); printf("araya bir , bırakarak iki tamsayı giriniz:"); scanf("%d,%d",&d,&e); f=a+b+c+d+e; printf("sayıların toplamı=%d\n",f); getch(); } örnek: #include #include main() { float a,b,c; printf("bir ondalıklı sayı giriniz:");scanf("%f",&a); printf("bir ondalıklı sayı giriniz:");scanf("%3f",&b); c=a+b; printf("sayıların toplamı=%f\n",c); getch(); } örnek: #include #include main() { char k1[25],k2[25]; printf("bir kelime giriniz:");scanf("%s",k1); printf("bir kelime giriniz:");scanf("%5s",k2); printf("%s %s\n",k1,k2); getch(); } gets(değişken); //string gir değişken=getch(); // karakter gir değişken=getche(); // karakter gir örnek: #include #include main() { char k1[25],k2[25],a,b; printf("bir cümle giriniz:"); gets(k2); printf("aynı cümleyi giriniz:");scanf("%s",k1); printf ("birinci girilen %s \n",k2); printf ("birinci girilen %s \n",k1); a=getch(); b=getche(); printf("\n %c %c",a,b); getch(); } kbhit(); //klavyeden bir tuşa basılıp basılmadığını öğrenmek için karar yapıları tek yönlü if (basit if) if (şart) komut; if (şart) { komut1; komut2; komut3; komut4; } örnek: gün-ay-yıl cinsinden iki tarih bilgisi gir. bu iki tarih arasındaki farkı aynı cinsten bulup ekrana yazdıran c programı? 1 ay=30 gün 1yıl=12 ay #include #include main() { int g1,a1,y1,g2,a2,y2,g,a,y; printf ("1. tarihi gün ay yıl olarak araya boşluk koyarak gir:"); scanf("%d %d %d",&g1,&a1,&y1); printf ("2. tarihi gün ay yıl olarak araya boşluk koyarak gir:"); scanf("%d %d %d",&g2,&a2,&y2); if (g1 #include main() { int a,b; printf ("1. sayıyı gir:"); scanf("%d",&a); printf ("2. sayıyı gir:"); scanf("%d",&b); if(a>b) printf("%d daha büyüktür,\n",a); else printf("%d daha büyüktür,\n",b); getch(); } örnek: 2. klavyeden bir sayı gir. tek mi çift mi? ödev 10: Klavyeden bir çocuğun doğum tarihi gün-ay-yıl olarak girilmektedir. Çocuğun okul çağına girip girmediğini ekrana yazdıran c programı? (66 aydan küçükse okul çağı değil, 66 aydan büyük okul çağı) ödev 11: klavyeden girilen bir sayının pozitif/negatif durumunu ekrana yazdıran c programı. içiçe if: if (şart1) k1; else if (şart2) k2; else if (şart3) k3; else k4; if (şart1) if (şart2) if (şart3) i4; else i3; else i2; else i1; if (şart1) if (şart2) kom1; else kom2; else if (şart3) kom3; else kom4; örnek: klavyeden iki sayı gir. Büyük olan? Eşitse "eşit" yaz. #include #include main() { int a,b; printf ("1. sayıyı gir:"); scanf("%d",&a); printf ("2. sayıyı gir:"); scanf("%d",&b); if(a>b) printf("%d daha büyüktür,\n",a); else if (b>a) printf("%d daha büyüktür,\n",b); else printf("eşittir"); getch(); } örnek: klavyeden üç sayı girilecek. üç sayıdan en küçüğü bulup yazdıran program? #include #include main() { int a,b,c; printf ("1. sayıyı gir:"); scanf("%d",&a); printf ("2. sayıyı gir:"); scanf("%d",&b); printf ("3. sayıyı gir:"); scanf("%d",&c); if((a #include main() { int a,b,c; printf ("1. sayıyı gir:"); scanf("%d",&a); printf ("2. sayıyı gir:"); scanf("%d",&b); printf ("3. sayıyı gir:"); scanf("%d",&c); if(a #include #include main() { int a,b,c,d; float x,x1,x2; printf ("a katsayısını gir:"); scanf("%d",&a); printf ("b katsayısını gir:"); scanf("%d",&b); printf ("c katsayısını gir:"); scanf("%d",&c); d=b*b-4*a*c; if (d>0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("iki kök var.\n"); printf("x1=%0.2f x2=%0.2f\n",x1,x2); } else if (d==0) { x=-b/(2*a); printf("tek kök var.\n"); printf("x=%0.2f \n",x); } else printf("reel kök yoktur.\n"); getch(); } ödevler: 12. klavyeden girilen 5 sayıdan en büyüğü? 13. klavyeden bir derse ait ders notu girilmektedir. Uygun ifadeyi yazdıran c programı? 14. klavyeden işlem seçimi için bir karakter ve işlem için 2 tane sayı gir. + ise toplam, - ise fark, x ise çarpım, / ise bölümü hesapla ve yaz. ? operatörü (şartlı atama) ifade1 ? ifade2 : ifade3; örnek: y=x>100 ? 5 :20; switch case yapısı switch(değişken) { case değer1: komut1a; komut1b; . . break; case değer2: komut2a; komut2b; . . break; case değer3: komut3a; komut3b; . . break; default: komutna; komutnb; . . } örnek: klavyeden ilköğretimden bir derse ait ders notu girilmektedir. Uygun ifadeyi yazdıran c programı? #include #include main() { int nt; printf ("ders notunu gir:");scanf("%d",&nt); switch(nt) { case 5: printf("pekiyi\n"); break; case 4: printf("iyi\n"); break; case 3: printf("orta\n"); break; case 2: printf("geçer\n"); break; case 1: printf("başarısız\n"); break; default: printf("geçersiz not girildi.\n"); } getch(); } örnek: klavyeden bir sayı gir. girilen sayı tek/çift yazdıran programı switch case yapısı ile yaz. #include #include main() { int a,birler; printf ("bir sayı gir:");scanf("%d",&a); birler=a % 10; switch(birler) { case 0: case 2: case 4: case 6: case 8: printf("çift\n"); break; case 1: case 3: case 5: case 7: case 9: printf("tek\n"); } getch(); } örnek: klavyeden işlem seçimi için bir karakter ve işlem için 2 tane sayı gir. + ise toplam, - ise fark, x ise çarpım, / ise bölümü hesapla ve yaz. #include #include main() { int a,b; char sec; printf ("birinci sayıyı gir:");scanf("%d",&a); printf ("ikinci sayıyı gir:");scanf("%d",&b); printf ("seçiminizi gir:");sec=getche(); printf("\n"); switch(sec) { case '+': printf("%d+%d=%d\n",a,b,a+b); break; case '-': printf("%d-%d=%d\n",a,b,a-b); break; case 'x': printf("%dx%d=%d\n",a,b,a*b); break; case '/': printf("%d/%d=%f\n",a,b,(float)a/b); break; default: printf("hatalı seçim.\n"); } getch(); } ödev: 15. klavyeden geometrik şekil tipi için bir seçim karakteri gir. seçime göre geometrik şeklin gerekli bilgilerini klavyeden girmeyi sağlayuan ve alanı hesaplayan programı yaz. döngüler sayaç: for(sayaç ilk değer;kontrol ifadesi; artma azalma) komut; ya da for(sayaç ilk değer;kontrol ifadesi; artma azalma) { komutlar; } örnek: 1 den 5 e kadar sayıları ekrana yazdıran program. #include #include main() { int i; for (i=1;i<=5;i++) printf("i=%d\n",i); getch(); } break komutu continue komutu #include #include main() { int i; for (i=1;i<=10;i++) { if (i==5) continue; printf("i=%d\n",i); } printf("döngü sonu i=%d\n",i); getch(); } örnek: klavyeden girilen 10 tane sayının ortalaması? #include #include main() { int i,t=0,a; float ort; for (i=1;i<=10;i++) { printf("%d inci sayıyı gir",i); scanf("%d",&a); t+=a; } ort=(float)t/3; printf("ortalama=%f\n",ort); getch(); } örnek: klavyeden girilen sayının faktoriyeli? #include #include main() { int i,n,f=1; printf("faktoriyeli hesaplanacak sayıyı gir:"); scanf("%d",&n); for (i=1;i<=n;i++) f*=i; printf("faktoriyel=%d\n",f); getch(); } ödev 16. klavyeden N değeri girilmektedir. 1 den N e kadar sayıların toplamını, 1 den N e kadar çift sayıların toplamını, 1 den N e kadar tek sayıların toplamını ayrı ayrı bulup ekrana yazdıran c programını yaz. ödev 17. Klavyeden N ve R değerleri girilmektedir. C(N,R) yi hesaplayan programı yazınız. ödev 18. Klavyeden taban (x) ve kuvvet (y) girilmektedir. x üzeri y yi hesaplayan programı yazınız. while döngüsü: while(şart) komut; veya while (şart) { komutlar; } örnek: klavyeden sayılar girilmektedir. 0 girilene kadar girilen sayıların ortalaması? (0 hariç) #include #include main() { int i=0,t=0,a=5; float ort; while(a!=0) { printf("sayıyı gir. bitirmek için 0 gir."); scanf("%d",&a); t=t+a; i++; } ort=(float)t/(float)(i-1); printf("ortalama=%0.3f\n",ort); getch(); } veya #include #include main() { int i=0,t=0,a; float ort; while(0==0) { printf("sayıyı gir. bitirmek için 0 gir."); scanf("%d",&a); if (a==0) break; t=t+a; i++; } ort=(float)t/(float)i; printf("ortalama=%0.3f\n",ort); getch(); } do while döngüsü: do komut; while (şart); veya do { komutlar; } while (şart); örnek: bir öncekinin aynısı? #include #include main() { int i=0,t=0,a; float ort; do{ printf("sayıyı gir. bitirmek için 0 gir."); scanf("%d",&a); t=t+a; i++; }while(a!=0); ort=(float)t/(float)(i-1); printf("ortalama=%0.3f\n",ort); getch(); } veya #include #include main() { int i=0,t=0,a; float ort; do{ printf("sayıyı gir. bitirmek için 0 gir."); scanf("%d",&a); if (a==0) break; t=t+a; i++; }while(5==5); ort=(float)t/(float)i; printf("ortalama=%0.3f\n",ort); getch(); } ödev 19: klavyeden sayılar girilmektedir. 0 girilene kadar teklerin ve çiftlerin ayrı ayrı ortalamasını bulup yazdıran (0 hariç) programı yazınız. ödev 20: klavyeden sayılar girilmektedir. 0 girilene kadar teklerin toplamını ve çiftlerin çarpımını bulup yazdıran (0 hariç) programı yazınız. ödev 21: klavyeden bir n sayısı gir. 1 den n e kadar asal sayıları bulup yazdır. içiçe döngüler örnek: 1 den 10 a kadar sayıların çarpım tablosu? #include #include main() { int i,j; for (i=1;i<=10; i++) for (j=1; j<=10; j++) printf("%dx%d=%d\n",i,j,i*j); getch(); } örnek: aşağıdaki ekran çıktısını veren program? 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 örnek: aşağıdaki ekran çıktısını veren program? 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 örnek: aşağıdaki ekran çıktısını veren program? 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 örnek: 1 2 3 4 5 6 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 ödev22: aşağıdaki ekran çıktısını veren program? 6 6 5 6 5 4 6 5 4 3 6 5 4 3 2 6 5 4 3 2 1 ödev23: aşağıdaki ekran çıktısını veren program? 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 ödev24: aşağıdaki ekran çıktısını veren program? 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 1 ödev25: aşağıdaki ekran çıktısını veren program? 6 5 5 4 4 4 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 örnek: t=1!+2!+3!+.....+n! ödev: c=1*(1+2)*(1+2+3)*....*(1+2+3+...+n) ödev: t=1+2*2+3*3*3+....+n*n*n*n...*n diziler örnek: 5 elemanlı bir diziye sayı girdiren ve sayıları ekrana yazdıran program? #include #include main() { int a[5],i; for (i=0;i<=4;i++) { printf("%d inci elemanı gir:",i+1); scanf("%d",&a[i]); } for (i=0;i<=4;i++) printf("%d inci eleman=%d\n",i+1,a[i]); getch(); } örnek: n elemanlı bir diziye (n en fazla 30 olabilir) sayı giridiren, tek olnaları t, çift olanları c dizisine atayan ve bu iki diziyi ekrana yazdır. #include #include main() { int a[30],t[30],c[30],i,j=0,k=0,n; printf("dizinin eleman sayısını gir(en fazla 30)="); scanf("%d",&n); for (i=0;i<=(n-1);i++) { printf("%d inci elemanı gir:",i); scanf("%d",&a[i]); if (a[i]%2==0) c[k++]=a[i]; else t[j++]=a[i]; } for (i=0;i<=(j-1);i++) printf("%d inci tek eleman=%d\n",i,t[i]); for (i=0;i<=(k-1);i++) printf("%d inci çift eleman=%d\n",i,c[i]); getch(); } örnek:fiboniacchi sayılarını n elemanlı ( n>=3) bir diziye atayan ve diziyi yazdıran program? #include #include main() { int a[100],i,n; a[0]=a[1]=1; printf("dizinin eleman sayısını gir(en az 3 en fazla 100)="); scanf("%d",&n); for (i=2;i<=n;i++) a[i]=a[i-1]+a[i-2]; for (i=0;i<=n;i++) printf("%d ",a[i]); getch(); } ödev26: n elemanlı bir diziye değer girişi yaptıran ve bu dizinin elemanlarını tersten başka bir diziye atayıp bu diziyi yazdır? ödev27: n elemanlı bir diziye değer girişi yaptıran ve bu dizinin standart hatasını bulup ekrana yazdıran program? formul tahtada: ödev28: klavyeden bir sayı gir. bu sayıyı ikilik (binary) sisteme çevir sonucu yazdıran program? fonksiyonlar: döndürme_tipi fonk_adı(parametre listesi) //başlık { return(değer/ifade); // döndürülecek değer } önbildirim: döndürme_tipi fonk_adı(parametre listesi); örnekler: klavyeden girilen iki sayının toplamı. 1. ana programdan fonksiyona değer aktarımı yok. #include #include void topla(); main() { topla(); getch(); } void topla() { int x,y,t; printf("birinci sayıyı gir:"); scanf("%d",&x); printf("ikinci sayıyı gir:"); scanf("%d",&y); t=x+y; printf("sonuç=%d\n",t); } 2.ana program-altprogram arasında global değişkenlerle bir değer aktarımı var. #include #include void topla(); // void topla(void); int x,y,t; main() { printf("birinci sayıyı gir:"); scanf("%d",&x); printf("ikinci sayıyı gir:"); scanf("%d",&y); topla(); printf("sonuç=%d\n",t); getch(); } void topla() // void topla(void) { t=x+y; } 3. parametreli fonksiyon. #include #include void topla(int x,int y); int t; main() { int a,b; printf("birinci sayıyı gir:"); scanf("%d",&a); printf("ikinci sayıyı gir:"); scanf("%d",&b); topla(a,b); printf("sonuç=%d\n",t); getch(); } void topla(int x,int y) { t=x+y; } 4. parametreli ve geriye değer gönderen fonksiyon. #include #include int topla(int,int); main() { int a,b; printf("birinci sayıyı gir:"); scanf("%d",&a); printf("ikinci sayıyı gir:"); scanf("%d",&b); printf("sonuç=%d\n",topla(a,b)); getch(); } int topla(int x,int y) { return(x+y); } örnek: geometrik şekillerin seçimini ve alan hesabını fonksiyonlarla yazınız. #include #include int secim(); int kare(int); int dikdortgen(int,int); float ucgen(int,int); float daire(int); float yamuk(int,int,int); main() { int sec; sec=secim(); switch(sec) { case 1: int x; printf("Kenar değerini gir:"); scanf("%d",&x); printf("alan=%d\n",kare(x)); break; case 2: case 3: case 4: case 5: default: printf("geçersiz seçim\n"); } getch(); } int secim() { int s; printf ("kare için 1\n");printf ("dikdörtgen için 2\n"); printf ("üçgen için 3\n");printf ("daire için 4\n");printf ("yamuk için 5\n"); printf("seçiminiz="); scanf("%d",&s); return(s); } int kare(int a) { return(a*a); } float ucgen(int a,int h) { } float daire(int r) { } float yamuk(int a,int t,int h) { } örnek: klavyeden iki sayı girilmektedir. Bu iki sayıdan büyüğü bulan büyük, küçüğü bulan küçük isimli iki fonksiyonla ana programı yazınız. #include #include int buyuk(int,int); int kucuk(int,int); main() { int a,b; printf("birinci sayıyı gir:"); scanf("%d",&a); printf("ikinci sayıyı gir:"); scanf("%d",&b); printf("en büyük=%d\n",buyuk(a,b)); printf("en küçük=%d\n",kucuk(a,b)); getch(); } int buyuk(int x,int y) { return(x>y?x:y); } int kucuk(int x,int y) { if (x #include float ortalama(int [],int); main() { int a[30],i,n; printf("1 den büyük 30 dan küçük sayı gir:"); scanf("%d",&n); for (i=1;i<=n;i++) { printf("değeri gir:"); scanf("%d",&a[i-1]); } printf("ortalama=%f\n",ortalama(a,n)); getch(); } float ortalama(int dizi[],int x) { int i,t=0; for (i=1;i<=x;i++) t=t+dizi[i-1]; return((float)t/x); } ödev 33: dizinin eleman sayısı ve elemanları klavyeden gir. en büyük elemanı, en büyük elemanın sıra numarası (ilk eleman 1 numaralıdır) bulan program. ödev 34: standart hatayı bulan programı fonksiyonlarla yap.