BMT 101 Algoritma ve Programlama I 3. Hafta Yük. Müh. Köksal GÜNDOĞDU 1
Akış Diyagramları ve Sözde Kodlar Yük. Müh. Köksal GÜNDOĞDU 2
Sözde Kodlar (pseudo-code) Yük. Müh. Köksal GÜNDOĞDU 3
Sözde Kod Sözde Kod: Algoritma adımlarının programlama diline benzeyen bir şekilde ancak günlük dil ile anlatılmasıdır. Yapılacak eylemler günlük hayatta kullanılan sözcüklerle ifade edilir. Sözde kodlar; yapısı itibariyle kullanılacak olan programlama dilinin esnetilmiş halidir. Programlama dilindeki gibi katı kuralları ve kalıpları yoktur. Program yazılmadan önce algoritma oluşturulurken kullanılan dile bağlı olarak sözde kodlar tasarlanır. Yük. Müh. Köksal GÜNDOĞDU 4
Sözde Kod Örnek: Hastalandığımız zaman ne yapmalıyız? Bu durumun sözde kodu şu şekilde olmalıdır: Yük. Müh. Köksal GÜNDOĞDU 5
Sözde Kod Sözde kod: Sıcak Ihlamur iç. 3 saat bekle. Hala hasta mısın? Cevap evet ise medikoya git. Cevap hayır ise algoritmayı sonlandır. Yük. Müh. Köksal GÜNDOĞDU 6
Sözde Kod Başla Sıcak Ihlamur iç 3 saat bekle Hala hasta Hayır Evet Medikoya git Dur Yük. Müh. Köksal GÜNDOĞDU 7
Sözde Kod(Herhangi Bir Şarta Bağlı Aktiviteler) Herhangi bir şartın gerçekleşmesinden sonra oluşacak eylemler de kullanılan sözde kod yapısıdır. Bu yapıdaki benzer cümleler için sözde kod genellemesi; Örnek; «Yeşil ışık yanarsa karşıya geç, aksi takdirde geçme» Bu önermenin sözde kod ile ifade edilmesi şu şekildedir. Çözüm; Eğer (koşul) ise (eylem) Değilse (eylem) Eğer (yeşil ışık yanar) ise (karşıya geç) Değilse (geçme) Yük. Müh. Köksal GÜNDOĞDU 8
Sözde Kod(Herhangi Bir Şarta Bağlı Aktiviteler) Tüm programlama dilleri ingilizceyi esas aldıkları için sözde kodlar da İngilizce kelimelerden oluşmaktadır. Bu nedenden dolayı; EĞER yerine IF, İSE yerine THEN, DEĞİLSE yerine de ELSE kelimeleri tercih edilebilir. İf (koşul) then (eylem) Else (eylem) Yük. Müh. Köksal GÜNDOĞDU 9
Sözde Kod(Koşul Sürdükçe Devam Eden Aktiviteler) İstenilen koşulun sağlandığı sürece devam eden eylemleri kapsamaktadır. Genelleştirilmesi; sürece (koşul) yap (eylem) Bu eylemler koşul kontrolüne göre ikiye ayrılmaktadır. 1. Hava güzel olduğu sürece yürüyüş yap. sürece (hava güzel) yap (yürüyüş) İngilizcesi; While (koşul) do (eylem) Sürece yerine while, yap yerine do Yük. Müh. Köksal GÜNDOĞDU 10
Sözde Kod(Koşul Sürdükçe Devam Eden Aktiviteler) 2. Anlayıncaya kadar oku. Sözde kod yazılımı şu şekildedir; Tekrarla (oku) ta ki (anla) Genelleştirilmiş hali; Repeat (eylem) until (koşul) Yük. Müh. Köksal GÜNDOĞDU 11
Sözde Kod(Anlamlı Bir İsme Bir Değer Vermek) Çoğu zaman bazı sayısal değerlere ya da formüllere anlamlı ve açıklayıcı bir isim vermek gerekir. Örneğin; Bir malzemenin fiyatı; maliyet, kar ve vergi toplamlarıyla hesaplanır. Sözde kod oluşumu şu şekildedir; assign (toplam) value (maliyet+kar+vergi) Yük. Müh. Köksal GÜNDOĞDU 12
Sözde Kod NOT: Sözde kodlar bu örnekteki gibi kullanılabileceği gibi, daha çok sözde kod açıklamalarında gösterilen if, else, while yapılarıyla kullanımına daha çok rastlanmaktadır. Çünkü bu şekilde herhangi bir diline bağlı kalınmadan (C,C++,java vb) istenilen kod yapısının oluşturulmasını sağlamış olur. Bu şekilde sözde kodu yazılmış programın herhangi bir dilde yazılması çok daha basite indirgenmiş olur. Örnekte görüleceği gibi hiçbir noktalama işareti ve dil yazım kuralına dikkate edilmeden, sözde kod yazım dizilimi kullanılarak öğrencinin notuna göre geçtiğini kaldığını söyleyen programı oluşturduk. 1 2 3 4 İf (öğrencinin notu>60) then geçtiğini söyle. else kaldığını söyle. Yük. Müh. Köksal GÜNDOĞDU 13
Sözde Kod Örnek: Dik üçgenin alanını hesaplayan sözde kodu yazınız.? Çözüm: Üçgenin taban ve yükseklik değerlerini al alan=(1/2)*taban*yükseklik alan değerini çıktı olarak ver Yük. Müh. Köksal GÜNDOĞDU 14
Akış Diyagramları Yük. Müh. Köksal GÜNDOĞDU 15
Genel Kavramlar Akış Diyagramı: Bir algoritmanın özel geometrik şekillerle gösterimine akış diyagramı(flow chart) adı verilir. Akış diyagramı, problemin çözümü için yapılması gerekenlerin, başından sonuna kadar geometrik şekillerden oluşan semboller ile ifade edilerek, problemin görsel olarak çözümünün oluşturmasını sağlar. Yük. Müh. Köksal GÜNDOĞDU 16
Genel Kavramlar Her simge genel olarak yapılacak bir işi veya komutu gösterir. Akış diyagramlarını izlemek görsel olması sebebi ile algoritmadan daha kolaydır. Akış şemaları her biri farklı bir işlem adımını temsil eden şekillerin oklar ile birleştirilmesinden oluşur. Yük. Müh. Köksal GÜNDOĞDU 17
Akış Diyagramı Sembolleri Yük. Müh. Köksal GÜNDOĞDU 18
Akış Diyagramı Sembolleri Başla: Bir algoritmanın başladığı konumu göstermektedir. Tek çıkışlı bir şekildir. Başla Dur: Bir algoritmanın bittiği konumu göstermektedir. Tek girişli bir şekildir. Dur Yük. Müh. Köksal GÜNDOĞDU 19
Akış Diyagramı Sembolleri Giriş: Bilgisayara dışarıdan veri girişini temsil eder. Bu sembolün içine dışarıdan girilen bilgilerin aktarılacağı değişkenler yazılır. A,B,C Örnek: Klavyeden girilen değerlerin SAYI1 ve SAYI2 adlı iki değişkene okunması isteniyorsa; SAYI1 SAYI2 Yük. Müh. Köksal GÜNDOĞDU 20
Akış Diyagramı Sembolleri Çıkış: Ekran veya yazıcıya bilgi göndermeyi temsil eder. Değişkenin veya işlem sonuçlarının görüntülenmesini sağlar. Genellikle 1. kullanım yaygın olarak kullanılır. Örnek: «MERHABA DUNYA» YAZ Yük. Müh. Köksal GÜNDOĞDU 21
Akış Diyagramı Sembolleri İşlem: Bir algoritmada aritmetik işlem yapılmasını sağlayan şekildir. Bu dörtgen kutu içerisine yapılmak istenen işlem yazılır. Tek girişli ve tek çıkışlı bir şekildir. İŞLEM Örnek: TOPLAM=0, CARPİM=1 TOPLAM=CARPIM+5 Yük. Müh. Köksal GÜNDOĞDU 22
Akış Diyagramı Sembolleri Karşılaştırma (Sorgu): Bir algoritmada bir kararın verilmesini ve bu karara göre iki seçenekten birinin uygulanmasını sağlayan şekildir. burada eşkenar dörtgen içerisine kontrol edilecek mantıksal koşul yazılır. Program akışı sırasında koşulun doğru olması durumunda "Evet" yazılan kısma Yanlış olması durumunda "Hayır" yazılan kısma sapılır. Tek girişli ve çift çıkışlı bir şekildir. Örnek: SAYI<2 Mİ? Evet Hayır Yük. Müh. Köksal GÜNDOĞDU 23
Akış Diyagramı Sembolleri Bağlantı: Bir algoritmanın birden fazla alana yayılması durumunda bağlantı noktalarını gösteren şekildir. Yük. Müh. Köksal GÜNDOĞDU 24
Akış Diyagramı Sembolleri Akış Yönü: Bir işlem bittikten sonra akışın nereye yöneleceğini belirler. Bu zamana kadar öğrendiğimiz akış diyagramlarını bir örnek uygulamada inceleyelim. Yük. Müh. Köksal GÜNDOĞDU 25
Akış Diyagramı Sembolleri Örnek: Dışarıdan girilen iki sayıyı büyük, küçük veya eşit olup olmadıklarını karşılaştırarak sonuçları yazan programın akış diyagramını çiziniz. Yük. Müh. Köksal GÜNDOĞDU 26
Çözüm:. Akış Diyagramı Sembolleri Yük. Müh. Köksal GÜNDOĞDU 27
Akış Diyagramı Sembolleri Döngü: Bir işlemin belli bir sayıda veya belli bir koşul doğru olduğu sürece tekrar edilmesini sağlayan döngü komutunu gösteren şekildir. Bu döngüde altıgen içerisine ya koşul yada döngünün başlangıç, adım ve sonlanma değerlerini belirtebilirsiniz. Kontrol değişkeni = başlangıç değeri, bitiş değeri, adım I = 1, 20,3 Artan döngü J = 30, 4,-2 Azalan döngü Tek döngü k = 1, 99 1 er artan döngü I = 1, N, 1 işlem A Yük. Müh. Köksal GÜNDOĞDU 28
Akış Diyagramı Sembolleri Örnek: Birden 10 a kadar çift sayıları toplayan ve sonucu yazdıran algoritmayı yazınız ve akış şemasını çiziniz.? Yük. Müh. Köksal GÜNDOĞDU 29
Akış Diyagramı Sembolleri Algoritma: 1. Başla 2. Top=0, I=0 3. Top=Top+I 4. I=I+2 5. I<=10 ise 3. Adıma git. 6. Dur Yük. Müh. Köksal GÜNDOĞDU 30
Akış Diyagramı:. Akış Diyagramı Sembolleri BASLA TOP=0 I=0,10,2 TOP=TOP+I DUR Yük. Müh. Köksal GÜNDOĞDU 31
Akış Diyagramı Sembolleri İç İçe Döngü: bir boyutta daha fazla işlemler için döngülerin iç içe kullanılması tercih edilir. Örneğin matris işlemleri iç içe döngü örneğidir. İç içe döngü İç döngü I = 1, N, 1 J = 1, N, 1 işlem B Dış döngü Yük. Müh. Köksal GÜNDOĞDU 32
Akış Diyagramı Sembolleri Örnek: bir sonraki slayttaki iç içe döngü örneğinde T değişkeninin ilk değerinin sıfır olarak verildiğini varsayarak, her bir adımdaki i, j ve T değerlerini bulunuz. Adım I J T 1. 1 2 =0+1+2=3 2. 1 5 =3+1+5=9 3. 3 2 =9+3+2=14 4. 3 5 =14+3+5=22 5. 5 2 =22+5+2=29 6. 5 5 =29+5+5=39 Yük. Müh. Köksal GÜNDOĞDU 33
Akış Diyagramı Sembolleri Fonksiyon Çağırma: Bir işlemin belli bir sayıda veya belli bir koşul doğru olduğu sürece tekrar edilmesini sağlayan döngü komutunu gösteren şekildir. Bu döngüde altıgen içerisine ya koşul yada döngünün başlangıç, adım ve sonlanma değerlerini belirtebilirsiniz. Örnek: faktoriyel(i) Yük. Müh. Köksal GÜNDOĞDU 34
Örnekler Yük. Müh. Köksal GÜNDOĞDU 35
Örnekler Örnek 1: Klavyeden okunan iki sayının toplamını yapan programın algoritmasını ve akış diyagramını çiziniz.? Çözüm 1: Sözde Kod: 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. Algoritma: A1 :X değerini gir A2 :Y değerini gir A3 :Z = X+Y A4 :Z yi yaz A5 :Bitir Yük. Müh. Köksal GÜNDOĞDU 36
Örnekler Çözüm 1: Başla x, y z=x+y girilen sayıların toplamı= z Dur Yük. Müh. Köksal GÜNDOĞDU 37
Örnekler Örnek 2: 1 den N ye kadar olan sayıların toplamını hesaplayan programın akış diyagramını ve algoritmasını oluşturalım? Çözüm 2: 1 den N ye kadar, N adet sayı vardır. Birer artan döngü içinde sayıları toplayabiliriz. Döngü artışını kontrol edeceğimiz değişken i olsun. Toplam değerini de T değişkeni ile ifade edelim. Döngü değişkeni i, 1 den başlayacak ve birer artarak N ye ulaşacak. T başlangıçta 0 ile başlayacak ve döngü içerisinde 1 den N ye değişen i değeri ilave edilecek. Yük. Müh. Köksal GÜNDOĞDU 38
Örnekler Çözüm 2: (Devam) Algoritma: Adım 0: Başla Adım 1: T=0, i=0 Adım 2: T=T+i Adım 3: i=i+1 Adım 4: Eğer i<=n ise Adım 2 ye git Adım 5: Yaz (T) Adım 6: Dur Yük. Müh. Köksal GÜNDOĞDU 39
Örnekler Çözüm 2: (Devam) Akış Diyagramı: i N işlem T - 10 - - - 10 T=0 0 1 10 T=0+1 1 2 10 T=1+2 3 3 10 T=3+3 6 4 10 T=6+4 10 5 10 T=10+5 15 6 10 T=15+6 21 7 10 T=21+7 28 8 10 T=28+8 36 9 10 T=36+9 45 Yük. Müh. Köksal 10GÜNDOĞDU 10 T=45+10 5540
Örnekler Örnek 3: Birbirinden farklı olarak verilen iki adet sayıdan, büyük olanı bulup gösteren algoritma ve akış diyagramını tasarlayınız.? Çözüm 3: Algoritması Yük. Müh. Köksal GÜNDOĞDU 41
Örnekler Çözüm 3: Akış Diyagramı Yük. Müh. Köksal GÜNDOĞDU 42
Örnekler Örnek 4: Girilenvizevefinalnotlarınagöreöğrencinindersten geçip geçmediğini bulan algoritma ve akış diyagramını tasarlayınız.? Çözüm 4: Algoritması Yük. Müh. Köksal GÜNDOĞDU 43
Çözüm 4: Akış Diyagramı Örnekler Yük. Müh. Köksal GÜNDOĞDU 44
Örnekler Örnek 5: 1 den 26 ya kadar tek sayıları yazdıran algoritma ve akış diyagramını yapınız.? Çözüm 5: Yük. Müh. Köksal GÜNDOĞDU 45
Çözüm 5: Akış Diyagramı Örnekler Yük. Müh. Köksal GÜNDOĞDU 46