ALGORİTMA NEDİR?

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.” şeklinde 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şlamadan ö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.

2. Algoritma Nasıl Yazılır?

  • Algoritmalar metinsel ifader, sözde(pseudo) kod veya akış diyagramı(şeması) şeklinde ifade edilebilir.
    • ​Metinsel İfade : Algoritmaların günlük konuşma dili ile ifade edilmesidir. Programlama dillerinin söz diziminden oldukça uzaktır.
    • Sözde (Pseudo) Kod : Günlük konuşma dili ile ifade edilmiş ifadelerin programlamaya uyarlandığı halidir.
    • 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,Dur” gibi ifadelerle 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.

2.1. Metinsel İfadeler ile Algoritma

Yukarıda da belirttiğimiz ettiğimiz gibi algoritmaları günlük konuşma dili ile ifade edebiliyoruz.  Algoritmanın metinsel ifadeler ile yazılmasına basit bir örnek verelim.

ÖRNEK : Kullanıcıdan alınan iki sayının toplamını hesaplayan programın algoritmasının metinsel olarak ifade edilmesi.

Adım 1 : Başla

Adım 2 : Birinci Sayıyı Oku         // Dışarıdan okunacak bir değerin değişkende tutulmasını ifade ettik. //

Adım 3 : İkinci Sayıyı Oku           // Dışarıdan okunacak bir değerin değişkende tutulmasını ifade ettik. //

Adım 4 : İki Sayıyı Topla              // Değişkenlerdeki değerler toplandı. //

Adım 5 : Toplamı Ekrana Yaz     //  Çıktı olarak Toplam sonucu gönderildi. //

Adım 6 : Bitir

2.2. Sözde Kod(Pseudo Code): 

Metinsel ifade ile yazılmış algoritmaların matematiksel operatörler ile programlamaya yakınlaştırılmış halidir.

ÖRNEK : Kullanıcıdan alınan iki sayının toplamını hesaplayan programın algoritmasının sözde kod olarak ifade edilmesi.

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

 

2.3. Akış Diyagramı (Şeması)

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

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

Birleştirme ÇizgileriBirleş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.

Şart - KararKarşılaştırma – Şart – 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.

FonksiyonAlt 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ı Sembolü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.

Related posts

Leave a Comment

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