TeknoKültürYazılım

Algoritma Nedir? Algoritma Örnekleri 2020

Yazımızda “Algoritma nedir?” sorusunu sizler için açıklayıcı ve anlaşılır bir şekilde ele alacağız. Bu yazıdan sonra algoritma nedir? sorusuna ve “belirli bir sorunun akış diyagramını çizebilir misin?” gibi sorulara rahatlıkla cevap verebileceksiniz. Algoritma için aklınızda bir şekil belirecek. Bir süre sonra günlük hayatta, zihninizde akış diyagramları oluşmaya başladığında anlayacaksınız ki algoritma her yerde. Algoritma nedir? yazımız sizlere faydalı olacaktır. Keyifli okumalar.

Algoritma nedir?

Algoritma; bir problemin, matematik veya bilgisayar bilimlerinde çözüm bulabilmesi için adım adım açıklanarak tasarlanan yoldur. Sorunun çözülmesi için adımlar belirlenir. Adımlara uygun bir şekilde işlemler yapılır. Adımlar, herkesin anlayabileceği şekilde özenle tasarlanır. Genelde, programlama dillerinde kullanılır.

Programlamanın temeli, algoritmaya dayanır.  

algoritma nedir? algoritma örnekleri TeknoTower
Algoritma nedir? TeknoTower

Kısaca algoritma, elimizde var olanlarla sonuca ulaşma şemasıdır. Kodlama, bu tarife, yani algoritmaya bakılarak yapılır. Kod yazarken asıl zor kısım, algoritma çıkarmaktır.

Her program, aynı sorun için tek bir yoldan gitmez. Aynı sorunun birden fazla yolu olabileceği gibi algoritmaları da çeşitlidir. Burada önemli olan, sorunun çözülmesi için başlatılan algoritmanın son bulabilmesidir. Sonsuza kadar işleyen süreçlere, algoritma denemez.

Algoritma nedir? Programlama
Algoritma nedir? Programlama

Her algoritmanın bulundurması gereken genel özellikler:

  • Her algoritma, başlatılmalıdır.
  • Her bir adım, açık bir şekilde sırayla yazılmalıdır.
  • Tüm koşullar göz önünde bulundurulmalıdır ve genel olmalıdır.
  • Belirli adımlar bittikten sonra program sonlanmalıdır.

Algoritmada ana 3 kısım vardır. Bunlar; değişkenler, algoritma(gidişat) ve akış diyagramıdır.

Algoritma nedir? Nasıl geliştirilir?
Algoritma nedir? Nasıl geliştirilir?

NOT: Algoritmayı bulan kişi, Türkistanlı Alim Ebu Abdullah Muhammed bin Musa el Harezmi’ dir. Yazdığı kitap, Avrupalılar tarafından çok sevilmiştir. Algoritma için kullandığı kelimenin telaffuzu zor olduğundan, “Algorizm” adını vermiştir. Zamanla bu terim, algoritma adını almıştır.

Not: Algoritma bir programlama dili değildir. Programlama dilleri için yol gösteren, mantıksal adımlar dizisidir.

Akış Diyagramları

Çözülecek problemin, çözüm süreçlerinin şekillendirilmiş haline akış diyagramı denir. Bu diyagram, sürecin parçalarını ve parçalar arası ilişkiyi gösteren ve anlaşılmasını kolaylaştıran şekillerdir. Kodlama eğitimlerinde, kodlamaya başlamadan önce bolca akış diyagramları çizdirilir. Bilgisayar programlarında da algoritma oluşturulmadan önce akış diyagramı oluşturulur. Ardından algoritmalarla içleri doldurulur. Programlama üzerinde çokça iş yapmış ve algoritma mantığını oturtan insanlar bu adımları zihninden yaparak direkt yazılımlarını geliştirmeye geçerler. Bu kişilerden biri olmak için bolca örnek yapmak, vazgeçilmezdir. 😊

Algoritma nedir? Akış diyagramları nasıl yapılır?
Algoritma nedir? Akış diyagramları nasıl yapılır?

Değişkenler

Değişkenler, verileri tutması için hafızada açılan kutucuklara verdiğimiz isimlerdir. Bilgisayarın, aynı anda iki değişkenin verisini tutabilmesini de kolaylaştırır. Bunu algoritma örneklerinde daha iyi anlayacaksınız. Değişkenlerin tipleri (integer, string, float, boolean vb.) ve boyutları aynı olmayabilir. Örneğin, sayılar için açılan kutucuğa karakter yani harf yerleştirilemez (atanamaz). Denenirse, hata alınır. Fakat, her dilde oluşturulan değişkenin tipini belirtmek, zorunlu değildir. Bu, programlama dilinin yapısına bağlıdır.

Günlük Hayattan Basit Algoritma Örnekleri

En basitinden çay demleme süreci. Günlük hayatta çoğumuz çay demlemişizdir. Ama kimse, çaydanlığı su doldurmadan ocağın üstüne koymamıştır. Ya da suyu açıp, çakmağı da çeşmeye tutmamıştır. Bu, hayatında hiç çay demlememiş birinin bile kolay kolay yapmayacağı bir davranış olurdu. Yine de küçük bir oran bırakalım. :))

Aşağıdaki örneklerin çok basit olduğunu düşünebilirsiniz. Sakın göz ardı etmeyin. Algoritma nedir sorusunun cevabını anlamak için büyük önem taşıyorlar.

Çay Demleme Algoritması

Alışkın olduğumuz bu basit sürecin algoritmasını, milisaniyeler içinde aklımızda tasarlarız. Şunun gibi:

  1. Çaydanlığı bul.
  2. Temiz mi? Kontrol et.
  3. Temiz ise devam et. Değilse Temizle.
  4. Su bölümüne yeterince su doldur.
  5. Ocağı yak.
  6. Su dolu çaydanlığı, yanan ocağın üstüne koy,
  7. Suyun kaynamasını bekle.
  8. Su kaynadıysa demliğe çay koy.
  9. vs. vs. vs.vs.
Algortima nedir? Çay demleme algoritması.
Algortima nedir? Çay demleme algoritması.

Çay demleme algoritmamızın bir bölümünü yazılı olarak oluşturduk. Maksat, anlaşılmıştır diye düşünüyorum.

Bu gibi durumlarda, fark etmesek de hepimiz, algoritmik düşünerek hareket ediyoruz. Tabi üstteki çılgınlığı yapabilecek olanlar, hariç. :)

Ekmeğe Reçel Sürme Algoritması

Başka bir örnek vermek gerekirse; ekmeğe reçel sürmek… Şimdi bu basit sorunu beraber ele alalım. Birinden nasıl isteriz bunu? “Ekmeğe reçeli sür!” komutunu kullanırız. Anlamasını bekleriz ve büyük bir ihtimalle anlamıştır.

Şimdi, sorular sorarak koşulları değerlendirelim:

Ekmek var mı? Kişi bunu kontrol etmedi. Hadi, ‘var’ diyelim. Ekmeği aldım. Elimde bütün bir ekmek var. Sonuçta alınan ekmeğin kesilip kesilmediği belli değil. ‘Ekmeğe reçeli sür’ komutunu verdiğimiz kişiye de bunu belirtmedik. Elimde hala tam bir ekmek var. Reçel kavanozunu aldı ve tam ekmeğe sürdü. Evet doğru, çünkü biz bunu dedik. Ama bunun yerine aşağıdaki şekilde belirtirsek, daha açıklayıcı olacaktır.

  • Ekmek var mı kontrol et? Yoksa bakkaldan al.
  • Ekmek bütünse kendine yetecek kadarını bıçakla kes.
  • Ekmeğin istediğin kısmına bıçak / çatal ile reçel kavanozundan aldığın reçeli sür.

Peki oldu mu? Hayır olmadı. İşi yapacak kişi, ekmek yoksa bakkala gitti ve geri dönmedi. Kavanozda reçel var mıydı? Bilmiyoruz. Peki reçel kavanozu var mıydı? Bunu da bilmiyoruz. Bıçağı, nasıl tutacağını ve ekmeği nasıl kesmesi gerektiğini dahi söylemedik. Günlük hayatta biz bu işi yaparken, adım adım ne yapmamız gerektiğini biliyoruz.

Burada önemli olan bildiğimizi algoritma ile uygun bir şekilde açıklayabilmek. Bunları tam anlamıyla yaptığımızda, tüm koşullar göz önüne alınmış olur. Bilmeyen birine açıklanabilir. Bu süreci bir yazılıma ya da robota yaptıracağınızı düşünebilirsiniz.

Bu şekilde düşünerek, örnekler çözmek, kendimizi algoritma açısından daha da geliştirmemizi sağlayacaktır. Bu arada işi yapacak kişide para var mıydı? Bakkalın yolunu biliyor muydu? Peki bıçağın yerini biliyor muydu, biliyorsa boyu yetiyor muydu? Küçük bir çocuğa da anlatıyor olabiliriz. Düşündükçe koşullar artıyor. 😊

Farklı çözümler, zenginliktir.

Problem çözümlerinde, herkesin oluşturduğu algoritma aynı olmak zorunda değil. Düşünceler, gidişat, yollar farklı olsa da sonuç aynı olabilir. Matematik’ te ve normal hayatta olduğu gibi bir sorunun birden fazla çözümü olabilir.

Peki böyle garip örnekleri neden verdim? Proje geliştirirken atmamız gereken adımlara, bütün şekilde bakabilmek ve en uygun şekilde tasarlamak gerekir. Biz sıralarken, çay demleme ve reçel örneğindeki gibi eksik ya da sırasız yazarsak, bilgisayarın anlayacağı kafamızdaki ile aynı olmayacaktır. Bu anlama ve anlatabilme özellikleri, geliştiriciye aittir.

Algoritma örnekleri

Örnek 1 : 1’den 100’e kadar olan sayıların, toplamını bulup sonucu ekrana yazan işlemin algoritmasını ve akış diyagramını tasarlayalım.
Değişkenler; sayaç: x , toplam değeri :t

Algoritma:

  • Adım 1: Başla
  • Adım 2: Döngüyü başlat (x=1 den 100 e kadar)
  • Adım 3: t=t+x işlemini yap.
  • Adım 4:Döngüyü sonlandır.(x değeri 100 e ulaştığı zaman)
  • Adım 5: Toplam (t) değerini yaz.
  • Adım 6: Bitir.

Örnek 2: Klavyeden girilen 3 notun ortalamasını hesaplayıp ekrana öğrencinin geçme/kalma durumunu yazdıran algoritmanın akış diyagramı.

Başla

  • Adım 1: 1. yazılıyı giriniz(y1)
  • Adım 2: 2. yazılıyı giriniz(y2)
  • Adım 3: 3. yazılıyı giriniz(y3)
  • Adım 4: toplam=y1 + y2
  • Adım 5: ortalama=toplam + y3
  • Adım 6: ortalama= ortalama / 3(sınav sayısına göre değişkenlik gösterir)
  • Adım 7: Eğer ortalama 45’ten küçük ise(ortalama < 45)
  • Adım 8: Ekrana yazdır: “kaldı”
  • Adım 9: Eğer ortalama 45’ten büyük ise(ortalama > 45)
  • Adım 10: Ekrana yazdır: “geçti”
  • Adım 11: Dur(Stop)

Örnek 3(Koşullu): Yaşı girilen kişinin, yaşı 18 den büyük ise ehliyet alabilirsiniz yazdıran akış şemasını tasarlayınız.

Algoritma nedir? Akış diyagramları. Girilen sayı çift mi tek mi?
Algoritma nedir? Akış diyagramları. Yaşı alınan birinin ehliyet alıp alamamasını gösteren akış diyagramı.

Örnek 4 : Girilen sayı 0 dan büyük ise “pozitif” küçük ise “negatif” sıfıra eşit ise ”sıfır” mesajını verdiren akış şemasını tasarlayınız.

Algoritma nedir? Akış diyagramları. Girilen sayı pozitif mi negatif mi?
Algoritma nedir? Akış diyagramları. Girilen sayı pozitif mi negatif mi?

Örnek 5 : Girilen sayının karesini hesaplayan algoritma ve akış diyagramını tasarlayınız.

Algoritma nedir? girilen sayının karesini çıktı olarak veren akış diyagramı.
Algoritma nedir? girilen sayının karesini çıktı olarak veren akış diyagramı.

Örnek 6 : Girilen sayının çift mi tek mi olduğunu belirleyen algoritma ve akış diyagramını tasarlayınız.

Çift mi tek mi? Algoritma nedir?
Çift mi tek mi? Algoritma nedir?

Önemli algoritma türleri

  • Arama algoritmaları,
  • Bellek yönetimi algoritmaları,
  • Bilgisayar grafiği algoritmaları,
  • Birleşimsel algoritmalar,
  • Çizge algoritmaları,
  • Evrimsel algoritmalar,
  • Genetik algoritmalar,
  • Kripto algoritmaları veya kriptografik algoritmalar,
  • Kök bulma algoritmaları,
  • Optimizasyon algoritmaları,
  • Sıralama algoritmaları,
  • Veri sıkıştırma algoritmaları gibi önemli örnekler vardır.

Algoritma Neden Gereklidir?

Yazılan ya da geliştirilen bir yazılımda önemli olan iki konu vardır. Bunlar; zaman ve hafıza karmaşıklığıdır.

Zaman karmaşıklığı, programın yaptığı işlemin, n olarak belirttiğimiz değişkene göre harcayacağı süredir. Örneğin, bir döngüyü düşünelim. 10 defa dönmesi istenirse, 10 defa işlem yapılır. 5 ise 5 defa yapılır. bu durumda döngünün karmaşıklığı ‘n‘ olur.

Hafıza karmaşıklığı, algoritmayı çalıştırmak için bilgisayardan alınan hafızadır. Alınan bu hafıza, maliyeti belirler. Ne kadar az hafıza, o kadar az maliyet. Böylece programın verimliliği ölçülmüş olur.

Kısaca belirttiğim bu iki durum, ne kadar optimum düşünülür ve ayarlanırsa verimlilik o kadar artar. Bunu belirlemek için algoritmaya ihtiyacımız vardır.

ÖDEV

Kullanıcıdan alınan 50 sayının, ortalamasını çıktı olarak veren algoritmayı oluşturalım. Çözümleri ve izlediğiniz yolu, yorum olarak paylaşabilirisiniz.

Bu yazımda, beraber Algoritma nedir? sorusunu inceledik. Umarım faydalı olmuştur. Algoritma türleri ile ilgili detaylı açıklama isterseniz belirtebilirsiniz. Farklı kategorilerdeki yazılarımıza göz atmak için Blog‘ a geçebilir, instagram ya da Twitter sayfalarımızı takip edebilirsiniz. Sağlıcakla kalın…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu