6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu
ALGORİTMA ÖRNEK1: İki sayının toplamı probleminin algoritmasını yazınız. A0: Başla A1: Birinci sayıyı (SAYI1) gir. A2: İkinci sayıyı (SAYI2) gir. A3: Sayıları topla, TOPLAM SAYI1 + SAYI2 A4: TOPLAM ı yaz. A5: Dur. ÖRNEK2 : Verilen 3 adet sayının ortalamasını bulan programın algoritmasını yazınız. A0: Başla A1: Birinci sayıyı (S1) gir. A2: İkinci sayıyı (S2) gir. A3: Üçüncü sayıyı (S3) gir. A4: Sayıları topla, TOPLAM S1+S2+S3 A5: ORT TOPLAM/3 A6: ORT u yaz. A7: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK1 : İki sayının toplamı probleminin algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Birinci sayıyı (S1) gir A2: İkinci sayıyı (S2) gir A3: Sayıları topla, TOPLAM S1 + S2 A4: TOPLAM ı yaz. A5: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK2 : Verilen 3 adet sayının ortalamasını bulan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Birinci sayıyı (S1) gir. A2: İkinci sayıyı (S2) gir. A3: İkinci sayıyı (S3) gir. A4: Sayıları topla, TOPLAM S1+S2+S3 A5: ORT TOPLAM/3 A6: ORT u yaz. A7: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK3 : Yarıçapı verilen bir dairenin alanını ve çevresini hesaplayan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Yarıçapı (R) gir A2: ALAN 3.14*R*R A3: ÇEVRE 2*3.14*R A4: ALANI ı yaz. A5: ÇEVRE yi yaz. A6: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK4 : Kütlesi, hızı ve yerden yüksekliği girilen cismin potansiyel ve kinetik enerjisini hesaplayan programın algoritmasını yazınız ve akış diyagramını çiziniz. E p mgh Ek 1 mv 2 2 A0: Başla A1: Kütle (m), hız (v) ve yükseklik (h) gir. A2: EP m*9.81*h A3: EK 0.5*m*v*v A4: EP ve EK yı yaz. A5: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK5 : Katsayıları girilen birinci dereceden denklemin kökünü bulan programın algoritmasını yazınız, akış diyagramını çiziniz. Ax B C Ax C B C B x A A0: Başla A1: Katsayıları gir (A,B,C) A2: x (C-B)/A A3: x i yaz. A4: Dur.
ÖDEV ÖDEV 1 : İki kenar uzunluğu ve aradaki açısı girilen üçgenin diğer kenar uzunluğunu hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz. ÖDEV 2 : Yarıçapı girilen kürenin alanını ve hacmini hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz. ÖDEV 3 : Bir kenar uzunluğu ve o kenara ait yüksekliği girilen üçgenin alanını hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK1 :Katsayıları verilen 2. dereceden bir denklemin köklerini hesaplayan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Katsayıları (A,B,C) gir. A2: D B*B-4*A*C A3: Eğer D<0 ise KÖK YOK yaz. A4: Eğer D=0 ise, X -B/(2*A), X i yaz. A5: Eğer D>0 ise X1 (-B+ D)/(2*A), X2 (-B- D)/(2*A), X1 ve X2 yi yaz. A6: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK2 :Verilen 8 adet sayının ortalamasını bulan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: TOPLAM 0 A2: SAYAÇ 0 A3: X i gir. A4: SAYAÇ SAYAÇ + 1 A5: TOPLAM TOPLAM + X A6: Eğer SAYAÇ<8 ise A3 e git. A7: ORT TOPLAM/8 A8: ORT u yaz. A9: Dur. Sayaç ve Döngü : SAYAÇ SAYAÇ + 1 Ardışık Toplama : TOPLAM TOPLAM + X
DÖNGÜ KAVRAMI Programlama dillerinde programı belirli bir satıra yönlendirmek tercih edilmez (örneğin: A3 e git). Tercih edilmez! A0: Başla A1: TOPLAM 0 A2: SAYAÇ 0 A3: X i gir. A4: SAYAÇ SAYAÇ + 1 A5: TOPLAM TOPLAM + X A6: Eğer SAYAÇ<8 ise A3 e git. A7: ORT TOPLAM/8 A8: ORT u yaz. A9: Dur. Tercih edilir. döngü değişkeni A0: Başla A1: TOPLAM 0 A2: Döngü başlangıcı, S 1,8 A3: X i gir. A4: TOPLAM TOPLAM + X A5: Döngü sonu A6: ORT TOPLAM/8 A7: ORT u yaz. A8: Dur.
DÖNGÜ KAVRAMI Tercih edilmez! Tercih edilir. TEST Veriler: 2,9,7,6,1,5,4,6 TOPLAM S X ORT 0 2 11 1 2 3 2 9 7 5 18 4 6 24 5 1 25 30 34 6 7 8 5 4 6 40
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK3 :Verilen N adet sayının içinden en büyüğünü bulan programın algoritmasını yazınız, akış diyagramını çiziniz. A0: Başla A1: EB -9999 A2: N i gir. A3: Döngü başlangıcı, I 1,N A4: X i gir. A5: Eğer X>EB ise EB X A6: Döngü sonu. A7: EB yi yaz. A8: Dur.
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK4 :Verilen N adet sayıdan kaç tanesinin 5 ten büyük, kaç tanesinin 5 ten küçük olduğunu bulan programın algoritmasını yazınız, akış diyagramını çiziniz. A0: Başla A1: B 0, K 0 A2: N i gir. A3: Döngü başlangıcı, I 1,N A4: X i gir. A5: Eğer X>5 ise B B+1 A6: Eğer X<5 ise K K+1 A7: Döngü sonu. A8: B ve K yı yaz. A9: Dur.
ÖDEVLER 1. Verilen N adet sayının içinden en küçüğünü bulan programın algoritmasını yazınız, akış diyagramını çiziniz. 2. Verilen N adet sayının ortalamasını bulan programın algoritmasını yazınız ve akış diyagramını çiziniz 3. Verilen N adet sayıdan pozitif, negatif ve sıfır olanların sayısını bulan programın algoritmasını yazınız ve akış diyagramını çiziniz. 4. Bir dersten 2 ara sınav ve 1 final sınavı yapılmaktadır. Bir öğrenci için girilen notlara göre; - eğer final notu < 50 ise başarısız yazan, - eğer final 50 ise ara sınav ortalamasının %30 u ve final sınavının %70 inin toplamını başarı notu olarak hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz.
PROGRAMLAMAYA GİRİŞ
ÖRNEK: Klavyeden girilen herhangi bir N sayısının faktöriyelini bulan programın algoritmasını ve çalışmasını inceleyelim..
ÇÖZÜM:
PROGRAMLAMA DİLİ ELEMANLARI Değişkenler Noktalama işaretleri Sabitler Operatörler
Programlama Dili Elemanları Değişkenler; bellekte belli bir yer işgal eden ve içerisinde bir değeri tutan bellek alanlarıdır. Değişken Özellikleri İsim Tür Değer
DEĞİŞKEN İSİMLERİ İlk karakter harf olmalıdır. İlk karakterden sonra alt çizgi yada sayı kullanılabilir. Değişken isimlerinde Türkçe harfler bulunmamalıdır. Değişken isimlerinde boşluk bulunmamalıdır. C dili büyük-küçük harf duyarlı bir dildir. Özel karakterler kullanılmamalıdır. Boşluk, Virgül! Ünlem. Nokta ; Noktalı virgül : İki nokta Tırnak Çift tırnak Duvar ( Sol parantez ) Sağ parantez [ Sol köşeli parantez ] Sağ köşeli parantez { Sol küme } Sağ küme / Bölme (slaş) \ Ters bölme ~ Tilde + Artı - Eksi = Eşit < Küçük > Büyük # Diyez * Yıldız & Ve ^ Üst ok (karet)
DEĞİŞKEN İSİMLERİ Programın kullandığı isimler kullanılmamalıdır. asm auto break char const continue double else enum float for goto int interrupt long register return short static struct switch unsigned void while _cs _bp _sı _es _ax _bh
DEĞİŞKEN İSİMLERİ Program yazılırken yapılan tanımlamalar için isimler kullanılır. Örnek: maas=gunxyevmiye ifadesinde maas, gun ve yevmiye birer değişken ismidir. Değişken İsmi ogrenci_yasi Short 06_yili_ucreti Ayse?veli short ogrenci yasi Meriç Açıklama Değişken ismi sayı ile başlamaz Değişken ismi özel karakter içermez Değişken ismi özel amaçlı bir sözcük olamaz Değişken ismi boşluk içermez Değişken ismi Türkçe karakter içermez
VERİ TİPLERİ Tip Açıklama Boyut (Bit) int tamsayı 16 32 Aralık -32.768... 32.767-2.147.483.648. -2.147.483.647 float reel sayı 32 +-3.4E -38... +-3.4E 38 Yaklaşık 6 basamak duyarlı double Çift duyarlıklı reel sayı 64 +-1.7E-308...+-1.7E308 Yaklaşık 12 basamak duyarlı short int Kısa tamsayı 8-128...+127 char karakter 8 0...255 unsigned int İşaretsiz tamsayı 16 0...65.535 NOT:1) 8 Bit=1 Byte 2) Sayıların ondalık kısımları nokta ile ayrılır. 3) 3.4e-38=3.4x10-38
KAYNAKÇA: N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; 2009. Doç. Dr. Soner ÇELİKKOL, Programlamaya Giriş ve Algoritmalar, Murathan Yayınevi, TRABZON; 2009 Bu notlar hazırlanırken Filiz KÖSE, Yalçın ÇEBİ ve Özlem AKTAŞ ın internette paylaşıma açtığı notlardan faydalanılmıştır.
KAYNAKLAR Ders Sunuları: http://pozitron.sdu.edu.tr/dersnotlari http://sites.google.com/site/mfcaglar/ (geçmiş senenin notları) Kaynak Kitap: Algoritma ve Programlamaya Giriş, EBUBEKİR YAŞAR, Murathan Yayınevi
Teşekkür Ederim Sağlıklı ve mutlu bir hafta geçirmeniz temennisiyle, iyi çalışmalar dilerim EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu 5