Kategoriler
Algoritma

Algoritma’ya Matematiksel Bakış

Algoritma içerisinde hem aritmetik hem de mantıksal adımlar bulunduruyor olabilir. Burada aritmetik dediğimiz bölüm geleneksel matematik işlemleridir.

Algoritmaların çoğunluğunda aritmetik adımlar ağırlıklıdır ve algoritmalar farklı koşullar altında farklı yönleri tercih edebilmelidir bu adımlar algoritmaların mantıksal yönünü meydana getirir.

Matematiksel açıdan bakıldığında, algoritmalar bir prosedür ya da fonksiyon olarak görülebilir. Algoritma geriye bir değer döndürüyorsa fonksiyon, void olarak tanımlanmış yani geriye birşey döndürmüyorsa prosedür olarak ifade edilir.

Algoritma’ya Giriş başlıklı yazımda da bir çok kez belirttiğim gibi algoritma sonuca mümkün olan en kısa ve en az maliyetli yoldan ulaşmalıdır. Bir algoritma en uygun yolu biraz önce de bahsettiğim aritmetiksel ve mantıksal değerlendirmeler yaparak bulur.

Algoritmaların en sık kullandığı aritmetiksel operatörler ve yazılım dillerinde bu operatörlerin nasıl ifade edildiğini aşağıdaki tabloda görebilirsiniz.

(Karşılaştırma)Yazılımsal İfade
x = y(x == y)
x ≠ y(x != y)
x ≥ y(x >= y)
x ≤ y(x <= y)
Matematiksel karşılaştırma operatörlerinin yazılımsal karşılıkları

Bunlar programlama dillerinin hemen hepsinde aynı şekilde ifade edilir. Bu ifadeler bir değerin diğerine göre durumunu karşılaştırır. Bu karşılaştırmalara yazılımlarda koşul denir.

Bazı durumlarda tek bir koşul algoritmanın hangi yönü seçeceğini belirlemekte yeterli olmaya bilir. Böyle durumlarda çoklu olarak koşullar belirtmek gerekir. Bu koşulları belirtmek için aşağıdaki tabloda yer alan operatörler kullanılır.

OperatörAnlamı
&&VE
||VEYA
!Değil
Mantıksal Operatörler

Bunlara mantıksal operatörler denir. Örneğin algoritmanız x ve y eşit ancak a ve b eşit olmadığı durumda bir yolu tercih etmesi gerekiyorsa bunu (a != b && x == y) şeklinde ifade edebilirsiniz.

VE; koşulların tümü sağlanmış olmalıdır.
VEYA; koşullardan en az biri sağlanmış olmalıdır.
Değil; koşul sonucunu terse çevirir.

Değil mantıksal operatörünü bir örnekle pekiştirmek için, x ve y’nin birbirine eşit olduğunu varsayalım bu durumda aşağıdaki koşulların durumu şöyle olacaktır;
(x == y) : Doğru (true)
(x != y) : Yanlış (false)
!(x == y) : Yanlış (false)
!(x != y) : Doğru (true)

Algoritmaların bir tanım aralığı vardır ve bu tanım aralığı içerisinde kendisine verilen ifade amaç doğrultusunda işlenerek çıkış/sonuç elde edilir.

Bir problem ele alındığı zaman belirli bir tanım aralığı ve tanım aralığı içerisindeki her bir değer için değer kümesinde bir eşleşme söz konusu olur. Eğer tanım kümesindeki bir eleman değer kümesinde birden fazla elamanla kesişiyorsa fonksiyon yapısına uygun değildir. Bu durumda farklı kodlama süreçleri oluşturmak gerekir.

Yazar Muhammet ŞAFAK

1992 İstanbul doğumluyum. 2008 yılından beri profesyonel olarak PHP geliştiriyorum. Her ne kadar ağırlıklı olarak PHP üzerinde çalışsam da C, C++, Python, Java programlama dillerini de kullanıyorum.

Bir Cevap Yazın