390 likes | 836 Views
BPR151 ALGORİTMA VE PROGRAMLAMA - I. Öğr . Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul. Pseudo-code (yalancı kod) & Akış şemaları. Pseudo-code (yalancı kod) & Akış şemaları. Algoritmalar genelde anlaşılır dillerle yazılır
E N D
BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul
Pseudo-code(yalancı kod) & Akış şemaları • Algoritmalar genelde anlaşılır dillerle yazılır • Bu algoritma stilleri pseudo-code(yalancı kod) olarak adlandırılır • Yalancı kodlar genellikle çözüme başlamak için iyi bir yoldur. • Bununla beraber, program akışı bu tür yalancı kodlarla her zaman çok açık olmayabilir! • Bunun için, kontrol akışını daha açık ifade etmek için Akış şemaları kullanılır. Öğr. Gör. Bayram AKGÜL
Akış Şemaları • Bir Akış şeması yapılandırılmış bir harita gibi algoritma adımlarını gösterir. • Aşağıdaki şekiller bir akış diyagramı içinde kontrol akışını ifade etmek için kullanılır Deltoitlerkoşul durumunda karar verme adımını gösterir Dikdörtgenler işlem adımlarını gösterir Paralel kenar girdi adımlarını gösterir Altı yamuk dörtgenler çıktı adımlarını gösterir Başla Bitir Oklar Akış yönünü gösterir Algoritmanın başlangıç ve bitişini gösterir Çember bağlantı noktasını gösterir Öğr. Gör. Bayram AKGÜL
Program • Bir program tanımlanmış bir problemi çözmek için hazırlanmış bir yapıdır. Örnek problemler: • 1 den N sayısına kadar olan sayıların toplamı • N tane sayının en büyük ve en küçük olanını bulma • Sayıları sıralama • Sınıfın not ortalamasını hesaplama • … PROGRAM (Algoritma) Girdi (Veri) Çıktı (Sonuç) • Bir program girdi olarak bazı verileri alır, onları işler ve sonucu çıktı olarak verir. Öğr. Gör. Bayram AKGÜL
Örnek-1: Sandviç Yapma • Problem:Fıstık ezmeli ve reçelli sandviç yapmak için bir algoritma yazalım. • Girdiler • Ekmek (En az 2 dilim) • Fıstık ezmesi • Reçel • Bıçak • Sandviçi koymak için tabak • Çıktı • Bir sandviç Öğr. Gör. Bayram AKGÜL
Örnek-1: Sandviç Yapma (devam) • Başla • Ekmeği, fıstık ezmesini, reçeli, bıçağı ve tabağı çalışacağın yere koy • İki dilim ekmeği tabağa koy • Fıstık ezmesini bir ekmeğe sür, sürmek için bıçağı kullan • Diğer ekmeğe reçeli sür, sürmek için bıçağı kullan • Reçel ve fıstık ezmesi içeriye gelecek şekilde iki dilimi bir biri üstüne koy • Sandviç hazır! • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 1 için Akış Şeması: Sandviç yapma Başla Ekmeği, fıstık ezmesini, reçeli, bıçağı ve tabağı al 2 dilim ekmeği masaya koy Fıstık ezmesini bir dilime sür Reçeli diğer dilime sür iki dilimi bir biri üstüne koy Sandviç hazır! Bitir
Örnek 2:Fahrenhayt’ı santigrada dönüştürme • Problem:Fahrenhayt sıcaklık birimini santigrat derece birimine dönüştürecek bir algoritma yazalım. • Girdi (Input) • Fahrenhayt derece (°F) sıcaklık • Çıktı(Output) • Santigrat derece (°C) sıcaklık Öğr. Gör. Bayram AKGÜL
Örnek 2:Fahrenhayt’ı santigrada dönüştürme (devam) • Başla • Kullanıcıdan dönüştüreceğin Fahrenhayt dereceyi girmesini iste • santigrat = (fahrenhayt -32)/1.8 • Fahrenhayt ve Santigrat dereceleri ekrana yazdır. • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 2 için Akış Şeması: Fahrenhayt’ı santigrada dönüştürme Başla Kullanıcıdan dönüştüreceğin Fahrenhayt dereceyi girmesini iste santigrat = (fahrenhayt -32)/1.8 Fahrenhayt ve Santigrat dereceleri ekrana yazdır. Bitir
Örnek-3: 2 sayının toplam, çarpım ve ortalamasını hesaplama • Problem:2 sayının toplam, çarpım ve ortalamasını hesaplayacak algoritma yazalım. • Girdi • 2 sayı • Çıktılar • Sayıların toplam çarpım ve ortalamaları toplam sayı1 program çarpım sayı2 ortalama Öğr. Gör. Bayram AKGÜL
Örnek-3: 2 sayının toplam, çarpım ve ortalamasını hesaplama • Başla • Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste • toplam = sayı1 + sayı2 • çarpım = sayı1 * sayı2; • ortalama = toplam / 2; • toplam, çarpım ve ortalamayı ekrana yaz • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 3 için Akış Şeması: 2 sayının toplam, çarpım ve ortalamasını hesaplama Başla Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste toplam = sayı1 + sayı2 çarpım = sayı1 * sayı2 ortalama =toplam/2 toplam, çarpım ve ortalamayı ekrana yaz Bitir
Örnek-4: bir çemberin çevresini ve alanını hesaplama • Problem:bir çemberin çevresini ve alanını hesaplayan bir algoritma yazalım. • Girdi • Çemberin yarı çapı • Çıktı • Çemberin çevresi ve alanı Öğr. Gör. Bayram AKGÜL
Örnek-4: bir çemberin çevresini ve alanını hesaplama • Başla • Kullanıcıdan çemberin yarıçapını girmesini iste • çevre = 2 * 3.14 * yarıçap; • alan = 3.14 * yarıçap * yarıçap; • Çevre ve alanı ekrana yazdır. • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 4 için Akış Şeması: çemberin çevresi ve alanını hesaplama Başla Kullanıcıdançemberin yarıçapınıgirmesiniiste çevre = 2*3.14*yarıçap Alan = 3.14* yarıçap * yarıçap; Çevre ve alanı ekranayazdır Bitir
Örnek-5: 2 sayının küçük ve büyük olanını bulma • Problem:2 sayının küçük ve büyük olanını bulan bir algoritma yazalım. • Girdi • 2 sayı • Çıktı • Küçük ve büyük sayı Öğr. Gör. Bayram AKGÜL
Örnek-5: 2 sayının küçük ve büyük olanını bulma • Başla • Kullanıcıdan sayı1 ve sayı2’yi girmelerini iste • eğer (sayı1 < sayı2) • 2.1. küçük = sayı1; • 2.2. büyük = sayı2; • değilse (yani sayı1 >= sayı2) • 3.1. küçük = sayı2; • 3.2. büyük = sayı1; • Küçük ve büyük sayıları ekrana yazdır • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 5 için Akış Şeması: 2 sayının büyük ve küçük olanını bulma Başla Kullanıcıdan sayı1 vesayı2’yigirmeleriniiste sayı1 < sayı2 ? evet Hayır küçük= sayı1 küçük= sayı2 büyük= sayı2 büyük= sayı1 Küçük ve büyük sayılarıyazdır Bitiş
Örnek-6: 3 sayının en küçük olanını bulma • Problem:3 sayının en küçük olanını bulacak bir algoritma yazalım • Girdi • 3 sayı • Çıktı • Sayılardan en küçük olanı Öğr. Gör. Bayram AKGÜL
Örnek-6: 3 sayının en küçük olanını bulma (devam) • Başla • Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste • eğer (sayı1 < sayı2) • 2.1. eğer (sayı1 < sayı3) iseküçük = sayı1; • 2.2. değilse (yani, sayı3 <= sayı1) küçük = sayı3; • değilse (yani, sayı1 >= sayı2) • 3.1. eğer (sayı2 < sayı3) küçük = sayı2; • 3.2. değilse (yani, sayı3 <= sayı2) küçük = sayı3; • Küçük sayısını ekrana yaz • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 6 için Akış Şeması: 3 sayıdan küçük olanını bulma Başla Kullanıcıdan sayı1, sayı2 ve Sayı3’ü girmeleriniiste sayı1 < sayı2 ? evet hayır sayı2 < sayı3 ? evet sayı1 < sayı3 ? evet hayır hayır küçük= sayı3 küçük= sayı3 küçük= sayı2 küçük= sayı1 küçüksayısınıyazdır Öğr. Gör. Bayram AKGÜL Bitir
Örnek-7: 3 sayının en küçük olanını bulma (2. algoritma) • Başla • Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste • küçük = sayı1; (sayı1 in en küçük olduğunu farzedelim) • eğer (sayı2 < küçük) küçük = sayı2; • eğer (sayı3 < küçük) küçük = sayı3; • küçük sayısını ekrana yaz • Bitir Öğr. Gör. Bayram AKGÜL
Örnek 7 için Akış Şeması: 3 sayıdan küçük olanını bulma Başla Kullanıcıdan sayı1, sayı2 ve Sayı3’ü girmeleriniiste küçük= sayı1 evet sayı2 < küçük ? küçük= sayı2 hayır evet sayı3 < küçük ? küçük= sayı3 hayır küçüksayısını ekranayazdır Bitir
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması • Problem:Kenar uzunlukları verilen bir dikdörtgenin alanını hesaplayalım. • Girdi • Kısa ve uzun kenar • Çıktı • Dikdörtgenin alanı Öğr. Gör. Bayram AKGÜL
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması (devam) • Başla • Kullanıcıdan dikdörtgenin uzun ve kısa kenarlarının girmesini iste • alan = uzunkenar * kısakenar; • alanı ekrana yazdır. • Bitir Öğr. Gör. Bayram AKGÜL
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması (devam) Başla Kullanıcıdandikdörtgenin uzun ve kısa kenarlarınıngirilmesiniiste Alan = uzunKenar*kısaKenar alanıekranayazdır Bitir
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması (devam) • Uyarı: kullanıcı uzun veya kısa kenar için 0 veya negatif bir değer girerse ne olur? • Negatif veya 0 alan olabilir mi? • Ne Yapmalıyız? • Kontrol Öğr. Gör. Bayram AKGÜL
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması (devam) • Başla • Kullanıcıdan dikdörtgenin uzun kenarını girmesini iste • Eğer (uzun kenar <= 0 ) ise 1. adıma git • Kullanıcıdan dikdörtgenin kısa kenarını girmesini iste • Eğer (kısa kenar <= 0 ) ise 3. adıma git • alan = uzunkenar * kısakenar; • alanı ekrana yazdır. • Bitir Öğr. Gör. Bayram AKGÜL
Örnek-8: Kenar uzunlukları verilen bir dikdörtgenin alanının hesaplanması (devam) Başla Kullanıcıdandikdörtgenin uzun kenarınıngirilmesiniiste evet Alan = Uzun Kenar* Kısa Kenar Uzun Kenar <=0 ? hayır alanıekranayazdır Kullanıcıdandikdörtgenin kısa kenarınıngirilmesiniiste hayır evet Bitir Kısa Kenar <=0 ?
Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL