Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

11 C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN. 22 PROGRAM - ALGORİTMA –AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak.

Benzer bir sunumlar


... konulu sunumlar: "11 C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN. 22 PROGRAM - ALGORİTMA –AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak."— Sunum transkripti:

1 11 C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN

2 22 PROGRAM - ALGORİTMA –AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir. Kısaca algoritmanın şemalarla gösterilmesidir. Algoritma geliştirildikten sonra, daha iyi anlaşılabilir olması ve programlama dillerine aktarımı daha kolay olması nedeniyle, akış şeması haline getirilir. Böylece sorunun çözüm basamakları, birbirleri ile ilişkileri ve bilgi akışı daha kolay görülebilir ve yanlışlıklar düzeltilebilir.

3 33 Bilgisayar ortamında bir problem çözülürken aşağıdaki adımlar izlenir: Soru Tanımlama Algoritma Geliştirme: Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır. Kısaca algoritma mevcut bilgilerden istenilenlere erişme yöntemidir Girdi ve Çıktı Biçimi Belirleme: Sonuçların dış ortama, dolayısıyla insana aktarımı düzgün bir biçimde yapılmalıdır Akış Şemasını Çizme Kodlama: Akış şemaları çizildikten sonra, sorunu yapısına uygun bir programlama dili seçilir. Programı Sınama

4 Algoritma Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak i fade edilmesi biçiminde tanımlanabilir. 4

5 Algoritma Nedir? Algoritma, bir sorunun çözümüne gidebilmek için tasarlanan yollar,yöntemlerdir. Program geliştirme sürecinde işlem veya işlemlerin hangi sırada ve düzende gerçekleşeceğini belirleyen planların yapılması gerekir. Algoritma doğru bir şekilde oluşturulduktan sonra istenen programlama dili ile kodlama yapılabilir.

6 Algoritma Adım 1- Başla Adım 2- Alacağın Laptop’ın özelliklerini belirle Adım 3- Bu özellikleri taşıyan en performanslı marka ve modeli belirle Adım 4- Bu marka modelin en ucuz satıldığı firmayı araştır Adım 5- Firmadan siparişi ver Adım 6- Ödemeyi yap

7 Algoritma Adım 1- Başla Adım 2- Tencereye suyu koy Adım 3- Tencereyi ocağın üstüne yerleştir Adım 4- Tencerenin altını hızlıya aç Adım 5- Tencereye tuz ekle Adım 6- Su kaynadıktan sonra makarnayı ekle Adım 7- Ateşin yavaşa al Adım 8- Makarna yumuşadıktan sonra tencereyi indir

8 88 ALGORİTMA VE AKIŞ ŞEMASI: TEMEL KAVRAMLAR Algoritmada kullanılan bazı tanım ve kurallar vardır. Şimdi bu tanım ve kuralları inceleyelim Değişken Kavramı: Farklı zamanlarda farklı değerler alabilen bilgi sahalarına verilen sembolik adlardır. Bilgisayar işlem yaparken RAM belleği(geçici bellek) kullanır. İşte program yazılırken programcının Ram belleği kullanmasını sağlayan değişkenlerdir. Değişkenler Ram bellekte tahsis edilmiş odacıklar olarak düşünülebilir. Yani bir değişken tanımlandığında ram bellekte bir odacık (bir bölüm) açılır ve bu bölüme değişken ismiyle ulaşılır. Program içinde kullanılacak olan değişkenler problemin tanımı ve girdi-çıktı belirleme aşamalarında belirlenmelidir.

9 99 Örnek bir Algoritma İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması. Algoritma: A1 :Birinci sayıyı gir A2 :İkinci sayıyı gir A3 :İki sayının toplamını yap A4 :Toplamın değerini yaz A5 :Bitir.

10 Aktarma Deyimi: Aktarma deyimi yada operatörü değişkenlere değer aktarmak için kullanılır. A=5 yada A=A+1 şeklindeki bir yazılımda “=” sembolü aktarma deyimi adını alır. Aktarma deyiminin sağ tarafındaki değer yada matematiksel ifadenin sonucu, sol tarafındaki değişkene aktarılır. Aktarma yapılırken değişkenin aldığı bir önceki değer kaybolur. Bu işlem matematiksel mantıkla karıştırılmamalıdır. Matematikte A=A+1 yanlış olduğu halde, bilgisayar mantığında doğrudur. ALGORİTMA VE AKIŞ ŞEMASI: TEMEL KAVRAMLAR

11 11 Örnek : Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması Toplam adı için T Ortalama adı için Ort Girilen sayılar için X Arttırma için Sayac kullanılırsa Algoritma: A1 :T = 0, Sayac ¬ 0 A2 :X’i gir A3 :T= T+X A4 : Sayac = Sayac +1 A5 :Eğer Sayac <5 ise A2’ye git A6 :Ort= Top/5 A7 :T ve Ort değerlerini yaz A8 :Bitir

12 12 Örnek : Verilen bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması Sayının faktöriyeli :F Faktöriyel degişkeni :X Faktöriyeli hesaplanacak sayı :Y Algoritma: A1 :F=1, X= 0 A2 :Y’i gir A3 :Y<0 ise 2. adımı tekrarla A4 :X= X+1 A5 :F= F*X A6 :X

13 Örnek : Dışarıdan girilen iki sayının toplamını bulan programın algoritması aşağıdaki gibi kurulur: Algoritma: A1 : Başla A2 : A değerini gir A3 : B değerini gir A4 : C= A+B A5 : C' yi ekrana yaz A6 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

14 Örnek : Dışarıdan girilen 3 sayıdan en büyüğünü bulan algoritmayı kurunuz. Algoritma: A1 : Başla A2 : A, B ve C sayılarını dışarıdan gir A3 : enBuyuk=A A4 : Eğer enBuyuk

15 Örnek: 0’dan 100’e kadar olan sayma sayılarının kümülatif toplamını ekrana yazdıran algoritmayı geliştiriniz. 1.A1 : Başla 2.A2 : toplam=0;sayac=1 baslangıç değerlerini ata 3.A3 : Eğer sayac=100 ise 6. adıma git 4.A4 : toplam=toplam+sayac 5.A5 : sayac=sayac+1 yap ve 3. Adıma geri dön 6.A6 : toplam’ı ekrana yaz 7.A7 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

16 16 Akış Şemaları Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı veya blok diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler. Akış diyagramlarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir.

17 17 SimgeSimgenin Adı ve Anlamı Elips Akış diyagramının başlangıç ve bitiş yerlerini gösterir. Başlangıç simgesinden çıkış oku vardır. Bitiş simgesinde giriş oku vardır. Paralel Kenar: Programa veri girişi ve programdan elde edilen sonuçların çıkış işlemlerini gösterir. Dikdörtgen Aritmetik işlemler ve değişik atama işlemlerinin temsil edilmesi için kullanılır. Eşkenar Dörtgen Bir karar verme işlemini temsil eder. Altıgen Program içinde belirli blokların ard arda tekrar edileceğini gösterir. Oklar Diyagramın akış yönünü,yani her hangi bir adımdaki işlem tamamlandıktan sonra hangi adıma gidileceğini gösterir. Programa ait sonuçların ekrana yazdırılması

18 18 Akış Şemaları (Karar Verme Yapıları) İŞLEM c<2 DOĞRU

19 19 Akış Şemaları (Tekrarlı Yapı)

20 20 İki sayının toplamını ve ortalamasını yapan bilgisayar programının akış diyagramını çiziniz. Ortalama, Toplam

21 21 1’den 100’e kadar olan sayıların toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz. Ortalama, Toplam

22 22 A²+Bx+C=0 şeklinde verilen 2. derece denklemin köklerini bulan programın akış diyagramını Kökler Sanal X1,X2

23 MAX  A STOP YN Başla A,B değerini giriniz MAX  B A>=B MAX ‘ı ekrana yaz

24 24 Başla Notu giriniz Notu<=50 evet hayır bütünleme Notu<=70 evet hayır orta Notu<=80 iyi Bitir evet

25 25 1’ den 100’e kadar sayıların karelerini, kareköklerini, küplerini, küpköklerini toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz Ortalama, Toplam

26 26 10 tane N sayısının faktöriyelini hesaplayan programın akış diyagramını çiziniz. 0 Faktör

27 27 Örnek 12: p sayısının formülü olduğuna göre serinin paydasındaki ifade 100 oluncaya kadar pi sayısını hesaplayan bilgisayar programının akış diyagramını çiziniz. Pi

28 28 Programlama Dillerinin Seviyelerine Göre Sınıflandırılması Önce seviye kavramının ne anlama geldiğini açıklamak gerekmektedir. Seviye, bir programlama dilinin insan algılamasına olan yakınlığının bir ölçüsüdür. Yüksek seviyeli diller insan algılayışına daha yakın, alçak seviyeli diller de bilgisayarın doğal çalışmasına daha yakın olan dillerdir. Dillerdeki seviye yükseldikçe programcının işi de kolaylaşır. Öyle ki, çok yüksek seviyeli programlama dillerinde artık bir işin nasıl yapılacağına ilişkin değil, ne yapılacağına ilişkin komutlar bulunur. Seviyenin yükselmesi programcıya kolaylık sağlamakla birlikte genel olarak verimliliği ve esnekliği de azaltır.

29 29 Çok Yüksek Seviyeli Programlama Dilleri ya da Görsel Diller (FOXPRO, PARADOX, ACCESS.., VISUAL BASIC, IV.KUŞAK DlLLER) Yüksek Seviyeli Programlama Dilleri (PASCAL, COBOL, FORTRAN, BASIC,...) Orta Seviyeli Programlama Dilleri (C) Alçak Seviyeli Programlama Dilleri (Sembolik Makine Dilleri)

30 30 C NASIL BİR DİL?.. Orta seviyeli bir dildir. Yazılan C kodu ile makina kodu arasında bağlantı kolaylıkla kurulabilir. Sistem programlama dilidir. Bugün işletim sistemleri, derleyiciler, editörler gibi sistem programlarının hemen hepsi yoğun olarak C kodu içermektedir. Ancak sistem programlamanın dışında da birçok uygulamada C verimli olarak kulla­nılabilir. Algoritmik bir dildir. Yalnızca dilin sintaks ve semantik yapısını bilmek yet­mez. Problemleri çözebilecek bir algoritma bilgisine de ihtiyaç duyulur. Diğer diller arasında taşınabilirliği en fazla olanlardan biridir. İfade gücü yüksek ve okunabilirlik özelliği kuvvetli bir dildir. Çok esnektir. Bu yüzden programcının hata yapmayacak bir bilgiye ve deneyime sahip olması gerekir. Atomik bir dildir. Cde altprogramlama tekniği ileri düzeyde kullanılmakta­dır. Güçlü bir dildir. Tasarım özellikleri çok iyidir. Cye ilişkin yapıların ve ope­ratörlerin bir kısmı daha sonra diğer diller tarafından da benimsenmiştir. Verimli bir dildir. C programları seviyesi dolayısıyla daha hızlı çalışır. Doğal bir dildir. C bilgisayar sisteminin çalışma biçimiyle uyum içindedir. C++ ile nesne yönelimlilik özelliğine de sahip olmuştur.

31 31 PROGRAMIN ÇALIŞMASI source ---  compiler -----> object -----> link kaynak derleyeci amaç bağlama kaynak kod : C dili ile yazılmış olan program. derleyeci : Kaynak kodu makina koduna çevirir amaç kodu : Kaynak kodun makina dilindeki karşılığı bağlama : Birden fazla amaç kodu dosyasının tek dosyada birleştirilmesi

32 32 İLK PROGRAM #include main() { printf("Bu bir satirlik yazidir."); }

33 33 VERİ TİPLERİ Int Tip Integer = Tamsayı Tamsayıları içerir. Bellekte 2 Byte tutar. 5, -19, gibi Minimum : = Maksimum : = Long tip Uzun tamsayı. Bellekte 4Byte tutar. Minimum :-2,147,483,648. Maksimum :2,147,483,647

34 34 VERİ TİPLERİ Gerçel Tipler (Float, Double) Gerçel sayıları içerirler. float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır. double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet basamaktır. NOT: Bilimsel gösterim biçimi 2.5*10 3 = 2.5E3 2.5*10 -3 = 2.5E-3

35 35 VERİ TİPLERİ Char Tip Char : Karakter : Alfanumerik karakterleri içerir. '5', '*', 'K‘ gibi

36 36 VERİ TİPLERİ TipAralık Uzunluk (Byte ) unsigned char char unsigned int int unsigned long long float double long double , , , ,294,967,295 -2,147,483, ,147,483, * (10**-38) * (10**+38) 1.7 * (10**-308) * (10**+308) 3.4 * (10**-4932) * (10**+4932)

37 37 Belirleyiciler (Identifier) Bileşenlere isim verme Kısıtlamalar İlk karakteri rakam olamaz Sadece harfler, rakamlar ve _ (underscore) karakterinin birleşiminden oluşabilir. C diline ait saklı (reserved) sözcükler kullanılamaz. En fazla 31 karakter olabilir. Küçük - büyük harf ayırımı vardır.

38 38 Matematiksel ifadeler % tamsayı bölme sonucundaki kalanı verir (modulus) 7.0/ 2 ---> 3.5 (nokta sayının gerçel yorumlanmasını sağlar) 7 / 2 ---> 3 (sayılar int kabul edilip sonuçta int tipine dönüştürülür) 7 % 2 ---> 1 2 % 7 ---> 2 2 / 7 ---> 0 Matematiksel ifadeler hesaplanırken izlenen adımlar: 1. Önce parantez içindeki ifadeler hesaplanır. İçiçe parantezler var ise hesaplamaya en içteki parantezden başlanır. 2. ilk önce *, / ve % işlemleri daha sonra + ve - işlemleri yapılır. Öncelik sırası aynı olan işlemlerde hesaplama soldan sağa doğru yapılır

39 39 Bir C Programının Genel Yapısı başlık dosyaları: Kullanılan deyimler ile ilgili main() { sabitler ;sabitlerin tanımlama bölümü değişkenler; değişkenleri tanımlama bölümü deyimler;Program gövdesi }

40 40 printf Program içinde istenen değerleri çıktı birimlerine göndermek için kullanılır. Normal kullanımında çıktı birimi olarak ekran kabul edilir. Kullanım biçimi: printf( kontrol, ) ile belirtilen bilgiye göre parametreleri yazar. Kontrol metini iki kısımdan oluşur. sıradan karakterler: doğrudan yazılırlar. dönüşüm/biçim belirleyici karakterler: Değerlerin nasıl yazılacağı bildirilir. printf(" sonuç = %d", k);

41 41 DÖNÜŞ KARAKTERLERİ %d : decimal (integer) % f : float/double sayıyı mmm.nnnnn biçiminde yaz % u : unsigned decimal % c : char (tek karakter) % s : string % e : float/double sayıyı bilimsel gösterimde yaz % ld : long integer % lu : unsigned long integer % Le,Lf : long double ESC dizileri : \n : satır başı, \a : zil, \t : tab, \b : bir karakter geri

42 42 ÖRNEKLER i = 5 ; printf("%d",i) ; 5 printf("‘Sayı=%d",i) ; Sayı=5 printf("i=\n") ; i= printf("%d",i) ; 5 alt satıra geçer printf('i=%d\n",i) ; i=5 alt satıra geçer printf("%d %d",i, 5*i); 5 25

43 43 #include main() { printf("Bu bir satirlik yazidir.\n"); printf("Bu bir baska "); printf(" satirdir.\n"); printf("Bu ucuncu satirdir.\n"); }

44 44 CONST (sabit) : Değeri programın çalışması boyunca değiştirilemez. Kullanım biçimi const tip Belirleyici=değeri; const float PI=3.14; Tip belirtilmez ise tamsayı kabul edilir. DEĞİŞKENLER Değeri programın çalışması boyunca değiştirilekir. Kullanım biçimi: Tip Belirleyici [,Belirleyici] ; int i; float alan; 44

45 45 Örnek : Yarıçapı belli dairenin alanını hesaplayan programı yazınız. (ilk yazılan program) #include main() { const float PI=3.14; float r, alan; r = 7; alan = PI*r*r; printf(“ Dairenin Alan ı = %f”, alan); } 45

46 46 main() { int index; index = 13; printf("Indexin degeri simdi %d\n",index); index = 27; printf("Indexin degeri simdi %d\n",index); index = 10; printf("Indexin degeri simdi %d\n",index); } 46

47 47 Klavyeden üç kenar uzunluğu girilen üçgenin çeşidini bulan programın akış şeması

48 48 BILGI SATIRLARI NASIL EKLENIR /* Bu satiri, derleyici kullanmaz */ /* arası derleyici için anlamsızdır*/

49 49 Biçimli yazdırma % karakteri ile dönüşüm karakteri arasına aşağıdaki karakterler de kullanılabilir. %m.n f m : yazılacak değer için ayırılan alan n : ondalık değerin kaç karekteri yazılacağı x = ; printf("%7.2f",x) ; # x = ; printf("%6.3f",x) ; printf("%6.1f",x) ; ##

50 50 scanf İşlevi Klavyeden veri okumak için kullanılır. Yapı olarak printf işlevi ile hemen hemen aynıdır. Kullanım biçimi: scanf( format, &değişken) Girilen değerler, belirtilen biçimlere göre değişkenlere aktarılır. Değişkenler işaretçi tipinde olmalıdır. Yani parametre olarak değişkenin adresi gönderilmelidir. int i; scanf (“%d”, &i); float a,b,c; scanf("%f %f %f ", &a, &b, &c); 50

51 51 #include main() { float vize, final, ort; printf(“ \n Vize notunu giriniz “); scanf(“%f”, &vize); printf(“ \n Final notunu giriniz “); scanf(“%f”, &final); ort = vize * final * 0.6; if (ort>=50 && final>=50) {printf(“\n Gectiniz”); printf(“ \n Öğrencinin Ortalaması = % f”, ort);} else printf(“\n Bütünleme”); getch(); } 51

52 52 Mantıksal ifadeler İlişkisel işleçler(operatör) : iki değer arasındaki ilişkiyi test etmek için kullanılır. işleçanlamı >büyük >=büyük - eşit ==eşit

53 53 Mantıksal işleçler İki mantıksal ifade arasındaki ilişki üzerindeki ilişkide kullanılır. ! DEĞİL (NOT) && VE (AND) || VEYA (OR) (X>0) && (X>Y) (X>0) || (Y>0) 53

54 54 İfadelerde işleçlerin yürütülme sırası işleçÖnceliği ( )en yüksek (ilk yürütülür) ! *, /, % +, - =, > ==, != &&, || =en düşük (son yürütülür) 54

55 55 Unary Gösterim a+=b a=a+b a-=b a=a-b a*=b a=a*b a/=b a=a/b a%=b a=a%b a++ a=a+1 a-- a=a-1 55

56 56 #include main() { int toplam; float kilo; char harf; double avagadro; toplam = 30; /* integer değer atama*/ kilo = 68.5; /* float değer atama*/ harf = 'A'; /* harf değeri atama*/ avagadro =6.02E23; /* double değer atama*/ printf("toplam sayısının değeri= %d\n", toplam ); printf("kilo değişkeninin değeri= %6.1f\n", kilo ); printf("harf değişkenin değeri= %c\n", harf); printf("avagadro sayısının değeri = %e\n", avagadro ); getch(); } 56

57 57 #include main() { float fiyat,kdv; float kdvli; printf(“ \n kdv oranını giriniz “); scanf(“%f”, &kdv); printf(“ \n Ürün fiyatını giriniz “); scanf(“%f”, &fiyat); kdvli= fiyat+(kdv*fiyat)/100; printf(“ \n Ürünün Kdv li fiyatı = % f”, kdvli); getch(); } 57

58 58 #include main() { float fahrenhayt, derece; printf(“\n sıcaklığı fahrenhayt cinsinden giriniz”); scanf(“%f”, &fahrenhayt); derece=(fahrenhayt-32)*5/9; printf(“\n Sıcaklık= %f derecedir”, derece); getch(); } 58

59 59 /* mod operatoru ile girilen saniyeyi dakikaya ceviriyor */ #include main() { int saniye,dakika,kalan; printf(" zamani saniye olarak giriniz \n"); scanf("%d",&saniye); dakika=saniye/60; /* tamsayi bolmesi yapiyor*/ kalan=saniye % 60; /* mod aliyor */ printf("%d saniye, %d dakika ve %d saniye yapiyor", saniye,dakika,kalan); getch(); } 59

60 60 #include main() {int r1,r2; float toplam; printf( “ \n Birinci direnc degerini giriniz “ ); scanf( “ %d ”, &r1); printf( “ \n İkinci direnc degerini giriniz “ ); scanf( “ %d ”, &r2); toplam=(r1*r2)/(r1+r2); printf(“\n Toplam direnç değeri=%f”,toplam); getch();} Klavyeden girilen paralel iki direncin, toplam direnc değerini hesaplayan programı yapınız

61 61 if-then-else Deyimi Birkaç seçenekten birini seçmek veya bir deyimin bir koşula bağlı olarak işlemek için kulanılır. if (mantıksal ifade) { blok_doğru;} else { blok_yanlış;} Mantıksal ifade doğru ise blok_doğru, yanlış ise else sözcüğünden sonraki blok_yanlış yürütülür. else kısmı seçimlidir, gerekmiyorsa kullanılmayabilir. 61

62 62 Girilen sayının tek/çift olduğunu yazan program #include main() { int i; scanf("%d", &i); if ( i % 2 == 1) printf("Tek"); else printf("Çift"); getch(); } 62

63 63 #include #include /* sqrt işlevi için */ #include main() { float a, b, c,delta, x1, x2; printf("a değerini giriniz \n "); scanf("%f",&a); printf(“b değerini giriniz \n "); scanf("%f",&b); printf(“c değerini giriniz \n "); scanf("%f",&c); delta = b * b - 4 * a * c; if (delta<0) printf("Gerçel kök yoktur.\n"); else { x1 = (-b + sqrt(delta)) / (2 * a); x2 = (-b - sqrt(delta)) / (2 * a); printf("Birinci kök = %f\n", x1); printf("ikinci kök = %f\n", x2); } getch(); } 63

64 64 If /Else if deyimi if (mantıksal_ifade) { ifade bloğu;} else if (mantıksal_ifade) { ifade bloğu;} else if (mantıksal_ifade) { ifade bloğu;} else { ifade bloğu;} 64

65 65 Vergi iadesini hesaplayan programı yazınız. Fatura toplamı Fatura toplamı 0-60 :ise %10 kdv, Fatura toplamı : %8 kdv, Fatura toplamı >200 : %5 kdv main() { float fat_top, vergi_iade; printf("Fatura toplamlarını giriniz "); scanf ("%f", &fat_top); if (fat_top < 60) vergi_iade = fat_top * 0.10; else if (fat_top < 200) vergi_iade = fat_top* 0.08; else vergi_iade = fat_top * 0.05; printf("Ödenecek vergi iadesi = %f\n", vergi_iade); getch(); } 65

66 66 #include main() { int sayi,rasgele; float ortalama; randomize();/* Her seferinde farkli bir deger tutmasi icin*/ rasgele=random(100); printf("\n Tahmin icin sayi giriniz..");scanf("%d",&sayi); if (sayi>rasgele) printf("\n Girilen sayi büyük...."); else if (sayi

67 67 switch Deyimi switch(değisken) { case seçenek1 : Deyim; break; case seçenek2 : Deyim; break; : default : Deyim; } Değişkenin 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. 67

68 68 switch Deyimi Switch’deki Değişken integer veya char tipinde olmalıdır Değişken ile switch’deki 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. 68

69 69 #include main() { char islem; int s1, s2, s3; printf(“ \n işlem için + - * veya/ giriniz "); scanf("%c”, &islem); printf(“\n İki sayı giriniz” ); scanf(“%d %d”,&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); getch(); } 69

70 70 #include main() { 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; } getch();} 70

71 71 100’lük not sistemine göre klavyeden okutulan notların harflik sisteme göre karşılığını ekrana yazdıran programı yazınız. A: B: C: D:

72 72 #include main() {int notu; printf("\n notunuzu giriniz"); scanf("%d",¬u); if (notu>=0 && notu<50) printf("\notunuz D"); else if (notu>=50 && notu<65) printf("\notunuz C"); else if (notu>=65 && notu<85) printf("\notunuz B"); else if(notu>=85 && notu<=100) printf("\notunuz A"); else printf("\lutfen arasi deger giriniz"); getch(); }

73 73 DÖNGÜLER( while deyimi) while (şart ifadesi) { İfade bloğu; } Şart ifadesi DOĞRU olduğu sürece blok tekrar takrar icra edilir. Şart ifadesi YANLIŞ olduğu zaman döngünün dışına çıkılır. Döngüden etkilenecek blok, {...} işaretleri arasına alınır.

74 74 #include main() {int n,i=1,toplam=0; clrscr(); printf(“\n Bir sayi giriniz”); while(i<=10) { toplam=toplam+i; i++; } printf(“\n 1’den 10’a kadar olan sayıların toplamı=%d”,toplam); getch(); } Adımlaritoplam İlk değer adım2 1 2.adım3 3 3.adım46 4.adım510 5.adım615 6.adım721 7.adım828 8.adım936 9.adım adım 11 55

75 75 #include main() { int i=0; clrscr(); while(i<=100) { if(i%8 ==0) printf(“%4d”,i); i++; } getch(); }

76 76 #include main() {int say=1; int a, faktoriyel=1; printf(“\n faktoriyeli alınacak sayıyı giriniz”); scanf(“%d”,&a); while(a>=say) { faktoriyel=faktoriyel*say; say++; } printf(“\n %d nin faktoriyeli=%d”,a,faktoriyel); getch(); }

77 77 Klavyeden girilen sayıları okuyan ve sayıların toplamı 21'den büyük veya eşit olduğu zaman duran program. #include main() { int i, toplam= 0; while (toplam<21) { scanf("%d",&i); toplam=toplam+i; } printf(“Sayıların Toplam = %d",toplam); getch(); }

78 yılı itibarı ile ülke nüfusu 60 milyondur. Yıllık nüfüs artış oranı %2.3 tür. Sonraki 10 yılda ülke nüfusunu yıllara göre listeleyen program. #include main() { int i; /* sayac */ int yil; /* yillar */ float nufus; /* nufus miktari */ yil=2003; nufus = ; printf("%d …………. %f\n",yil,nufus); i = 1; while (i < 11) { nufus = nufus +( nufus*0.023); printf("%d………%f\n",yil + i,nufus); i = i + 1; } getch(); }

79 79 #include main() {float r1; float toplam; toplam=0; printf("\n direnc degerini giriniz..."); scanf("%f", &r1); while(r1!=0) { toplam=toplam+(1/r1); printf("\n direnc degerini giriniz..."); scanf("%f", &r1); } toplam=1/toplam; printf("\n Toplam direnc degeri=%f",toplam); getch();}

80 80 #include main() {float a; int say=0; float toplam,ortalama; toplam=0; printf("\n Sayi giriniz..."); scanf("%f", &a); while(a!=0) { toplam=toplam+a; say++; printf("\ n Sayi giriniz...”); scanf("%f", &a); } ortalama=toplam/say; printf("\n Ortalama degeri=%f",ortalama); getch();}

81 81 #include main() { float a; float toplam; toplam=0; printf("\n Sayi giriniz..."); scanf("%f", &a); while(a!=0) { toplam=toplam+a; printf("\ n Sayi giriniz...”); scanf("%f", &a); } printf("\n Toplama sonucu=%f",toplam); getch();}

82 82 #include main() {float sayi; int sayac1=0,sayac2=0; float toplam1=0,toplam2=0; printf("\n Sayı giriniz..."); scanf("%f", &sayi); while(sayi!=0) {if (sayi>0) { toplam1=toplam1+sayi; sayac1++;} else {toplam2=toplam2+sayi; sayac2++;} printf("\n sayi giriniz..."); scanf("%f", &sayi); } printf("\n Pozitif ortalama degeri=%f",toplam1/sayac1); printf("\n Negatif ortalama degeri=%f",toplam2/sayac2); getch();}

83 #include main() { int sayi,rasgele,i=0; randomize();/* Her seferinde farkli bir deger tutmasi icin*/ rasgele=random(10); while(i<4) { i++; printf("\n Tahmin icin sayi giriniz..");scanf("%d",&sayi); if (sayi>rasgele) printf("\n Girilen sayi buyuk...."); else if (sayi

84 #include main() { clrscr(); int a, b, c,say; a=1; b=1; say=0; while(say<15) { printf("%4d",b); c=a+b; a=b; b=c; say++; } getch(); }

85 #include main() {float a=0,say; float toplam= 1,faktoriyel; while(a<=10) { say=1;a++;faktoriyel=1; while(a>=say) { faktoriyel=faktoriyel*say; say++; } toplam=toplam+1/faktoriyel; } printf("\n sonuc=%f",toplam); getch(); } 85

86 86 DÖNGÜLER(do- while deyimi) do { İfade bloğu; } while (şart ifadesi) Mantıksal ifade doğru olduğu sürece döngü tekrar edilir. Yanlış olduğunda while sözcüğünden sonraki deyim yürütülür. do.. while döngüsünde kontrol sonda yapıldığı için döngü en az bir kez çalışır.

87 87 #include main() { int i; i=0; do { printf("i nin simdiki degeri= %d\n",i); i = i + 1; } while (i<5); }

88 88 #include main () { int x; do { printf( "Bir sayi giriniz, ***Durdurmak için sıfır** “); scanf(“%d”, &x); printf (“\Girdiginiz sayi=%d”,x); } while (x != 0); getch(); }

89 #include main () { int x; int say=0; do { printf( "Bir sayi giriniz"); scanf("%d", &x); if(x % 4==0) say++; } while (x != 0); printf("Dorde bolunen sayiların adedi=%d",say-1); getch(); }

90 90 #include main() { int sayi,toplam,say; toplam=0;say=0; float ortalama; do{ say++; say++; printf("\n Bir sayi giriniz..."); printf("\n Bir sayi giriniz..."); scanf("%d", &sayi); scanf("%d", &sayi); toplam=toplam+sayi; toplam=toplam+sayi; } while(sayi!= -1 ); } while(sayi!= -1 ); ortalama= ( toplam +1) /(say-1); printf("\n ortlamasi= %f",ortalama); getch();}

91 91 #include main() { int sayi=0; int adet=0; do{ sayi++; sayi++; if (sayi%8==0) if (sayi%8==0) { printf("\n %d",sayi); { printf("\n %d",sayi); adet++;} adet++;} } while(sayi<100); } while(sayi<100); printf(“Sayilarin adedi=%d”,adet); printf(“Sayilarin adedi=%d”,adet); getch();}

92 92 DÖNGÜLER(for deyimi) for (ilk değer; koşul; artış) { blok; } İlk değer ifadesinden döngü başlar ve koşul ifadesine bakılır. Koşul ifadesi doğru ise blok icra edilir. Daha sonra artış icra edilerek tekrar şart ifadesine bakılır. Eğer şart ifadesi doğru ise tekrar blok ve artış icra edilir. Şart ifadesi yanlış sonuç verene kadar bu şekilde devam edilir Döngünün her adımında i++(i’yi bir artır) yürütülür (artış miktarı). for (i = 1; i < 5; i++) printf("%d ",i);

93 93 1’den 10’a kadar olan tamsayıları ekrana yazdıran program: #include main() {int i; clrscr(); for(i=1;i<=10;i++) { printf(“%d\n”,i);} getch(); }

94 #include main() { printf(“\Ay için 1-12 arası değer giriniz”); scanf("%d", &ay); switch (ay) { case 1: printf(“\n Ocak);break; case 2: printf(“\n Şubat);break; case 3: printf(“\n Mart"); break; case 4:printf(“\n Nisan"); break; case 5:printf(“\n Mayıs "); break; case 6: printf(“\n Haziran"); break; case 7: printf(“\n Temmuz "); break; case 8: printf(“\n Ağustos "); break; case 9: printf(“\n Eylül "); break; case 10: printf(“\n Ekim "); break; case 11: printf(“\n Kasım "); break; case 12: printf(“\n Aralık "); break; default: printf(“\n 1-12 arası değer giriniz "); } getch();} 94

95 #include main() { int sayi,rasgele,i; randomize();/* Her seferinde farkli bir deger tutmasi icin*/ rasgele=random(1 1 ); for (i=1;i<=4;i++) { printf("\n Tahmin icin sayi giriniz..");scanf("%d",&sayi); if (sayi>rasgele) printf("\n Girilen sayi buyuk...."); else if (sayi


"11 C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN. 22 PROGRAM - ALGORİTMA –AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak." indir ppt

Benzer bir sunumlar


Google Reklamları