yazikusagi.com

Algoritma Nedir?

Programlamanın temelinde yer alan konulardan biri algoritmadır. Nedir algoritma, ne işe yarar? Algoritma, bir sorunu çözmek için kullanılan bir dizi adımdır. Bu adımlar belirli bir çözüm sağlayarak bir sorunu ele almak için benzersiz bir yöntem sunar. Bir algoritmanın matematiksel veya mantıksal kavramları temsil etmesi gerekmez, çünkü insanlar genellikle algoritmaları bu şekilde kullanırlar. İkinci dereceden formül gibi bazı özel formüller de algoritmadır.

Herhangi bir sorunu çözmeden önce onu iyice anlamak gerekir. Mesele sadece sorunu boyutlandırma meselesi değildir. Belirli girdilere sahip olduğumuzu ve belirli çıktılara ihtiyaç duyduğumuzu bilmek sorunu çözme noktasında bir başlangıçtır, ancak bu bir çözüm oluşturmak için yeterli değildir. Çözüm sürecinin bir kısmı,

» Başkalarının nasıl yeni sorun çözümleri oluşturduğunu keşfetmekten,

» Elimizde hangi kaynakların olduğunu bilmekten,

» Geçmişte benzer sorunlar için işe yarayan çözüm türlerini belirlemekten ve

» Ne tür çözümlerin istenen sonucu vermediğini düşünmekten

ibarettir. Bu aşamaları sırayla gerçekleştirmeyeceğinizi ve bazen daha fazla bilgi aldıktan sonra bir aşamayı tekrar ziyaret ettiğinizi fark edin. Bir problem çözümüne başlama süreci yinelemelidir. Elimizdeki sorunu iyice anlayana kadar yukarıdaki adımları tekrar etmeye devam ederiz.

Algoritma sözcüğü, Özbekistan’ın Harezm, bugünkü Türkmenistan’ın Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi’den gelir.[4][5] Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. “Hisab el-cebir ve el-mukabala (حساب الجبر و المقابلة)” kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa’da çok ilgi görür. Alimin ismini telaffuz edemeyen Avrupalılar “algorizm” sözcüğünü “Arap sayıları kullanarak aritmetik problemler çözme kuralları” manasında kullanırlar. Bu sözcük daha sonra “algoritma”ya dönüşür ve genel kapsamda kullanılır.

Kaynak: Wikipedia

Bir algoritma hangi özelliklere sahip olmalı?

1. Sonlu Olma Özelliği. Bir algoritma sonlu sayıda işlem yapıldıktan sonra sona ermeli. Burada sonlu sayıda kuraldan oluşmakla, sonlu sayıda işlem yapılmak birbiriyle karıştırılmamalı.

2. Kesin Olma Özelliği. Bir algoritmanın her adımı açık ve kesin bir biçimde tanımlanmış olmalıdır. Bu şekilde algoritmayı izlerken hiçbir yerde yoruma meydan verilmemelidir. Öte yandan açıklık ve kesinliği sağlamak için algoritma mutlaka bilgisayarın anlayacağı bir dille yazılmalıdır. İnsanla bilgisayarın birbirlerini açık ve kesin bir biçimde anlaması sorununun çözümü için adına “programlama dili” ya da “bilgisayar dili” denilen “resmi” diller tasarımlanmış bulunuyor. Her bilgisayarın kendi büyüklüğüne ve yetenek düzeyine göre, anladığı bir ya da birkaç “resmi” dili var. Algoritmaların bu dillerle yazılması gerekiyor.

3. Algoritmanın Girdisi. Bazı algoritmaların bir ya da birkaç girdisi, yani algoritmayı izleyecek bilgisayarın istenileni yapabilmesi için işe başlamadan okuması gereken nicelik ya da nicelikler söz konusu olabilir.

4. Algoritmanın Çıktısı. Bir algoritmanın bir ya da birkaç çıktısı (ürünü) olacaktır. Yukarıdaki bütün bu özelliklere ek olarak bir algoritmanın mümkün olduğu kadar geniş bir problem kümesine uygulanabilir olması istenir.

Algoritma Örnekleri

Akış Şeması (Diyagramı)

Algoritmaya dair bunca şey söyledikten sonra örneklere geçmeden önce algoritmaları ifade ederken kullanacağımız bazı şekiller hakkında da bilgi verelim. Algoritmada adım adım yapacağımız işlemleri akış diyagramı veya şeması denen bazı şekillerle görsel olarak ifade ederiz. Bu şemalar program yazma aşamasında bize yardımcı olur. Akış şemasında kullanılan sembolleri aşağıda görüyorsunuz. Aşağıdaki görsele almadığım ok sembolleri, akış şemasında yer alan şekiller arasındaki ilişkiyi belirtmekte kullanılır.

algoritma akış şeması

Bunları da belirttikten sonra ilk algoritma örneğimize geçebiliriz. Yazılan algoritmanın çalışıp çalışmadığını kontrol etmek için FLOWGORITHM programını kullanmanızı öneririm. Benim burada sizlerle paylaşacağım algoritma örneklerinin kaynak dosyalarını bilgisayarınıza indirip bu programla çalıştırabilirsiniz. Algoritma kaynak dosyaları her örneğin sonundadır.

Örnekler

Algoritma Örneği: 4 İşlem
Algoritma Örneği: Karekök Bulma
Algoritma Örneği: İkinci Derece Denklem Kökü Bulma
Algoritma Örneği: Sıcaklık Değeri Dönüştürme
Algoritma Örneği: Bir Sayıyı Tersten Yazmak
Algoritma Örneği: Sayıların Karelerini Bulma ve Bunları Toplama
Algoritma Örneği: Çıkarma Operatörü Kullanmadan Çıkarma Yapmak
Algoritma Örneği: İki Sayı Arasındaki Tek Sayıları Bulma
Algoritma Örneği: Faktöriyel Hesaplama
Algoritma Örneği: Toplama Operatörü Kullanarak Sayıları Çarpmak
Algoritma Örneği: Çıkarma İşlemi Yaparak İki Sayıyı Bölmek
Algoritma Örneği: Bir Sayının Basamak Sayısını Yazdırmak
Algoritma Örneği: Armstrong Sayısı Belirleme
Algoritma Örneği: Çarpım Tablosu
Algoritma Örneği: Belli Aralıktaki Sayıları Toplamak#1
Algoritma Örneği: Belli Aralıktaki Sayıları Toplamak#2


Yorumlar

Yapacağınız yorumlarda kendi fikirlerinizi belirtiniz. Sağdan soldan kopyala-yapıştır yapmayınız! Kimseye hakaret etmeyiniz! Gizlilik ve yorum kurallarımız için buraya tıklayınız.