Programlama-Dilleri

Algoritma

Algoritma Nedir?

Bir problemin ideal çözümüne giden yola algoritma denir. Yazılacak programın dili değil de, algoritması en önemli kısmıdır. Programı çalıştıracak algoritmayı en iyi şekilde çözümledikten sonra, kullanılacak dilin yapısına göre kodlama aşamasına geçilir.

Programlama ihtiyacı duyulan her konuda, çözümleri koda aktarırken en temel algoritmalar kullanılır. Örneğin bir listenin sıralanması işleminde, sıralama algoritması kullanılmalıdır. Veya bir liste içinde en yüksek sayısal değeri bulmak için programcı en büyük elemanı bulma algoritmasını kullanmalıdır.

Algoritma belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
Her algoritma aşağıdaki kriterleri sağlamalıdır:

Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
Çikti: En azından bir değer üretilmeli.
Açiklik: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.
Her program için sonluluk özelliği geçerli değildir. Örneğin isletim sistemleri sonsuza dek çalışan programlara örnektir.

Bir dizi içerisindeki en büyük sayıyı bulmak için izlenecek yol şu şekilde olabilir:

Dizinin ilk elemanı en büyük sayı kabul edilir.
Bir sonraki eleman ile karşılaştırılır.
Eğer karlılaştırılan eleman daha büyükse, artık en büyük eleman odur.
Dizi sonlana kadar bu işleme devam edilir.
En küçük elemanı bulmak için ise yine benzer bir yöntem izlenir.

Dizinin ilk elemanı en küçük sayı kabul edilir.
Bir sonraki eleman ile karşılaştırılır.
Eğer karlılaştırılan eleman daha küçükse, artık en küçük eleman odur.
Dizi sonlana kadar bu işleme devam edilir.
Algoritma belirli bir görevi yerine getiren sonlu sayidaki islemler dizisidir.
Her algoritma asagidaki kriterleri saglamalidir.

Girdi: Sifir veya daha fazla deger disaridan verilmeli.
Çikti: En azindan bir deger üretilmeli.
Açiklik: Her islem (komut) açik olmali ve farkli anlamlar içermemeli.
Sonluluk: Her türlü olasilik için algoritma sonlu adimda bitmeli.
Etkinlik: Her komut kisinin kalem ve kagit ile yürütebilecegi kadar basit olmalidir.
Her program için sonluluk özelliği geçerli değildir. Örneğin isletim sistemleri sonsuza dek çalisan programlara örnektir.

Örnek: 1’den 100’e kadar olan sayilarin toplamini veren algoritma.

Toplam T, sayilar da i diye çagirilsin.
Baslangiçta T’nin degeri 0 ve i’nin degeri 1 olsun.
i’nin degerini T’ye ekle.
i’nin degerini 1 arttir.
Eger i’nin degeri 100’den büyük degil ise 3. adima git.
T’nin degerini yaz.
Algoritmaların yazim dili değişik olabilir. Günlük konuşma diline yakın bir dil olabilecegi gibi simgelere dayalı da olabilir. Akış şeması eskiden beri kullanıla gelen bir yapıdır. Algoritmayı yazarken farklı anlamlar taşıyan değişik şekildeki kutulardan yararlanılır. Yine aynı amaç için kullanılan programlama diline yakın bir (sözde kod = pseudo code) dil , bu kendimize özgü de olabilir, kullanılabilir.
Bugün 14 ziyaretçi (16 klik) kişi burdaydı!