- İşin yapılma sırasının belirlenmesidir.
- İş, en küçük etaplara ayrılır.
- Olası tüm hataların tespit edilmesi, gerekli kontrollerin yapılması gerekir.
- Algoritmanın yönü belirlenmelidir
- Veri girişi
- Kararlar
- İşlemler
Algoritma, bir işin hangi etaplardan geçilerek yapılacağını gösteren çalışma planıdır. Algoritma bir programlama dili değildir. Programlama dillerine yol gösteren bir yöntem dizisidir. Her dilde algoritma yazılıp uygulanabilir. Örneğin bir cep telefonunun el kitapçığında yazan, rehber kaydı girmek için izlenecek yollar, o işin algoritmasıdır.
Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritma, tüm ihtimalleri kontrol edip istenmeyen durumlarda ne yapılması gerektiğini belirtmesi gerekir.
Örneğin, bir e-ticaret uygulamasında ürün satış algoritması çıkarılır. Satın alınacak ürün seçildikten sonra, kullanıcıdan adet miktarı bilgisi alınır. Uygulama yazılırken, bu değerin Int16 veri tipinde olacağına karar verildiği düşünülürse; kullanıcının girdiği adet miktarı bu değişkene atanmadan önce kontrol edilmelidir. Eğer Int16 veri tipinin tutamayacağı bir değer girilmişse, çalışma anında uygulamanın beklenmedik şekilde durduğu ya da istenmeyen sonuçların üretildiği gözlemlenir. Ayrıca sistemin verdiği hata, kullanıcının anlamayacağı bir mesaj içereceği için, uygulamanın imajını da kötü yönde etkiler.
Veri girişi
Çalışma zamanında çoğu zaman, işleyişin tamamlanması için dışarıdan bir bilgi girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan kişiden veya belirtilen bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam etmez.
Kararlar
Karar ve kontrol yapıları algoritmanın akışını yönlendiren en önemli kavramlardır. Girilen veya işlem sonucunda elde edilen veriler, işlemin amacına göre kontrol edilir ve sonuca göre algoritma akışı istenilen yere yönlendirilir.
İşlemler
Algoritmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları gibi işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek tek yazılması okunabilirliği arttırır.
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği müddetçe, bir sonraki adım ile işlemeye devam eder.
Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma
- Telefon kulübesine git
- Telefon kartı al
- Telefon sırasında kaç kişi olduğuna bak
- Kişi sayısı sıfırdan fazlaysa 3 e dön
- Kapı kapalıysa kapıyı aç
- İçeri gir, kapıyı kapat
- Telefon kartını telefona yerleştir
- Ahizeyi kaldır
- Numarayı çevir
- Konuşmanın bitip bitmediğine bak
- Konuşma bittiyse kartı al, bitmediyse 10 a dön
- Bir daha konuşma yapılacaksa 7 e dön
- Kapıyı aç, dışarı çık
Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere yönlendirilir. Örneğin kapının kapalı olması durumunda kapıyı açmak için gerekli komutlar verilmelidir. Bu algoritmanın ihtiyaç duyduğu veriler, ya kullanıcı tarafından verilir ya da işlem başlamadan önce belirlidir. Sıradaki kişi sayısı, telefon kartı gibi veriler kullanıcı tarafından sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir
Dump Coding Nedir?
- Karışık algoritmaların çözümlenmesi
- Değişkenlerin değerleri yazılarak işleyiş takip edilir.
Örnek: İki sayının OBEB ini (ortak bölenlerin en büyüğünü) alan algoritmalardan bir tanesi Euclid tarafından geliştirilmiştir.
- İki sayı Büyük A, küçük B
- A sayısı B sayısına böl. Tam bölünüyorsa, OBEB B sayısıdır. Çıkış
- A sayısının değerini, Kalan sayının değeri yap
- A ile B sayılarını yer değiştir. İkinci etaba dön
Bu algoritmanın çalışma mantığı, Dump Coding yöntemi ile adım adım incelenir.
- İki sayı A = 12 ve B = 8
- A sayısı, B sayısına tam bölünmüyor. Algoritma diğer etaptan devam
- Kalan sayı = Dolayısıyla A = 4 olur.
- A sayısı ile B sayısı yer değiştirilir. A = 8 ve B = 4 İkinci etaba dönülür.
- A sayısı B sayısına tam bölünüyor. OBEB = 4
Akış Diyagramlarında Kullanılan Semboller
- Başla – Bitir
- Veri Girişi
- Karar Verme
- Veri Tabanı
- Ekran
- Printer
- Fonksiyon
- Devam
Madde madde yazılan algoritmaların okunması kolaydır ancak işleyişin bütününü görmek çoğu zaman mümkün değildir. Akış diyagramları, algoritmaları görsel biçimde göstermeyi, dolayısıyla daha anlaşılır hale getirmeyi sağlar. Algoritmada yapılacak işlemlerin çeşitlerine göre çeşitli semboller kullanılır.
Başla – Bitir
Algoritmanın hangi aşamadan başlayacağını ve ne zaman biteceğini gösteren semboldür. Bir algoritmayı temsil eden akış diyagramında, bir tane Başla ve bir tane Bitir sembolü olmalıdır.
Veri Girişi
Kullanıcıdan ve başka bir kaynaktan alınan verilerin isimlerini tutar.
Karar Verme
Karar yapısını belirten semboldür. Üstünde koşul ifadesi belirtilir.
Veri tabanı
Veri tabanında okuma veya yazma işlemi yapıldığını gösterir.
Ekran
Üzerinde yazılan yazının bilgi olarak ekranda gözükeceğini belirtir.
Printer
Üzerinde yazılan yazının yazıcıdan çıkarılacağını belirtir.
İşlem
Bir işlem yapılacağını belirten semboldür. Her işlem için ayrı bir fonksiyon sembolü kullanılması, akış diyagramını daha anlaşılır kılar.
Fonksiyon
İşlem sembolüne yazılamayacak büyüklükte işlemler, alt işlem olarak bu sembolle belirtilir.