Genellikle matematik ve bilgisayar alanlarında karşımıza çıkan algoritma terimi, bir problemi çözmek ya da belirlenen bir amaca ulaşabilmek için tasarladığımız bir yol haritasıdır. Yani kısaca başlangıcı ve sonu belli olan işlemler kümesidir. Bu işlemler tanımlanırken açık bir dil kullanılmalıdır ve genel olarak algoritmalar giriş bölümü, işlemlerin döngüye girerek sonuçlandığı bölüm ve sonuçların alındığı bölüm olmak üzere üç ayrı kısımdan oluşur.

Tarihteki ilk algoritma El-Harezmi’nin 9. yüzyılda cebir üzerine yazdığı ‘Hisab-el Cebir ve El Mukabala’ kitabında oluşturulmuştur. Algoritma adı ise Avrupalıların El-Harezmi ismini telaffuz edememesinden dolayı oluşmuştur. Ayrıca bu kitap dünyanın ilk cebir kitabıdır.

En çok kullanıldığı alanlar matematik ve bilgisayar bilimleri olsa da aslında hayatımızın hemen hemen her alanında algoritma mantığı ile ilerleriz. Örneğin biyolojik sinir ağları, elektrik devresi ve mekanik cihazlar gibi sistemler de algoritma mantığı ile çözümlenir. Günlük yaşantımızda karşılaştığımız herhangi bir sorunu düşünelim. Örneğin bu çamaşır makinenizin çalışmaması olsun. İşte bu durumda bile çözüme ulaşmak için beynimiz bir yol haritası çizer, yani algoritmaları kullanır. Yemek yaparken de tarife uygun bir şekilde ilerlememiz başka bir örnek olarak verilebilir.

Matematikte işlem basamaklarını takip ederek sonuca ulaşma durumu bir algoritmadır. Örneğin (2+5).3 işlemini yaparken önce parantez içindeki işlemi yaparız. Sonrasında da çarpma işlemini yaparak sonuca ulaşırız.

Bilgisayar biliminde ise kullandığımız tüm programlama dillerinin temelinde algoritma vardır. Algoritmalar, programlama dilleri ile somutlaşır. Bilgisayarımızdaki bir algoritmanın işleyebilmesi için sisteme verilen tüm girdilere değişken denir ve algoritmalar bu değişkenler üzerinden işlemeye başlar. Ayrıca algoritmanın sorunsuz çalışabilmesi için tüm ihtimallerin belirlenmiş ve net olması çok önemlidir.

Algoritmaların kullanım amacı bize büyük bir kolaylık sağlamalarıdır. Hem hayatımızdaki işleri düzenli ve planlı yapmamızı hem de matematik ve programlama alanlarındaki karmaşık problemleri basite indirgememizi sağlar.

Herhangi bir algoritma yazmak ve geliştirmek için izlenmesi gereken bazı adımlar vardır.

  • Öncelikle, yazdığımız algoritmanın dili anlaşılır ve net olmalıdır.
  • Bütün ihtimaller hesaplanmalı ve algoritmaya işlenmelidir. Olasılıklara yer verilmemelidir.
  • Düzenleme yapılırken algoritmanın adımlarında büyük değişiklikler yapılmamalıdır. Çünkü bu durum hata oluşumuna neden olabilir ve algoritmanın çalışma düzeni bozulabilir.
  • Algoritmanın sonsuz döngülere girmediği kontrol edilmelidir.

Algoritmaların Gösterimi

Algoritmalar, metin halinde yazılabileceği gibi aynı zamanda akış diyagramları ile de görselleştirilebilirler.

Metin halinde gösterilen bir algoritmaya örnek vermek için (A-B)/C gibi bir işlem tanımlayalım. Bu durumda değişkenlerimiz kullanacağımız sayılar, çıkarma işlemi ve bölme işlemi olacaktır. Öncelikle değişkenlerimizi sisteme tanıtmamız gerekir.

  • Adım 1: Başla
  • Adım 2: A sayısını oku
  • Adım 3: B sayısını oku
  • Adım 4: C sayısını oku
  • Adım 5: Çıkarma= A-B
  • Adım 6: Bölme= Çıkarma/C

Akış diyagramı örneği için de A+B işlemini tanımlayalım.

Akış Diyagramlarında Kullanılan Şekillerin Anlamı

  • Buradaki elips şekli, algoritmanın başlangıç ve bitiş noktalarını ifade eder.
  • Eşkenar dörtgen ise karar verme noktalarında kullanılır.
  • İşlem ya da bir eylemi gerçekleştirme noktasında ise dikdörtgen şeklinden yararlanılır.
  • 4. şekil ise çıktı alınması gereken yerlere eklenir.
  • Paralelkenar algoritmaya bir bilgi girişi yapılacağı anlamına gelir.
  • Son olarak çember ise bağlantı aracı olarak kullanılır.

Nedir? kategorisindeki diğer içeriklerimizi okumanızı da tavsiye ederiz.

Yazar Hakkında

Sena EFENDİOĞLU

2018 yılında Sakarya Üniversitesi Makine Mühendisliği bölümünden mezun oldum. 2019 yılından itibaren de Gebze Teknik Üniversitesi'nde yine kendi alanımda yüksek lisans eğitimime devam ediyorum. Ayrıca benimühendisim.com platformunda da sizlere kaliteli içerikler sunabilmek amacıyla yazarlık ve editörlük görevlerimi severek yerine getiriyorum. Yapay zeka teknolojileri, robotik ve mühendislik konularını ilgi alanım arasında sayabilirim. Bunlara ek olarak kişisel gelişim alanında içerikler oluşturmaya da özen gösteriyorum.

Tüm Makaleleri Göster