ALGORİTMA VE AKIŞ DİYAGRAMLARI Algoritma, bir sorunun çözümü 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. Diğer bir deyişle 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 olarak ifade edilmesi biçiminde tanımlanabilir. Bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal adımların söz veya yazı ile anlatıldığı algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline ise “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. Programın saklanacak esas belgeleri olan 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 bakış akış şeması hazırlanır. Daha sonra her adım için ayrıntılı akış şemalarının çizimi vardır. Algoritma ve akış diyagramı 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. Aşağıda algoritma ve Akış diyagramı hazırlanmasına ilişkin örnekler yer almaktadır. Doğrusal Algoritmalar İş akışları giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. Klavyeden girilen İki sayının toplamını hesaplayıp yazan algoritma ve akış şeması ( X: Birinci sayı, Y: İkinci sayı, Z: Toplam ) A1 : BAŞLA A2 : OKU X A3 : OKU Y A4 : Z = X + Y A5 : YAZ Z A6 : DUR BAŞLA OKU X OKU Y Z=X+Y YAZ Z DUR Algoritmaya dikkat edilirse işlemlerin sıralanmasında, işlem önceliklerinin göz önünde bulundurulduğu görülür. Ayrıca algoritma yazımı sorun çözümünün başladığını gösteren “Başla” ifadesi ile başlamakta ve işlemlerin bittiğini belirten “Dur” ifadesi ile sona ermektedir. Mantıksal Algoritmalar Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir. Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu tespit edip 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 BAŞLA OKU S > YAZ “Pozitif” < YAZ “Negatif ” S:0 = YAZ “Sıfıra eşit” DUR Döngüsel 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. 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 BAŞLA OKU Y S = 1, 5, 1 YAZ Y S DUR ÖRNEK 20 kişilik bir sınıfta 18,19,20 ve 21 yaşlarında kaç öğrenci olduğunu belirleyip yazdıran algoritma ve akış şemasını 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 BAŞLA S = 1, 20, 1 OKU Y = Y18 = Y18 +1 Y:18 <> = Y19 = Y19 +1 Y:19 <> = Y20 = Y20 +1 Y:20 <> = Y21 = Y21 +1 Y:21 <> S YAZ Y18,Y19,Y20,Y21 DUR Sıralama Algoritmaları Üç sayının en küçüğünü bulan algoritma (X: birinci Sayı Y: ikinci Sayı Z: üçüncü sayı E: en küçük sayı) A1: BAŞLA A2: E = X A3: EĞER Y < E ise E = Y A4: EĞER Z < E ise E = Z A5 : YAZ E A6 : DUR