Algoritma Nedir?

Algoritma kavramı “bir problemi çözerken ki işlem adımlarıdır” veya “problemlerin çözümünde kullanılan” yöntemler gibi farklı tanımlarda karşımıza çıkabilir. Yani aslında günlük hayatta birçok problemimizi çözerken farkında olmadan algoritmayı kullanıyoruz diyebiliriz.

Tabi biz bir programlama terimi olarak algoritma tanımı ile ilgileneceğiz. Algoritma “bir işi yapmak için tanımlanan, belli bir başlangıcı ve sonu olan, açıkça belirlenmiş basamaklardır.” şekilnde tanımlanabilir. Algoritma problemin çözümünde en kısa, en verimli, en güvenilir çözümü ortaya koymaktır. Bir nevi  bir inşaat yapımına başalamadan önce çizilen projedir. 

İlk algoritma, el Harezmi tarafından “Hisab el-cebir ve el-mukabala” kitabında sunulmuştur. Algoritma sözcüğü de El Harizmi’nin isminin Avrupalılarca telaffuzundan doğmuştur. 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. 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. (https://tr.wikipedia.org)

1. Algoritmanın Özellikleri

1.1. Etkinlik: Etkin bir algoritmanın tekrar eden adımlardan arınmış olması gerekir. Yazılan bir algoritma gerektiğinde başka bir program algoritmasında kullanılabilir bir esneklikte olmalıdır.

1.2. Kesinlik: Algoritmaları sonun ortaya çıkan sonuç net ve kesin olmalıdır.

1.3. Giriş/Çıkış Bilgisi: Her algoritmanın bir girdisi olduğu gibi bir de algoritma tarafından üretilen bir bilgi yani çıktısıda olması gerekir.

1.4. Sonluluk: Algoritmaların bir sonucu olmalıdır.

1.5. Performans: Algoritmanın sonucu zaman kaybı olmadan vermesi gerekir. Bunun için algoritma sade ve gereksiz tekrarlardan arınmış bir yapıda olmalıdır.

Algoritma Nasıl Yazılır?

  • Algoritmalar sözde(pseudo) kod veya akış diyagramı(şeması) şeklinde ifade edilebilir.
    • ​Sözde (Pseudo) Kod : Algoritmaların günlük konuşma dili ile ifade edilmesidir. Programlama dillerinin söz diziminden oldukça uzaktır.
    • Akış Diyagramı(Şeması) : Algoritmanın daha önce belirlenmiş belli bir standarta göre şekiller ve sembollerle gösterilmesidir.
  • Algoritmanın ilk adımı her zaman “Başla” ile başlar ve “Bitiş,Bitir,Son,Dur” gibi adımlarda biter.
  • Algoritma sıralı adımlardan devam eder.

Adım 1:————–

Adım 2:————–

Adım n:————–

  • Algoritmaya o algoritmayı tanımlayan bir isim verilmelidir.
  • Algoritma adımlarında açıklayıcı bilgiler bulunabilir. Açıklama satırları “//……..//” şeklinde yazılabilir.

Sözde Kod (Pseudo Code)

Yukarıda da ifade ettiğimiz gibi algoritmaların günlük konuşma dili ile ifade edilmesine sözde (pseudo code) kod diyoruz.  Şimd algoritmanın sözde kodlar ile yazılmasına basit bir örnek verelim.

Kullanıcıdan alınan iki sayının toplamını hesaplayan programın algoritmasının sözde kodlar ile gösterimi aşağıdaki gibi olur.

Adım 1 : Başla

Adım 2 : Oku (X)                      //Dışarıdan okunacak bir değerin X değişkeninde tutulmasını ifade ettik.//

Adım 3 : Oku (Y)                      // Dışarıdan okunacak bir değerin Y değişkeninde tutulmasını ifade ettik.//

Adım 4 : Toplam ← X + Y       // X ve Y sayısını toplamasını ve sonucun “Toplam” adında bir  değişkende tutulmasını ifade ettik.//

Adım 5 : Yaz (Toplam)            // Program çıktısı olarak Toplam değişkeninin içinde ki değerin verileceğini ifade ettik.//

Adım 6 : Bitir (Dur) 

Akış Diyagramı (Şeması)

Algoritmanın daha önce belirlenmiş belli bir standarta göre şekiller ve sembollerle gösterilmesidir. 

Akış diyagramlarında kullanılabiecek semboller ve anlamları aşağıdaki gibidir.

Birleştirme Çizgileri Birleştirme Çizgileri

Akış yönü ve semboller arasındaki bağlantıyı göstermek için kullanılır.

Başlangıç / Bitiş Sembolü Başlangıç ​​/ Bitiş Sembolü

Programın başladığı ve bittiği konumu gösterir. Her program başla/bitir sembolü ile başlar ve biter.

Girdi / Çıktı Girdi/Çıktı:

Çevre birimleri (ekran,yazıcı,çizici,okuyucu,…) ile yapılan bilgi alış verişini simgeler. Bu türde işlemlerde kullanılır ve işlem şekil içerisine yazılır.

İşlem / Atama İşlem / Atama

Değişkenlere değer atamaları ve matematiksel veya dizgisel işlemlerin yapıldığı aşamalarda kullanılır. İşlem veya işlemler bu şekil içerisine öz olarak yazılır.

Karar Karşılaştırma ve karar:

Karşılaştırma işlemi ve sonuçta varılan karar durumuna göre akış yönünü belirleyen işlemlerde kullanılır. Kıyaslama ifadesi şekil içine yazılır, karar E (evet) veya H (hayır) simgesi ile belirtilen bir uçtan çıkan akış ile başka bir düğüme gider.

Döngü Döngü:

Birden çok tekrar gerektiren durumlarda kullanılan döngü kurgusunu simgeler. Tekrarlanacak işlem bitince akış devam eder.

Belge Sembolü Belge Sembolü

Basılı bir belge veya raporu temsil eder.

Fonksiyon Alt Yordam sembolü / Fonksiyon

Daha büyük bir süreç içinde gömülü belirli bir görevi gerçekleştiren eylemler dizisini belirtir. Bu eylem dizisi, ayrı bir akış şeması üzerinde daha ayrıntılı olarak tarif edilebilir.

Bağlantı Bağlantı Sembolü

Bir sayfaya sığmayan şemalarda veya aynı sayfa içinde karmaşık akışları engellemek için akış noktalarını bağlayan şekildir. Şekil içerisine harf veya simgeler yazılarak aynı iki harfin birbirine bağlı olduğu ifade edilir.

Yukarıda sözde kodlar ile belirtilmiş algoritmanın akış diyagramı ile gösterimi aşağıdaki gibi olacaktır.

İki Sayının Toplamı
İki Sayının Toplamı Flow Chart

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.