GİRİŞ AKIŞ ŞEMASI Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan çerçevesinde sözlü ifadelerle yazılması olarak tanımlanmıştı. Akış şeması ise algoritmanın özel anlam taşıyan şekiller kullanılarak yine belirli bir plan ve mantık akışı içerisinde çizilmesidir. Akış şemasında kullanılan şekillerin her biri özel anlama sahiptirler ve bu şekiller algoritmada sözle belirtilen herhangi bir ifadenin karşılığı olarak kullanılırlar. AKIŞ ŞEMASI Algoritmanın görsel olarak simge ya da sembollerle ifade edilmiş şekline akış şeması denir. Akış şemaları algoritmadan farklı olarak mantıksal bir sıralama içerisinde sözle ifade edilen adımların simge veya şekilleri kullanılarak gösterilmesidir. Söz konusu simge veya şekiller kendi başlarına anlam taşıdıkları için adımlar algoritmada olduğu gibi detaylı olarak sözle ifade edilmezler sadece sembol veya şekiller içerisinde gerekli atamalar veya yeteri kadar açıklamalar yapılır. Algoritmadaki adımlar arasında sözle ifade edilen geçişler akış şemalarında oklar kullanılarak veya bağlantı sembolleriyle yapılmaktadır. Akış şemalarında kullanılan semboller ve şekiller uluslararası düzeyde aynı anlama sahip olduklarından, akış şemaları içerisinde açıklamalarda detaya girilmesine gerek olmamaktadır. Kapsamlı ve bir ekip tarafından geliştirilen yazılımlarda akış şemaları büyük öneme sahiptir. Projede her birey kendi çalışma sınırını ve kendi çalışmalarının ekip içerisindeki yerini ve diğer çalışmalarla olan bağlantılarını akış şemaları sayesinde görebilir. Akış şemaları, iş akışının anlaşılması, kontrol edilmesi, problemin çözüm yollarının görülmesi, iş akışındaki geri dönüşlerin ve tekrarların belirlenmesi ve kod yazımı için ilk hazırlıkların yapılması için oluşturulur. Akış şemaları oluşturulurken ilk önce projeyi kuş bakışı inceleyen baştan sona genel hatların görüntülendiği bir akış şeması oluşturulur daha sonra da detayların da görüntülendiği ve bağlandı simgeleriyle ilişkilendirilmiş her adımda yapılacak işlerin planlandığı asıl akış şemaları geliştirilir. AKIŞ ŞEMASI ŞEKİLLERİ Akış şeması şekilleri uluslararası geçerliliği olan ve her bir şeklin kendine özel anlamının bulunduğu şekillerdir. Bu nedenle algoritması yazılmış olan bir proje okunarak ve bu özel anlam taşıyan şekiller kullanılmak suretiyle akış şemaları oluşturulabilir. Akış şeması şekilleri içerisine değişken isimleri, değişkene değer atamaları, işlemler ve şartlar yazılabilir. Ancak yazılan ifadeler kısa ve net olmalıdır. Algoritma oluşturulurken kullanılan sözlü ifadeler aynı genişlikte ve serbestlikte kullanılmamalıdır. 1
Uluslararası ölçekte kabul görmüş akış şeması şekilleri şunlardır. 1. Başla veya dur Akış şemasının başında ve sonunda bulunur. Başka bir anlam taşımaz. Görsel açıdan akış şemasının tamamlar. BAŞLA DUR Algoritma A2..... AN. Dur 2. Veri veya bilgi girişi A, Notlar Algoritma A2. A değişkenini tanımla A3. A değişkeni için değer gir A4. Notlar ifadesini gir A5. Dur 3. İşlem X=(A^2+B^2)^(1/2) Algoritma A2. (A^2+B^2) nin karekökünü X değişkenine ata A3. Dur 4. Döngü K = 1, N, 2 2
Algoritma A2. 1 den N e kadar 2 şer artarak döngü oluştur A3. Dur 5. Karar EVET A>100 HAYIR EVET HAYIR A<=100 EVET A!=100 HAYIR Algoritma A2. Eğer işlem doğruysa EVET yönüne git A3. Eğer işlem yanlışsa HAYIR yönüne git A4. Dur 6. Çıkış Sonuç:, X,Y Algoritma A2. Sonuç ifadesini yazdır A3. X ve Y değişkenlerinin değerlerini yazdır A4. Dur 7. Bağlantı 10 3
Örnek 8. İşlem akış yön tuşları AKIŞ ŞEMASI YAPILARI Veri Girişi İŞLEM 1 İŞLEM 2 İŞLEM 3 Çıkış Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış şemalarında genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz. Klavyeden girilen üç sayının toplamını yapan programın akış şeması ve örnek kod yazılımı: BAŞLA A, B, C T = 0 T = T + A T = T + B T = T + C T DUR 4
Örnek A2. Klavyeden bir sayı giriniz (A) A3. Klavyeden bir sayı giriniz (B) A4. Klavyeden bir sayı giriniz (C) A5. T = 0 A6. T = T + A A7. T = T + B A8. T = T + C A9. Yaz T A10. Dur Mantıksal yapılardan ikincisi Karar Verme yapısıdır. Programlama sırasında If...Then... Else (Eğer. <şart>.ise.)yapısı ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler. Doğru KOŞUL Yanlış İşlem 1 İşlem 2 Çıkış Klavyeden girilen N1 değeri 50 den küçükse KALDI, 50'den büyük veya 50'ye eşitse GEÇTİ yazdıran programın akış şeması ve örnek kod yazılımı: 5
BAŞLA N1 Yanlış KALDI N1 < 50 Doğru GEÇTİ DUR A2. Klavyeden öğrenci notunu gir (N1) A3. Eğer N1 < 50 ise A5 e git A4. Yaz KALDI A6 ya git A5. Yaz GEÇTİ A6. Dur Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Yani döngü oluşturmak için kullanılan yapıdır. Döngüler aynı işlemin birçok kez yapılmasını sağlar. Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar. Giriş Döngü değişkeni:=1,n İşlemler Çıkış 6
Giriş İşlemler Doğru KOŞUL Yanlış Çıkış Şekil 1.4. Tekrarlı Yapı KOŞUL Evet İşlem 1 İşlem N Olumsuz koşulda yapılacak işlem yoktur; olumlu olması durumunda ise N adet işlem yapılacaktır. Hayır KOŞUL Evet İşlem 1 İşlem 2 Koşulun durumuna bağlı olarak 2 farklı işlem vardır. 7
Hayır KOŞUL 1 Evet İşlem 1 Hayır KOŞUL 2 Evet İşlem N- 1 Hayır KOŞUL 3 Evet İşlem N Bu yapıyı art arda birden çok kez kullanıp aşağıdaki gibi bir karşılaştırma dizisi oluşturulabilir. İşlem N Koşul İşlem 1 Koşul daha çevrim içerisine girmeden sınanır. Koşul olumsuz olduğunda çevrime hiç girilmez ve döngü içerisinde yapılması gerekenler atlanır. 8
Döngüye Giriş Çevrim içerisinde koşulu etkileyen kod olmalıdır. İşlem N İşlem 1 Döngüden Çıkış Koşul Bu döngü deyiminde, çevrim en az bir defa olmak üzere gerçekleşir. Çünkü koşul sınaması döngü sonunda yapılmaktadır. Eğer koşul sonucu olumsuz ise bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin devam edebilmesi için her döngü sonunda yapılan koşul testinin olumlu sonuçlanması gerekir. Döngüye Giriş Döngüye Giriş Başlangıç Artım İşlem N Koşul İşlem N İşlem 1 Koşul İşlem 1 Döngüden Çıkış Döngüden Çıkış Diğer deyimlerden farklı olarak, döngü sayacı doğrudan koşul parametreleri düzeyinde verilir. Döngü girmeden önce sayaç değişkenine başlangıç değeri atanmakta ve daha sonra koşula bakılmaktadır. Döngü içerisinde belirtilen işlemler yapıldıktan sonra sayaç değişkeni arttırılmaktadır. 9
Örnek Döngüye Giriş Başlangıç Koşulu ve Artım Koşul İşlem N Koşul İşlem 1 Döngüden Çıkış Klavyeden girilen sayıya göre birden kendisine kadar olan sayıların çarpımını yapan programın akış şeması ve örnek kod yazılımı: BAŞLA N Ç=1 i = 1, N, 1 Ç=Ç * i Ç DUR 10
Örnek A2. Klavyeden bir sayı giriniz (N) A3. Ç = 1 A4. S = 1 A5. Eğer S > N ise A9 a git A6. Ç = Ç * S A7. S = S + 1 A8. Git A5 e A9. Yaz Ç A10. Dur İç içe döngü kurulurken en önemli unsur, içteki döngü sonlanmadan bir dıştaki döngüye geçilmemesidir. Diğer bir deyişle döngüler birbirlerini kesmemelidir. En içteki döngü bir dıştaki döngünün her adımında N kez tekrarlanır. Beşe tam bölünebilen iki basamaklı sayıları ekrana yazdıran programın akış şeması ve örnek kod yazılımı: BAŞLA İ = 1, 9, 1 J = 0, 9, 5 Sayı=10*İ+J Sayı DUR 11
Örnek A2. i = 1 A3. Eğer i > 9 ise A12 ye git A4. j = 0 A5. Eğer j > 9 ise A10 a git A6. Sayı = 10 * i + j A7. Yaz Sayı A8. j = j + 5 A9. Git A5 e A10. i = i + 1 A11. Git A3 e A12. Dur Fibonacci serisi sayıları aşağıdaki gibidir: 1 1 2 3 5 8 13 21... Buna göre klavyeden girilen N sayısına göre Fibonacci serisinin ilk N terimini bulup ekrana yazdıran programın akış şeması ve örnek kod yazılımı: BAŞLA N T1 = 1, T2 = 2 T1, T2 I = 1, N-2, 1 T3 = T1 + T2 T3 T1 = T2 T2 = T3 DUR 12
A2. Klavyeden terim sayısını giriniz (N) A3. T1 = 1 A4. T2 = 1 A5. Yaz T1 A6. Yaz T2 A7. i = 1 A8. Eğer i > N-2 ise A15 e git A9. T3 = T2 + T1 A10. Yaz T3 A11. T1 = T2 A12. T2 = T3 A13. i = i + 1 A14. Git A8 e A15. Dur Örnekte görüldüğü gibi ilk iki terim sabit olduğundan onlar başa yazıldı ve çıktıları verildi. Bundan sonraki eleman sayısı toplam eleman sayısından iki eksik olacağı için döngümüz N- 2 ye kadar döndürüldü. Döngü içinde terim 3 hesaplanıp ekrana yazdırılmıştır. Akabinde terimler sırayla yer deüğiştirilerek bi sonraki terimi hesaplamaya geçilmiştir. 13
Özet Bilgisayarda bir problemi çözebilmek için önce problemin belirlenmesi ve algoritmasının geliştirlmseinin ardından algoritmayı şekillerle ifade eden Akış Şemasının düzenlenmesi gerekmektedir. Akış Şemasının geliştirlebilmesi için her biri özel anlam taşıyan özel şekiller kullanılmaktadır. Her bir şekil algoritmada ifade edilen bir işlemin karşılığı olarak kullanılmaktadır. Akış Şemaları oluşturulurken üç farklı mantıksal yapı kullanılır. Bunlardan birincisi sıralı yapılardır. Mantıksal yapılardan ikincisi karar verme yapısıdır. Üçüncü mantıksal yapı grubu tekrarlı yapılardır ve döngülerden oluşmaktadır. 14
15