Bilgisayar Mühendisliği

Algoritma Nedir? Algoritma Örnekleri

Algoritma Nedir: Bir problemin çözümü için belirtilen eylemlerin dizilimine göre sunulan prosedür veya formüldür. Mesela bir bilgisayar programı gelişmiş bir algoritmaya örnek olarak verilebilir.

Bu yazıda bizler algoritmanın tanımından ve gerçek hayatta ne işe yaradığından bahsedecek, daha sonra tüm bunların; hem gerçek hayattan hem de bilgisayar bilimlerinden çeşitli örnekler vererek en güzel şekilde anlaşılmasını sağlayacağız.

Algoritma Nedir? Ne İşe Yarar?

Bilgisayar bilimlerinde mevcut verilen bilgilerden (girdi), istenilen bilgilere (çıktı) ulaşmamızı sağlayan yöntemlere algoritma denir. Genellikle sorunları çözmek veyahut hayatı daha kolay hale getirecek şeyleri yapmamıza yarar. Ayrıca programlamada da sıkça kullanılır.

Algoritma Nedir - Ne İşe Yarar
Algoritma Nedir – Ne İşe Yarar

Algoritmaların özellikleri ise şunlardır:
➽ Algoritmalar tüm ihtimalleri ele alabilecek kadar çok boyutlu olmalıdır. İstisnai durumlarda hata vermemelidir.
➽ Fakat bunu yaparken gereksiz uzatmalar da yapılmamalıdır.
➽ Her adımdaki komutlar belirleyici, daha doğrusu net olmalıdır. Şansa bağlı bir ifade olmamalıdır.
➽ Gerekli işlemler bitince algoritma sonlanmalıdır.

Basit algoritmalar sorunlara çözüm yolları bulmanın mantığını anlatmak için kullanılırken; karmaşık algoritmalar bilgisayar ve telefonlardaki programların nasıl çalıştığının, nasıl yapıldığının ta kendisidir diyebiliriz.

Bilgisayarınızda, akıllı telefonunuzda yaptığınız tüm işlemler, oynanan oyunlar, internet siteleri, robotlar ve niceleri… Yani anlayacağınız sanal ortamdaki işlerin neredeyse tamamı algoritmalar üzerinden yürür.

Akış Diyagramı Nedir?

Akış Diyagramı Nedir: Bir problemin çözümüne yönelik izlenecek yöntemlerin yani algoritmaların şekil ve sembollerle ifade edilmesidir. Akış şemasında her adım birbirinden farklı anlamlar taşıyan şekillerden oluşur ve adımlar arasındaki ilişki oklar ile tayin edilir.

Akış Diyagramı Nedir - Ne İşe Yarar
Akış Diyagramı Nedir – Ne İşe Yarar

Bu konu, bir ton ezber bilginin arasından doğrudan mantığınızı, sorun çözme becerinizi ve yaratıcılığınızı konuşturabileceğiniz bir konu olduğu için sıkıcı değil tam aksine oldukça eğlencelidir. Gelin bir de farklı alanlardan algoritma örnekleri verelim. Zira bu konu en iyi örnekler üzerinden anlaşılır:

Algoritma Örnekleri

İlk olarak günlük hayattan örnekler vererek olayın mantığını kavramanızı sağlayacağız, ardından adım adım her örnekte bilgisayar ve yazılım dünyasına geçiş yapacak ve oralardan örnekler vereceğiz. Mesela akış diyagramı ile bir algoritma şu şekilde gösterilir:

Akış Diyagramı İle Gösterilmiş Algoritma Örnekleri
Akış Diyagramı İle Gösterilmiş Algoritma Örnekleri

Algoritmaları göstermek için tek yöntem kesinlikle akış diyagramları değildir, aynı zamanda yapılan işlemleri adım adım yazarak da bu işi yapabilirsiniz. Tıpkı şu örnekte olduğu gibi:

# Örnek-2: Çay Demleme Algoritması
Adım 1: Başla.
Adım 2: Mutfağa git.
Adım 3: Çaydanlığa su koy.
Adım 4: Çaydanlığı ocağa koy.
Adım 5: Ocağı yak.
Adım 6: Su kaynadı mı, kontrol et.
Adım 7: Cevap evet ise demliğe çay koy ve demle. Cevap hayır ise adım 5'e git.
Adım 8: 10 dakika bekle.
Adım 9: Çayı doldur.
Adım 10: Bitir.

İyi bir algoritmanın her durumda çalışması gerekir. Bu sebeple olası hata ve bug durumlarında algoritmanın düzgün bir şekilde çalışmaya devam etmesi için, koşullu ifadeler ve döngüler kullanılır. Mesela;

# Örnek-3: Sigorta Kontrol Algoritması
Adım 1: Başla.
Adım 2: Sigortayı kapat.
Adım 3: Kontrol kalemi yardımıyla prizi sök.
Adım 4: Çalışan prizi tak ve sigortayı aç.
Adım 5: Prizi kontrol et, çalışmıyorsa adım 2'ye git.
Adım 6: Bitir.

Basit örnekler olduğu için eğer bu üçü sizi kesmedi ise akış diyagramı kullanarak sizlere daha karışık bir şey gösterelim:

Problem Çözme Algoritması
Problem Çözme Algoritması

Biz bu problem çözme örneğini tebessüm ettirmek için koymuş olsak da, hiçbir algoritmada hakaret gibi duygusal ifadeler olmaz, resmi ifadeler kullanılır :) Temel mantığını anladığınızı umuyoruz. Bu dört örnek çok gündelik hayattan oldu.

Gelin adım adım bilgisayar bilimi ve programlamaya doğru geçelim. Mesela bize notlarımızı sorup, dersin ağırlıklı ortalamasını hesaplayan bir programın algoritmasını yazalım.

# Örnek-5: Ders Ortalaması Hesaplama Algoritması
# 1. sınavın ağırlığı %25, 2. sınavın ağırlığı %45, proje ödevinin ağırlığı ise %30 olsun.
Adım 1: Başla.
Adım 2: 1. sınavın notunu gir: ...
Adım 3: 2. sınavın notunu gir: ...
Adım 4: Proje notunu gir: ...
Adım 5: Ortalama değer değişkenini (1. sınav * 25) + (2. sınav * 45) + (Proje * 30) işleminin sonucuna eşitle.
Adım 6: Ortalama değerini 100'e böl.
Adım 7: Ortalama değerini yazdır.
Adım 8: Bitir.

Gördüğünüz gibi algoritma sayesinde verilen bilgilerden (sınav ve proje notları), istenilen bilgilere (ağırlıklı ortalama) ulaşmış olduk. Gelin şimdi bir tık daha yukarı çıkalım.

Engellerden otomatik olarak kaçan, insan kontrolü olmayan robotlar vardır malumunuz. Mesela robotun sensörünün algıladığı mesafeye göre kaza yapmadan hareket etmesini sağlayan robotik algoritma örneği ise şu şekildedir:

# Örnek-6: Basit Bir Robot Yapay Zeka Algoritması
Adım 1: Başla.
Adım 2: Uzaklık değişkenini her üç saniyede bir sensörden gelen verinin değerine eşitle.
Adım 3: Eğer uzaklık değeri 15 cm'den büyük ise ileri gitmeye devam et.
Adım 4: Eğer uzaklık değeri 15 cm'den küçük veya eşit ise sağa dön.
Adım 5: Pil bitince bitir.

Algoritmalar hemen birazcık üstte olduğu gibi adım adım yazılarak veyahut akış diyagramları ile ifade edilebilir. Yani aynı algoritmayı iki farklı şekilde de ifade edebilirsiniz. Mesela bu algoritmanın akış diyagramı ile ifade edilmiş şekli şöyledir:

Akış Diyagramı İle Robotik Algoritma Örnekleri
Akış Diyagramı İle Robotik Algoritma Örnekleri

Algoritma Yapım Aşamaları

Problem Tanımlama: Çözüm bekleyen bir problem bulunur ve problem detaylıca araştırılır.

Problemi Geliştirme: Problemin çözüm yolları bulunur ve içlerinden en mantıklı, en hızlı, en kısa ve en güvenilir olanı seçilir. Ayrıca gerekli görülmesi halinde çözüm daha küçük problem ve çözümlere bölünebilir.

Girdi – Çıktı Belirleme: Eğer bilgisayarlarla alakalı bir problemi çözüyor veyahut bir program hazırlıyorsanız ihtiyaç duyduğunuz veriler ve onlardan elde etmek istediğiniz verileri yani çıktıyı belirlersiniz. Buradaki girdi ve çıktılar; rakam, kelime, görsel, ses kaydı gibi çeşitli formlarda olabilir.

Çözüm Bulma: Girdilere nasıl bir işlem uygularsam istenen çıktıları elde ederim sorusunun cevabını aramaktır. Bu adım aynı zamanda algoritma nedir sorusunun cevabı niteliğindedir.

Çözüm Geliştirme: Çözüm olası hatalar, kötü şartlar, farklı durumlar düşünülerek olabildiğince çok duruma uygun bir hale getirilir. Mesela hesap makinesinde bölme işlemi yapan programı tasarlayıp 0’a bölünmeme özelliğini ekstradan eklemek buna örnek verilebilir.

Algoritmaların Tarihçesi: el Harezmi tarafından “Hisab el-cebir ve el-mukabala” kitabında geçen kavramın Avrupalılar tarafından telaffuz edilmesi sonucunda bu kavram doğmuştur. Günlük hayattaki problemleri çözerken kullanılmış ve zamanla bilgisayar bilimlerine ait kavram olmuştur.

Technogezgin.com Bilgi
Algoritma nedir – algoritma örnekleri” konulu yazımız hakkında eklemek istediklerinizi, sorularınızı ve (eğer varsa) yazıdaki yanlışları yorumlarda belirtebilirsiniz.

Bilgi güçtür, paylaştıkça büyür. Bu sebeple bu yazıyı da; yazının altındaki (logolu) paylaşım tuşlarını kullanarak gönül rahatlığı ile paylaşarak bize büyük bir iyilik yapabilirsiniz.

Ana Sayfa: 
https://www.technogezgin.com/
Hayata Dair Özgün ve Kaliteli Yazılarımız: 
https://www.technogezgin.com/blog/

MrKaptainTR

Merhabalar. Ben bu internet sitesinin sahibiyim. Aynı zamanda Hacettepe Üniversitesi'nde bilgisayar mühendisliği okuyorum. Bu sitede de; ufkunuzu açacak, bilgi hazinenizi katlayacak, bakış açınızı adeta uçuracak, “Vay be, adamlar bunu da mı yapmış?” dedirtecek cinsten içerikler üretmeye çalışıyorum.

Bir cevap yazın

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

Başa dön tuşu
Kapalı