Algoritma
Temel Kavramlar
Algoritmaya Giriş
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
2
Algoritmaya Giriş
•
Aslında bizim günlük hayattaki yaşantı tarzımız dahi düzenli olarak bir
takım işlemlerin sıra ile yapılması şeklindedir. Yani bir iş yapabilmek için
bir takım alt iş veya olayları peş peşe gerçekleştiririz.
•
Her gün evden çıkarken ne giyilmelidir? Bunun için muhtemelen
pencereden dışarıya bakılır. Hava yağmurlu ise mevsim gereklerine
göre giyinmenin yani sıra dışarıya çıkarken bir de semsiye alınması
gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek
dışarıya çıkılır. Böylece problemin çözümü kendiliğinden oluşturulan
bir kararla sağlanır.
•
Yukarıdaki basit örnekte yapılan is, önce problemin belirlenmesi ve
sonra problemin tanımından yola çıkarak çözüm için değişik
alternatiflerin değerlendirilmesidir.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
3
Algoritmaya Giriş
•
Öncelikle bir ev hanımının pasta yapmak istediğini varsayalım. Bu
pastanın yapılabilmesi için gerekli bir takım işlemler ve alt adımlar
bellidir. Sıra ile bu adımları uygulayarak bu pastayı yapılır. Şöyle ki:
Bu algoritma günlük hayattan bir
örnek. Gerçekte biz her işimizi
algoritmik olarak yaparız ancak
bunu farkına varmayız. Yandaki
algoritmayı inceleyecek olursak bir
kekin yapılması için gerekli tüm
adımlar sıra ile yer almış durumda.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
4
Algoritmaya Giriş
• Örnek 1: Peki Bilgisayarda çözülecek bir sorunu nasıl algoritma
ile ifade ederiz? Bunun için öncelikle bir sorun tanımlayalım.
Başlangıç ta basit olması için şöyle bir problem üzerinde
düşünelim: Bilgisayara verilecek iki sayıyı toplayıp sonucu
ekrana yazacak bir program için algoritma geliştirmek
isteyelim.
• Sorun son derece basit ancak sistem tasarımının net
yapılabilmesi için sorun hakkında anlaşılamayan tüm belirsiz
noktalar açıklığa kavuşturulmalıdır. Örneğin sayılar bilgisayara
nereden verilecek, Klavye, Dosya veya belki başka bir ortam.
Bu ve buna benzer soru ve tereddütleriniz varsa sorun sahibine
bunları sormalı ve sistem analizi yapmalısınız.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
5
Algoritmaya Giriş
• Sonra bulacağımız çözümü algoritma haline dönüştürebiliriz.
o
o
o
o
o
o
Adım 1 – Başla
Adım 2 – Birinci Sayıyı Oku
Adım 3 – İkinci Sayıyı Oku
Adım 4 – İki Sayıyı Topla
Adım 5 – Toplam Değerini Ekrana Yaz
Adım 6 – Dur
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
6
Algoritmaya Giriş
• ÖR: Klavyeden girilen iki sayının toplamını hesaplayıp yazan
pseudo kod ve akış şemasını hazırlayınız.
•
•
•
•
•
•
•
(X: Birinci sayı, Y: İkinci sayı, Z: toplam)
A1 : Başla
A2 : Klavyeden oku X
A3 : Klavyeden oku Y
A4 : Hesapla Z = X + Y
A5 : Yaz Z
A6 : Dur
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
7
Başarı Süreci
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
8
Akış Şemaları
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
9
Akış Şemaları
Başla
Dur
Klavye
Bir algoritmanın başladığı konumu göstermektedir.
Bir algoritmanın bittiği konumu göstermektedir.
Klavyeden veri girişini göstermektedir.
Kağıt
Bilginin, yazıcıya yazılacağını göstermektedir.
Ekran
Bilginin, ekrana yazılacağını göstermektedir.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
10
Akış Şemaları
İşlem
Bir algoritmada aritmetik işlem yapıldığını gösterir.
Fonksiyon
Bir algoritmada, başka bir yerde tanımlanmış bloğun
yerleştiği konumu gösteren şekildir.
Koşul
Bir algoritmada bir kararın verilmesini ve bu karara
göre iki seçenekten birinin uygulanmasını sağlayan
şekildir.
Döngü
Bir algoritmada; belirli işlem bloklarının ardışık değerlerle
veya bazı koşullar sağlanıncaya kadar tekrarlandığını
gösterir.
Akış çubukları; bir algoritmada gidilecek yönü belirtir.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
11
Akış Şeması Örnekleri
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
12
Örnek #
• Bir sayıyı okuyup bu sayıyı tekrar yazdıran programın akış
şemasını çiziniz.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
13
Örnek #
•
Klavyeden girilen iki sayıyı alıp aritmetik ortalamasını hesaplayan ve
sonucu ekrana yazan bir algoritmanın akış şemasını çiziniz.
•
Tabii ki, çözümü çok basittir; yanda
görüldüğü gibi ikisi Başla ve Dur’dan oluşan
beş tane simge ile gerçekleştirilmiştir.
Görüleceği üzere klavyeden giriş simgesi
içerisine değişken adları yazılmıştır; girilen
birinci sayı A, ikinci sayı B’de tutulacaktır.
İşlem simgesi içerisinde de ort adlı değişkene
(A+B)/2 işleminin sonucu atanacaktır. Daha
sonra ekran simgesi kullanılmıştır; burada
yapılan, çift tırnak arasında verilen mesajı
olduğu gibi yaz ve ort adlı değişkenin de
tuttuğu değeri yaz anlamındadır.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
Başla
A, B
ort = (A+B)/2
ort
Dur
14
• Girilen bir sayının tek mi çift mi olduğunu tespit eden
programın algoritmasını ve akış diyagramını tasarlayınız.
• Adım 1: Başla
Adım 2: Herhangi bir sayı giriniz.(x)
Adım 3: Eğer x mod 2 =0 ise;
• ekrana çift yaz değilse tek yaz.
Adım 4: Bitir
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
15
• Girilen 2 sayıdan büyük olanı kağıda yazdıran programın
algoritmasını ve akış diyagramını tasarlayınız.
•
•
•
•
•
•
•
Adım 1: Başla
Adım 2: Birinci sayıyı gir.(x)
Adım 3: İkinci sayıyı gir.(y)
Adım 4: Eğer x>y ise;
ekrana 1. sayı büyüktür yaz.
Adım 5: Eğer y>x ise;
ekrana 2. sayı büyüktür yaz.
Adım 6: Ekrana sayılar birbirine eşittir yaz.
Adım 7: Bitir
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
16
•
ax2+ bx + c = 0 şeklindeki ikinci dereceden bir denklemin köklerini
bulan algoritmayı tasarlayıp akış şeması ile gösteriniz.
•
Kökleri hesaplayabilmek için;
∆ = b2 − 4ac
bağıntısını hesaplamak gerekir.
Köklerle ilgili üç durum vardır:
∆ > 0 ise; iki farklı kök vardır.
∆ = 0 ise; tek kök vardır.
∆ < 0 ise; gerçek kök yoktur.
II. Dereceden denklemin kökleri;
− ± ∆
1 , 2 =
2
formülü ile bulunur.
•
•
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
17
Örnek #
• 1’den N değerine kadar sayıları toplayıp ekrana yazan bir akış
çizgesi çizilmiştir.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
18
Örnek #
• Klavyeden girilen N sayısının faktöriyelini alan algoritmanın akış
diyagramını çiziniz.
• N ile hangi sayının faktöriyelin
hesaplanacağı belirlenir ve N
çevrimlik bir döngü kurulur.
• İlk çevrimde 1!, ikinci çevrimde 2! ve
sırayla N’inci çevrim sonucunda da
N! değeri hesaplanmış olur.
• Sayac > N koşulu oluştuğunda
döngüden çıkılır ve elde edilen
sonuç dış ortama aktarılır.
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
19
Eğitim TV
Web www.egitimtv.biz
Facebook www.facebook.com/EgitimTV
Twitter www.twitter.com/Egitim_TV
Eğitim TV - egitimtv.biz - facebook.com/EgitimTV
20
Download

Adım 2 - Alper Karakaya