Algoritma Mantığı ve Akış Diyagramları
Algoritma Algoritma, bir sorunun çözümü ya da bir işlemin yapılması için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel veya yazılı olarak ifade edilmesidir. Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları göz önünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar.
İki Sayının Toplamı Algoritması A1: BAŞLA A2: OKU X A3: OKU Y A4: HESAPLA Z=X+Y A5: YAZ Z A6: DUR Algoritmada işlemlerin sıralanmasında, işlem öncelikleri göz önünde bulundurulur. Algoritma, işlemlerin başladığını belirten “Başla” ifadesi ile başlar ve işlemlerin bittiğini belirten “Dur” ifadesi ile sona erer.
Akış Diyagramları (Şemaları) Algoritmaların görsel olarak simge ya da sembollerle ifade edilmiş şekline “akış şemaları” veya FLOWCHART adı verilir. Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir. Akış şemalarının hazırlanmasına, sorun çözümlenmesi sürecinin daha kolay anlaşılır biçime getirilmesi, iş akışının kontrol edilmesi ve programın kodlanmasının kolaylaştırılması gibi nedenlerle başvurulur. Uygulamada çoğunlukla, yazılacak programlar için önce programın ana adımlarını (bölümlerini) gösteren genel bir akış şeması hazırlanır. Daha sonra her adım için ayrıntılı akış şemalarının çizimi vardır.
Algoritmanın başladığını ya da sona erdiğini belirtmek için kullanılır. Araç belirtemeden giriş ya da çıkış yapılacağını gösterir. Hesaplama ya da değerlerin değişkenlere aktarımını gösterir. Klavye aracılığı ile giriş ya da okuma yapılacağını gösterir. Mantıksal karar verme ya da karşılaştırma durumunu gösterir. Yazıcı aracılığı ile çıkış yapılacağını gösterir. Kart okuyucu aracılığıyla giriş yapılacağını gösterir. Diskten okuma veya diskete yazmayı gösterir.
Oklar işin akış yönünü gösterir. Disketten okuma veya diskete yazmayı gösterir. Oklar işin akış yönünü gösterir. Teyp kütüğünü gösterir. Yapılacak işler birden fazla sayıda tekrarlanacaksa, diğer bir deyişle iş akışında çevrim (döngü) var ise bu sembol kullanılır. Açıklamaları beyaz renki yazıyla yazılmış olan akış diyagramları ders uygulamalarında ve örneklerde kullanılacaktır.
Temel Algoritma Türleri Doğrusal Algoritmalar İş akışları giriş, hesaplama, çıkış biçiminde olan algoritmalardır. Mantıksal Algoritmalar Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Döngüsel (iteratif, çevrimli, yineli) Algoritmalar Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır.
Doğrusal Algoritmalar ve Akış Diyagramları Herhangi bir koşula bağlı olmaksızın ve yalnızca bir kez gerçekleşen işlem algoritmalarına doğrusal algoritma adı verilir. Sayılar arasındaki aritmetik işlemler, denklem çözümleri, klavyeden metin girişi ve metinlerin ekrana yazdırılması gibi işlemler doğrusal algoritma örnekleridir. Klavyeden girilen İki sayının toplamını hesaplayıp yazan algoritma ( X: Birinci sayı, Y: İkinci sayı, Z: Toplam ) A1 : BAŞLA A2 : OKU X A3 : OKU Y A4 : HESAPLA Z = X + Y A5 : YAZ Z A6 : DUR
Doğrusal Algoritmalar ve Akış Diyagramları
Mantıksal Algoritmalar İşleyişi bir koşul veya mantıksal sınamaya bağlı olan algoritmalardır. Günlük yaşantımızda yaptığımız işlemlerin büyük çoğunluğu mantıksal algoritmalardan oluşur. Sıvı sabunla ellerimizi yıkarken uyguladığımız işlemler mantıksal algoritmanın örneğidir. Adımların sırası ve koşulların hiçbir alternatifi dışarıda bırakmaması önemlidir. A1: Başla A1: Musluğu aç A2: Eğer su akıyorsa sıvı sabunu avcuna dök, GİT A4 A3: Eğer su akmıyorsa musluğu kapat, GİT A5 A4: Ellerini yıka A5: Dur
Mantıksal Algoritmalar Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu belirleyip yazdıran algoritma ve akış şeması: (S: Sayı) A1 : BAŞLA A2 : OKU S A3 : EĞER S > 0 ise YAZ “Pozitif”, GİT A6 A4 : EĞER S < 0 ise YAZ “Negatif”, GİT A6 A5 : EĞER S = 0 ise YAZ “Sıfıra eşit” A6 : DUR
Döngüsel Algoritmalar Aynı işlemin birden çok kez tekrar etmesi durumunu ifade eden algoritmalardır. Tekrar sayısı başlangıçta belli olan ve belli olmayan biçiminde ikiye ayrılmaktadır. Tekrar sayısı başlangıçta belli olan algoritmalara günlük yaşantıda temelini tabiattan alan periyotlar (hafta, ay), ilaç kullanım periyotları, insan bedeniyle ilgili periyotlar, dini ibadet ve ritüel periyotları gibi örnekler verilebilir. Tekrar sayısı başlangıçta belli olmayan algoritmaların tekrar sayısı bazı koşullara bağlıdır. Günlük yaşantıda duvara çivi çakarken çekiçle vuruş sayısı (sayı sabit değildir. Başlangıçta bilinmez ve çivinin sabitlenmesine kadar tekrar eder), eller yıkanırken yapılan hareketin tekrarı gibi çok sayıda örneği bulunmaktadır.
Döngüsel Algoritmalar Klavyeden girilen bir yazıyı 5 kez yazdıran algoritma ve akış şeması: ( Y: Yazı, S: Sayaç ) A1 : BAŞLA A2 : OKU Y A3 : S = 1 den 5 e kadar 1 arttır A4 : YAZ Y A5 : S yi kontrol et A6 : DUR
Doğrusal, Mantıksal ve Döngüsel Algoritmanın Birlikte Kullanımı 20 kişilik bir sınıfta 18,19,20 ve 21 yaşlarında kaç öğrenci olduğunu belirleyip yazdıran algoritmayı hazırlayınız. ( Y: Öğrencinin yaşı, S: Sayaç, Y18: 18 yaşındakiler, Y19: 19 yaşındakiler, Y20: 20 yaşındakiler, Y21: 21 yaşındakiler ) A1 : BAŞLA A2 : S =1 den 20 ye kadar 1 arttır A3 : OKU Y A4 : EĞER Y = 18 ise Y18 = Y18 + 1, GİT A8 A5 : EĞER Y = 19 ise Y19 = Y19 + 1, GİT A8 A6 : EĞER Y = 20 ise Y20 = Y20 + 1, GİT A8 A7 : EĞER Y = 21 ise Y21 = Y21 + 1, GİT A8 A8 : S yi kontrol et A9 : YAZ Y18, Y19, Y20, Y21 A10 : DUR