Bilgisayarlara hangi işin nasıl yapılacağını belirten işlemlere kısaca komut adı verilir.
Algoritma Nedir?
Bir problemin çözülmesi için izlenen yola algoritma denir.
Başka bir deyişle algoritma belirli bir kurala bağlı olan her türlü hesap işlerine verilen addır.
Matematikte ise algoritma bir sorunun yanıtını ya da bir problemin çözümünü sonlu sayıda aşmada veren sistematik yöntemdir.
Algoritma kelimesi IX.yy’ın başında yaşamış olan ünlü Türk matematikçilerinden Muhammed ibni Musa El-Marezini”nin isminden türetilmiştir. Avrupalıların El-Marezmi’nin ismini “Alkhorismi” biçiminde söylemlerinden Algoritma kelimesi doğmuştur.
Basit bir algoritma örneği; Bir sayının karekökünü bulma
324 sayısının karekökünü basit işlemlerle bulmaya çalışalım;
- İlk önce bir tahmin yapılır. Tahmin edilen sayı 15 olsun
- Tahmin doğruluğu denenir 324 ÷ 15 = 21,6
- Çıkan sonuçla tahmin edilen 31.6 + 15 = 36.6
- Sayının ortalaması alınır. 36.6 ÷ 2 = 18.3
- Yeni sonuç tekrar denenir 324 ÷ 18.3 = 17.7
- Tekrar ortalama alınır 17.7 + 18.3 = 36
- 36 ÷ 2 = 18
- Yeni sonuç tekrar denenir. 342 ÷ 18 = 18
Tahmin edilebildiği gibi algoritmalarla hesap makineleri arasında sıkı bir bağ vardır. Öyle ki makineyle yapılabilen herhangi bir işlem bir algaritma şeklinde yazılabilir. Aynı şekilde şimdiye kadar kurulmuş bütün algoritmalar hesap makinasıyla yapılabilir.
Bununla birlikte bilgisayar alanında da problem çözümü için algoritmalardan oldukça fazla yararlanılır.
Bilgisayar kullanarak problem çözerken ilk yapılacak iş problemi anlayarak analiz etmek ve çözüm yollarını ortaya koymaktır. Bilgisayarlar henüz problemin nasıl çözüleceği konusunda insanlara yardımcı olamıyor. Sadece insanların çözüm için gösterdiği yollardan giderek komutları hatasızca uygulamaktadır. Bilgisayarın doğru sonuca ulaşabilmesi için kendisine gösterilen çözüm yolunda hiçbir belirsizlikle ve karışıklıkla karşılaşmaması gerekir. Bu nedenle hazırlanacak çözüm yolunda her türlü detay bulunmalı ve karşılaşılabilecek değişik durumlarda bilgisayarın çözüme nasıl devam edeceği bildirilmelidir.
Problem çözümü için bilgisayara verilen çözüm yöntemleri birer algoritmadır.
Çok çeşitli algoritmalar vardır. Örneğin iki sayının en büyük ortak bölenini bulma “öklid algoritması” olarak bilinir. Ayrıca bilgisayar alanında ve otomatik hesap makinalarında algoritmalardan çokça yararlanılır.
Algoritmanın Özellikleri Nelerdir?
- Girdi Bilgisi: Algoritmaya dışarıdan verilen sıfır yada daha fazla girdi bilgisi olabilir.
- Çıktı Bilgisi: Bir algoritma en az bir tane çıktı bilgisi üretmek zorundadır. Her algoritmanın ürettiği bilgi kullanıcı tarafından her zaman istenen bilgi değildir. Bu yüzden bir algorimanın çıktı bilgisi bir başka algoritmaya girdi bilgisi olarak gönderilir ve istenilen sonuç elde edilir.
- Kesinlik: Algoritmadaki her bir komut açık ve belirsizlikten uzak olmalıdır. Gerçek yaşamda sonuçlar bazen çok kesin olmayabilir ancak algoritmada kesin olmalıdır.
Verilen 5 sayının toplamını bulan bir algoritma aşağıdaki gibidir.
A0. Başla
A1. Sayıların toplamını 0 al
A2. Sayı miktarını 0 al
A3. Sayıyı öğren
A4. Öğrendiğin sayıyı sayıların toplamına ekle ve sonucu sayıların toplamına ata
A5. Sayı miktarını 1 arttır ve sonucu sayı miktarı olarak ata
A6. Eğer sayı miktarı 5'den küçük ise A3'e git.
A7. Sayıların toplamı olarak sayıların toplamını belirt.
A8. Dur
Aşağıda yukarıdaki algoritmanın adım adım çalıştırıldığında değişkenlerin aldığı değerler verilmiştir.
Sayı sütünu kullanıcının girdiği değerleri göstermektedir. Algoritmanın her adımında kullanıcının girdiği değerlere göre sayıların toplamı ve sayı miktarı hesaplanmaktadır.
Örnek: Bir işyerinde başvuruda bulunan belirsiz sayıdaki kişilerden geçerli başvuruda bulunan aday sayısını bulan algoritmayı oluşturunuz. Başvurunun geçerli olması için kişinin askerliğini yapmış 35 yaşından küçük ve ingilizce biliyor olması gerekmektedir.
Çözüm:
A0: Başla
A1: Aday sayısını 0 al
A2: Adayın cinsiyetini öğren
A3: Eğer erkek ise A4'e git. Aksi halde A11'e git
A4: Adayın yaşı 35'den küçük mü?
A5: Yanıt evet ise A6'ya git. Aksi halde A16'ya git.
A6: Aday askerliğini yapmış mı?
A7: Yanıt evet ise A8'e git. Aksi halde A16'ya git.
A8: Aday ingilizce biliyor mu?
A9: Yanıt evet ise A10'a git. Aksi halde A16'ya git.
A10: Aday sayısını 1 arttır ve sonucu aday sayısı olarak ata. A16'ya git
A11: Adayın yaşı 35'den küçük mü?
A12: Yanıt evet ise A13'e git. Aksi halde A16'ya git
A13: Aday ingilizce biliyor mu?
A14: Yanıt evet ise A15'e git. Aksi halde A16'ya git
A15: Aday sayısını 1 arttır ve sonucu aday sayısı olarak ata
A16: Başka aday var mı?
A17: Yanıt evet ise A2'ye git.
A18: Geçerli aday sayısı olarak aday sayısı değerini belirt.
A19: Dur
Akış Diyagramları
Akış diyagramları algoritmanın okunurluğunu arttırmak için kullanılan sembollerdir. Akış diyagramlarında başla/dur, işlem akış yönü, veri giriş simgesi, çıkış simgesi, işlem simgesi ve karar kutusu gibi semboller kullanılır.
Şekilde akış diyagramı sembolleri yer almaktadır.
Örnek: 1'den 20'ye kadar (20 dahil) olan her bir tamsayının karesinin sonucunu bildiren algoritmayı ve akış diyagramını oluşturun.
A1: Başla
A2: Sayının başlangıç değerini 0 al.
A3: Sayının değerini 1 arttır ve sayıya ata.
A4: Sayının değeri 21 ise A8'e git.
A5: Sayıyı sayı ile çarp
A6: Elde ettiğin sonucu belirt.
A7: A3'e git.
A8: Dur
1'den 20'ye kadar (20 dahil) olan her bir tamsayının karesinin sonucunu bildiren akış diyagramı
Örnek: Bir sayının faktoriyelini hesaplayan algoritma ve akış diyagramını çiziniz.
A1: Başla
A2: Faktoriyeli hesaplanacak sayıyı öğren
A3: Sayıların çarpımı ve sayı miktarı 1 olsun
A4: Sayıların çarpımını sayı miktarı ile çarp ve sonucu sayıların çarpımına ata
A5: Sayı miktarını 1 arttır ve sonucu sayı miktarına ata
A6: Sayı miktarı faktoriyeli hesaplanacak sayıdan küçük veya eşit ise A4'e git
A7: Sayıların çarpımını faktoriyel olarak belirt
A8: Dur
Örnek: Bir okuldaki 1000 öğrencinin anne ve babalarının ayrı ayrı eğitim düzey yüzdelerini bulan bir algoritma yazınız ve akış diyagramını çiziniz.
A1: Başla
A2: Lise mezunu anne sayısını ve üniversite mezunu anne sayısını 0 al
A3: Lise mezunu baba sayısını ve üniversite mezunu baba sayısını 0 al.
A4: Öğrenci sayısını 0 al
A5: Öğrencinin annesinin eğitim durumunu öğren
A6: Öğrencinin annesi lise mezunu ise lise mezunu anne sayısını 1 arttır
A7: Öğrencinin annesi üniversite mezunu ise üniversite mezunu anne sayısını 1 arttır.
A8: Öğrencinin babasının eğitim durumunu öğren
A9: Öğrencinin babası lise mezunu ise lise mezunu baba sayısını 1 arttır
A10: Öğrencinin babası üniversite mezunu ise üniversite mezunu baba sayısını 1 arttır.
A11: Öğrenci sayısını 1 arttır
A12: Öğrenci sayısı 1000'den küçük ise A5'e git aksi halde A13'e git
A13: Lise mezunu annelerin yüzdesini bul ve belirt
A14: Üniversite mezunu annelerin yüzdesini bul ve belirt
A15: Lise mezunu babaların yüzdesini bul ve belirt
A16: Üniversite mezunu babaların yüzdesini bul ve belirt
A17: Dur
Yorumlar0
Henüz Yorum Yapılmamış.Yorumlarınızı bekliyoruz
Yorumlarınızı Bekliyoruz
Yorum Yazın
Yorum Yapın