Algoritma Nedir?
Algoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi'den gelir. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala" kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür. Alimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları kullanarak aritmetik problemler çözme kuralları" manasında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel kapsamda kullanılır.
Algoritmalar
Bir problemin çözümünde izlenecek yol anlamına gelir ve problemin çözümünün adımlar halinde yazılmasıyla oluşturulur. Algoritma basamaklarının bir başlangıcı ve sonu bulunur. Her adımda yapılacak işlem açıkça belirtilir.
Bilgisayarlar problemleri tıpkı insanlar gibi çözmeye çalışır. Kullanıcı tarafından kendisine verilen komutları adım adım uygulayarak problemin çözümüne ulaşır. Kullandığımız yazılımların tamamı «kod» adı verilen bilgisayarın anlayacağı dilde yazılmış özel komutlardan oluşur. Bu kodlar bilgisayar yazılımcıları tarafından yazılır.
Algoritmalar gerçek hayat problemlerinde çözüm üretmek için kullanılabilir, aynı zamanda bilgisayar yazılımları hazırlamadan önce yazılımın genel hatlarını, nasıl çalışacağını belirlemek içinde kullanabiliriz.
Şimdi çok basit bir algoritma oluşturalım.
Akış Şeması (Akış Diyagramı)
Yapılacak olan adımların grafiksel veya şekilsel olarak ortaya koyulmasıdır. Bu işlem geometrik şekillerle ifade edilir ve her şekil yapılacak olan işlemi gösterir. Örnek verecek olursak yukarıdaki algoritmanın akış şeması şöyle olabilir:
Akış Şemaları için Kullanılan Semboller;
Akış Şeması Çizilirken Dikkat Edilecek Noktalar
- Diyagram her zaman başla ve bitir deyimlerini ifade eden şekil ile başlar ve sonlanır.
- Şekiller birbiriyle orantılı olacak şekilde, muntazam mümkünse bilgisayar ortamında çizilir.
- Akışı yönlendiren oklar her zaman şekillerin ortasına gelecek şekilde konumlandırılır.
- Kullanılan değişkenler ve yapılan hesaplamalar şekillerin içerisinde belirtilir.
Akış Diyagramlarının Sınıflandırılması
1-Doğrusal Akış Diyagramı: Diyagramın giriş-işlem-çıkış şeklinde doğrusal bir yol izleyerek sonlandırıldığı en basit akış diyagramıdır.
Örnek: Klavyeden girilen iki sayıyı toplayıp ekrana yazdıran programın akış şemasını çizeceğiz. Önce algoritmasını yazalım.
Akış şeması da şu şekilde olacaktır:
Örnek: Girilen iki sayının ortalamasını bularak, ekrana yazdıran Algoritmanın akış şeması.
2- Mantıksal Akış Diyagramı: İçerisinde Karar, Kontrol, Karşılaştırma Mekanizmaları bulunan kollara ayrılmış akış diyagramlarıdır.
Örnek: Girilen sayının tek mi, çift mi olduğunu gösteren Algoritmanın akış diyagramı.
Lamba Kontrol Etme Algoritması
Örnek: Işıklara geldiğinde otomobile ne yapması gerektiğini söyleyen akış şeması (Sadece yeşil ve kırmızı renk için düşünelim)
Örnek: Klavyeden girilen iki sayıdan büyük olanını ekrana yazdıran programın algoritması:
ADIM 1: BAŞLA
ADIM 2: A ve B sayısını oku
ADIM 3: Eğer A>B ise A’yı ekrana yaz değilse B’yi ekrana yaz
ADIM 4: BİTİR
Örnek: İç açıları girilen üçgenin nasıl bir üçgen olduğunu ekrana yazan akış diagramını çiziniz.
3- Döngüsel Akış Diyagramı: Çözüme ulaşmak için bazı adımların birçok kez tekrar edildiği akış diyagramlarıdır.
Örnek: 5 basket atma algoritması
Örnek: Girilen 10 adet sayının toplamını bularak ekranda gösteren Algoritmanın akış şeması.
Özellikle döngüsel akış diyagramlarında bir tablo hazırlanarak, adım adım değişkenlerin aldığı değerlerin kaydedilmesi çözümün daha kolay anlaşılmasını sağlar.
Örnek: Şimdi Minecraft oyunundaki Steve karakterine dört blok olacak şekilde duvar ördürelim. Bunun için döngü(tekrarlama) kullanacağız.
Sorular:
- Algoritma Nedir?
- Kod Nedir?
- Komutlar neden oluşur?
- Algoritmalar ne için kullanılır?
- Doğrusal bir Akış Diagramı çiziniz.
- Doğru sembollerle bir Akış Diagramı çiziniz.
- Bir Formülünün Akış Diağramını çiziniz.
Algoritma Çizebileceğiniz Online Yazılımlar
Kaynaklar:
- https://tr.wikipedia.org/wiki/Algoritma
- http://www.kodlamamerkezi.com/algoritma/akis-diyagrami-ve-ornekleri/