Algoritma Nedir? Algoritma Örnekleri 2020 | TeknoTower

Rabia Yılmaz
5 min readDec 9, 2019

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? sorusunave “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.

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.

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.

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. 😊

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.

Ç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.

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.

Farklı çözümler, zenginliktir.

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.

Ö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.

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

Ö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.

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…

Originally published at https://teknotower.com on December 9, 2019.

--

--