Merhaba, Algoritma Nedir? Algoritma Tasarımı Nasıl Yapılır? yazım ile biraz programlama dilleri yazılarına ara verelim. Uzun zamandır sürekli programlama dilleri üzerinde yazılar yazıyorum. Bu yazımda programlama konusunun bir alt seviyesi diyebileceğimiz Algoritma nedir? Algoritma tasarımı nasıl yapılır? sorularına bakalım.
Algoritma Nedir? Algoritma Tasarımı Nasıl Yapılır?
Algoritma Nedir?
Algoritma nedir sorusuna Wikipedia, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yol olarak cevap verir. Algoritma, bir problemin çözüm aşamalarının planlı bir şekilde basit, açık, net ve sıralı bir şekilde adım adım yazıya dökmektir. Her ne kadar programlama ile beraber anılsa da aslında bir matemetik alt konusudur diyebiliriz.
Algoritmayı ilk kullanan kişi el Harezmi‘dir. Bu şahsın tam adı Ebu Abdullah Muhammed İbn Musa el Harezmi ‘dir. Tarihte ilk algoritma El Harezmi‘nin “Hisab el-cebir ve el-mukabala” adlı kitabında görülmüştür. Algoritma adını da Avrupalıların Harezmi kelimesini telaffuz şeklinden ortaya çıkmıştır.
El Harezmi, 9. yüzyılda kitabına döktüğü cebir alanındaki algoritmik çalışmaları sayesinde bilim dünyasına bir çok katkı sağlamıştır. Yazdığı kitap cebir alanında bilinen ilk kitaptır ve el Harezmi’nin algoritmik çalışmalarını topladığı bir koleksiyon gibidir.
Algoritma Tasarımı Nasıl Yapılır?
Her ne kadar matematik alt konusu demiş olsak ve daha çok programlama ile anılıyor olsa da algoritma her konu için kullanılabilir. Yani her olay için bir algoritma yazılabilir.
Mevcut bir problemi çözebilmek ya da istenilen bir amaca ulaşmak için yazılan kurallar topluluğuna talimat, prosedür, reçete ya da formül denilebilir. Algoritma bilgisayar ile ilgili bir konu gibi görünse de aslında temelinde matematik yer almaktadır.
Her programlama dilinin ilk dersi olarak ekrana “Merhaba Dünya” yazdırmak bir adettir. Algoritma ile “Merhaba Dünya” yazdıralım.
Başla Yaz "Merhaba dünya" Bitir
Algoritma her konuda kullanılabilir dedik. Gelin bir genellikle algoritma konusunun değişmez ilk örneği olan Çay Demleme Algoritmasını görelim.
1.Başla 2.Mutfağa Git 3.Çaydanlığa Su Koy 4.Çaydanlığı Ocağa Koy 5.Ocağı Yak 6.10 Dakika Bekle 7.Su Kaynadı Mı? 8.Evet ise Demliğie Çay Koy ve Çayı Demle, Hayır ise 6. Adıma Git. 9.Çayı Doldur 10.Bitir
Gördüğünüz gibi 10 adımda çay demleme algoritmasını yazdık. Ancak bu algoritma genel bir algoritma oldu. Dikkatli incelediğimizde bu algoritmayı daha da detaylandırabiliriz.
1.Başla 2.Ayağa Kalk 3.Mutfağa Git 4.Çaydanlığın Altını Al 5.Musluğu Aç 6.Çaydanlığın Altına Su Doldur 7.Çakmağı Al 8.Ocağı Yak 9.Çaydanlığın Altını Ocağa Koy 10.10 Dakika Bekle 11.Su Kaynadı Mı? 12.Evet ise Demliğie Çay Koy ve Üzerine Sıcak Suyu Ekle, Hayır ise 10. Adıma Git. 13.Çaydanlığın Altını Tekrar Doldur. 14.Çaydanlığın Altını Tekrar Ocağa Koy 15.Demliği Çaydanlık Altının Üstüne Koy 16.5 Dakika Bekle 17.Çay Demini Aldı Mı? 18.Evet ise İnce Belli Bir Bardak Al ve Çayı Doldur, Hayır ise 16. Adıma Git. 19.Çay Şekerli Mi İsteniyor? 20.Evet ise İnce Belli Bardağa 2 Şeker At, Hayır ise 21. Adıma Git. 21.Çayı Servis Et. 22.Bitir
Gördüğünüz gibi ilk seferde 10 adımda ulaştığımız bir amaca, ikinci seferde daha fazla detay ekleyerek 22 adımda bitirdik. Biraz daha detaya inmek istersek bu adım sayısı daha da artacaktır ve giderek daha kompleks bir hale girecektir. En basitinden, Ne kadar su koyulacak?, Çay kaç kişi için demlenecek? Ne kadar çay koyulacak? Kaç şekerli isteniyor? gibi sorularla algoritma daha da detaylandırılabilir.
Verdiğimiz bu algoritma örneği en basit örneklerden biriydi. Şimdi de KDV oranı hesaplayan bir algoritma yazalım. Dışarıdan girilen bir sayının %18 KDV dahil tutarını bulalım.
1.BAŞLA 2.SAYISAL FİYAT 3.YAZ("FİYAT: ") 4.OKU FİYAT 5.FİYAT = FİYAT * 1.18 6.YAZ(FİYAT) 7.BİTİR
Gördüğünüz gibi matematiksel bir işlem için yazdığımız algoritma hayat problemleri için yazılan algoritmalardan biraz daha farklıdır.
Önemli Algoritma Türleri
- Kripto algoritmaları veya kriptografik algoritmalar
- Birleşimsel algoritmalar
- Genetik algoritmalar
- Bellek yönetimi algoritmaları
- Veri sıkıştırma algoritmaları
- Evrimsel algoritmalar
- Kök bulma algoritmaları
- Arama algoritmaları
- Bilgisayar grafiği algoritmaları
- Çizge algoritmaları
- Optimizasyon algoritmaları
- Sıralama algoritmaları
Algoritma nedir yazısının çok uzun olmasını istemediğim için sadece bir kaç örnek algoritmalar hakkında daha fazla yazı yazacağım. Aklımda yukarıda vermiş olduğum maddelerde yer alan algoritma türleri hakkında algoritma örnekleri bularak sizlerle paylaşmayı düşünüyorum.
Ayrıca Algoritma konusu ile yakın ilişkide olan Akış Diyagramları konusu da var ama Akış Diyagramlarını farklı bir yazıda yazacağım.
Algoritma Nedir? Algoritma Tasarımı Nasıl Yapılır? yazımda bu kadardı arkadaşlar. Diğer yazılarımda görüşmek üzere…
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bu bağlantıdan ulaşabilirsiniz…
Sağlıcakla ve takipte kalın.