İçeriğe geç

Algoritma Nedir ?

Bu yazımızda algoritma nedir, günlük hayatta algoritma ve programlama da algoritma gibi başlıklara yer vererek algoritmayı açıklamaya çalışacağım. Algoritma günlük hayatımızdan çok programlama sektöründe kullanılan bir terimdir aslında. İlk olarak algoritmanın kelime anlamıyla başlayalım.

Algoritma ne demek ?

Sözlük anlamı olarak algoritma, bir sorunun çözümlenebilmesi için izlenen yolların tamamına denir. Bir problemi veya sorunu çözmek amacıyla ya da bir amaca ulaşabilmek için yapılan sıralı adımların hepsine algoritma denir.

Kodlamaya başlarken ilk ve en önemli adım olarak algoritma hazırlamak gelir. Algoritma hazırlanır çalışma yolu çizilmiş olur ve işe, projeyi geliştirmeye başlanır.

algorithm
algorithm kodlarim.com

Algoritma nasıl oluşturulur ?

  • Algoritma hazırlanırken tüm adımlar kesin olmalıdır.
  • Hazırlanan algoritma anlaşılır ve sade olmalıdır.
  • Bir algoritmanın başlangıcı ve mutlaka bir sonu olmalı.
  • Gereksiz adımlar ve boş işlemler, algoritmanın sadeliğini ve anlaşılmasını zorlaştıracağından yapılmaması gerekir.
  • Oluşturulan algoritma en az bir kere denenmeli ve test edilmelidir. Hatalar ve eksikler giderildikten sonra işleme alınmalıdır. Aksi taktirde istenmeyen durumlar gözlemlenebilir.

Hayatımızın birçok yerinde, biz farkında bile olmasak da algoritma örnekleri vardır. Bu yazımızı okuduktan sonra algoritmanın hayatımızda ne gibi bir yeri olduğunu daha net bir şekilde anlamış olacaksınız. Algoritmanın mantığını daha kolay anlayabilmeniz için kolay örnekler ile anlatımı destekleyeceğim.

Günlük rutin yaşantılarımızda karşımıza o kadar çok algoritma örneği çıkar ki farkına varsanız sizde şaşırabilirsiniz. Yolda yürürken, yemek yaparken, spor yaparken hatta duş alırken bile bir algoritmanın içerisindesiniz aslında. Daha kolay anlayabilmeniz için kısa bir örnek vermek gerekirse:

Menemen Yapımının Algoritması :

Üniversite 1. sınıfta algoritma dersinde hocamızın bizden istediği ilk algoritma alıştırması menemen algoritması idi. Tabi ilk duyduğumuzda “Menemen yapımının algoritmasını yapın.” sınıfça hepimiz gülmüştük ama daha sonra dersin ilerleyen zamanlarında algoritma yazmanın mantığını kavrayabilmek için çok önemli bir uygulamaymış. İşte bu önemli algoritma örneği:

Girdiler : Tava, tabak, domates, kaşık, yumurta, biber, ocak, masa, soğan.

  1. Başla.
  2. Masadaki tavayı ocağa koy.
  3. Ocağın alını aç.
  4. Domatesi tavaya koy.
  5. 5 dk bekle.
  6. Soğanı tavaya koy.
  7. Biberi tavaya koy.
  8. 5 dk bekle.
  9. Yumurtayı tavaya koy.
  10. Kaşık ile tavayı karıştır.
  11. 20 dk pişmesini bekle.
  12. Tavanın içindekileri tabağa koy.
  13. Tabağı masaya koy.
  14. Bitir.
menemen algoritması
menemen algoritması

Çıktılar : Tabağın içindeki menemen.

Tabi ki bu algoritma bir menemen tarifi değil. Hocamızın bizden asıl istediği şey, bir problem var (menemen yapmak) ve bu sorunu nasıl adım adım çözümleyebiliriz. Bunu bizden istemişti, tabi biz bunu daha sonrasında öğrenmiştik 🙂 .

Ne işe yarıyor bu algoritma ?

Aslında algoritma, biz fark etmesek bile birçok işimize yaramakta. Nasıl yani dediğinizi duyar gibiyim. Sebebi şu ki algoritma çözüm üretmek ve problemlerin çözümünü bulmak için yapılan adımlara denir. Yani siz bir sorunu çözerken aslında bir algoritma izliyorsunuz.

Peki programlama da algoritma ne iş yapıyor derseniz eğer, yine aynı mantık işliyor tabi ki. Diyelim ki bir kağıda küp çizmek istiyorsunuz. Küpü çizebilmek için bir kaç tane düz çizgi çizmeniz gerekiyor. Bu işlemi bilgisayar ortamında kodlama ile yapmak isterseniz eğer, her adımı ilk önce aklınızda ya da bir yere yazarak algoritmaya dökmeniz daha sonra işe başlamanız gerekiyor.

Algoritmayı oluşturan üç bölüm vardır. Bu bölümler; Başlangıç yani giriş bölümü, ağırlıklı olarak işlemlerin, döngülerin yapıldığı kısım olan gelişme bölümü ve çıktıların elde edildiği sonuç kısmı. Genelde algoritmaların başlangıcı “Başla” komutu, sonu ise “Bitir” komutu ile oluşturulur.

Algoritmaların daha kolay anlaşılabilmesi için akış diyagramları kullanılabilir. Akış diyagramları, sadece algoritmaların kolay anlaşılabilmesi için değil büyük şirketlerin bile düzenli bir sunum yapabilmek için baş vurduğu bir yöntemdir.

algoritma örneği kodlarim.com
algoritma örneği kodlarim.com

Araba yıkama algoritması :

Girdiler : musluk, hortum, fırça, deterjan, pis araba, temiz bez

  1. Başla.
  2. Hortumu musluğa tak.
  3. Musluğu aç.
  4. Hortumu arabaya tut.
  5. Arabanın her yeri ıslandıktan sonra musluğu kapat.
  6. Deterjanı fırçaya dök.
  7. Fırçayı arabaya sür.
  8. Arabanın her yeri fırçalandıktan sonra musluğu aç ve hortumu arabaya tut.
  9. Arabanın hiçbir yerinde deterjan kalmadıktan sonra musluğu kapat.
  10. Temiz bez ile camları sil.
  11. Bitir.

Çıktılar : Temiz araba.

Algoritmanın programlamadaki yeri

Algoritması olmayan bir program olamaz. Bir program kodlamaya başlamadan önce, bir algoritma oluşturmak ve bu algoritma doğrultusunda programı kodlamaya başlamamız gerekiyor. Algoritmayı oluşturduktan sonra yapılacak işlem planlandığı için işlemlerde hata olmaz ve zaman kaybı yaşanmaz. Bu da bir yazılımcı için iyi bir şey demektir. Çünkü yazılımcılar saatler hatta günlerce bir programın yapımı için uğraşabilirler.

Programı erken bir şekilde bitirmek, eğer bir şirket çatısı altında çalışıyorsa şirket için, tek başına kendi projelerini geliştiren bir yazılımcı ise de kendi için büyük bir kazançtır. Sonuçta her iki durumda da zamandan tasarruf ediyorsunuz.

Programlama dillerinin hepsinin temelinde algoritma kullanılır. Programda algoritmanın çalışması için, girdiğimiz verileri “değişkenler” olarak tanımlarız. Değişkenler, kodlarımızdaki asıl işlemlerimizi gerçekleştirdiğimiz verilerdir. Değişkenler üzerinde işlemler yaparak, ulaşmak istediğimiz sonuçlara ulaşırız ya da sorunları çözeriz.

Algoritma gerekli midir ?

Algoritma, matematik ve programlama alanlarının yanı sıra günlük hayatımızda da bize karar vermek aşamasında çok kolaylık sağlayabilir.Herhangi bir konuda karar vermekte zorlanıyorsanız algoritmik düşünerek, daha kolay ve doğru bir karar verebilirsiniz.Buna bir örnek:

Bir cevap yazın

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