AKIŞ DİYAGRAMLARI AKIŞ DİYAGRAMLARI Akış Diyagramları: Bir problemin çözümünün sembolik bir dil ile adım adım gösterilmesidir. Akış Diyagramları: Algoritmanın kullanılan dilden bağımsız olarak ifade edilmesidir. Evrensel kabul görmüş sembolleri kullanır. Algoritmalardaki her bir duruma karşılık gelen bir sembol mevcuttur. 2 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Kullanılan Semboller ve Anlamları BAŞLAMA / BİTİŞ VERİ GİRİŞİ İŞLEM KARŞILAŞTIRMA VERİ ÇIKIŞI AKIŞ YÖNÜ 3 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Başlama Sembolü BAŞLA Algoritma Karşılığı: BAŞLA 4 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Veri Girişi Sembolü x Algoritma Karşılığı: OKU x 5 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI İşlem Sembolü y = 3*x Algoritma Karşılığı: y = 3*x 6 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Karşılaştırma Sembolü x>10 E işlem1 x>10 E işlem1 H işlem2 Algoritma Karşılığı: Algoritma Karşılığı: EĞER (x > 10) İSE işlem1 EĞER (x > 10) İSE işlem1 DEĞİLSE işlem2 7 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Veri Çıkışı Sembolü y Algoritma Karşılığı: YAZ y 8 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Bitiş Sembolü BİTİR Algoritma Karşılığı: BİTİR 9 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilecek iki sayıyı toplayıp ekrana yazdıran” algoritma 10 - BAŞLA BAŞLA 20 – OKU x, y x, y 30 – z = x + y 40 – YAZ z z=x+y 50 – BİTİR z BİTİR 10 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI Kurallar Mutlaka BAŞLA ile başlamalı ve BİTİR ile bitmelidir. Şekiller işlem sırasına göre yerleştirilmelidir. Şekiller birbirine oklarla bağlanmalıdır. Oklar dikey veya yatay kullanılmalıdır. Oklar işlemin akış yönünü gösterdiği için mutlaka yönlü olmalıdır. BAŞLA’dan itibaren hangi ok takip edilirse edilsin mutlaka BİTİR’e ulaşılmalıdır. 11 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilen sayının tek mi çift mi olduğunu ekrana yazdıran” algoritma BAŞLA 10 - BAŞLA 20 – OKU sayı 30 – EĞER (sayı % 2 == 0) İSE YAZ “çift sayı” DEĞİLSE YAZ “tek sayı” 40 - BİTİR sayı sayı%2==0 0 E “Çift sayı” H “Tek sayı” BİTİR 12 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilecek iki sayıdan büyük olanı bulup ekrana yazdıran” algoritma 10 - BAŞLA BAŞLA 20 – OKU x, y 30 – EĞER (x > y) İSE YAZ “Büyük” x DEĞİLSE EĞER (y > x) İSE YAZ “Büyük” y DEĞİLSE YAZ “Eşit” RR 40 – BİTİR x, y x>y H y>x E E “Büyük” x “Büyük” y H “Eşit” BİTİR CENG193 BİLGİSAYAR-1 Kasım 2019 13 AKIŞ DİYAGRAMLARI BAŞLA 10 - BAŞLA 20 – OKU x 30 – EĞER (x > 6) İSE YAZ “A” 40 – YAZ “B” 50 - BİTİR x x>6 E “A” “B” BİTİR SORU: Yukarıdaki algoritma ve akış diyagramı x = 6 için ekrana ne yazar? 14 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilecek üç sayının en büyüğünü bulup ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – OKU x, y, z x, y, z 30 – eb = x 40 – EĞER (y > eb) İSE eb = y eb = x 50 – EĞER (z > eb) İSE eb = z 60 – YAZ “En büyük sayı” eb 70 - BİTİR y > eb z > eb E E eb = y eb = z eb CENG193 BİLGİSAYAR-1 Kasım 2019 BİTİR 15 AKIŞ DİYAGRAMLARI BAŞLA SORU: Yandaki akış diyagramına göre x=20, x = 40 ve x = 1 için ekrana ne yazar? x x >= 20 H x = x+4 E x < 40 H x = 2*x E x = x+6 x BİTİR 16 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “1’den 5’e kadar sayıları sırayla ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – x = 1 30 – EĞER (x < 6) İSE GİT 40 x=1 DEĞİLSE GİT 70 40 – YAZ x x<6 50 – x = x + 1 E 60 – GİT 30 H BİTİR x 70 – BİTİR x=x+1 17 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “1’den klavyeden girilen n sayısına kadar sayıları sırayla ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – OKU n n 30 – x = 1 40 – EĞER (x <= n) İSE GİT 50 DEĞİLSE GİT 80 x=1 50 – YAZ x 60 – x = x + 1 x <= n 70 – GİT 40 E 80 – BİTİR H BİTİR x x=x+1 18 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “1’den 10’a kadar olan tek sayıları ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – x = 1 30 – EĞER (x <= 10) İSE GİT 40 x=1 DEĞİLSE GİT 70 40 – EĞER (x % 2 == 1) İSE YAZ x 50 – x = x + 1 H x <= 10 E 60 – GİT 30 70 – BİTİR x % 2==1 > eb BİTİR E x x=x+1 19 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “1’den 5’e kadar sayıların toplamını bulup ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – x = 1 30 – toplam = 0 40 – EĞER (x <= 5) İSE GİT 50 x=1 toplam = 0 DEĞİLSE GİT 80 50 – toplam = toplam + x 60 – x = x + 1 x <= 5 E 70 – GİT 40 H toplam toplam = toplam + x 80 – YAZ toplam 90 – BİTİR BİTİR x=x+1 20 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilen n sayısı için n! işlemini yapan” algoritma BAŞLA 10 – BAŞLA n 20 – OKU n 30 – sayı = 1, fakt = 1 sayı = 1 fakt = 1 40 – EĞER (n == 0 VEYA n == 1) İSE GİT 90 50 – EĞER (sayı <= n) İSE GİT 60 DEĞİLSE GİT 90 E 60 – fakt = fakt * sayı n==0VEYAn==1 70 – sayı = sayı+ 1 80 – GİT 50 sayı <= n 90 – YAZ n, “!=”, fakt 100 – BİTİR H n, “!=”, fakt CENG193 BİLGİSAYAR-1 Kasım 2019 BİTİR E fakt = fakt * sayı sayı = sayı + 1 21 AKIŞ DİYAGRAMLARI “Klavyeden Evet (E) cevabı girildiği sürece girilecek sayıların toplamını bulup ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – t = 0 t=0 30 – devam = “E” 40 – EĞER (devam == “E”) İSE GİT 50 devam = “E” DEĞİLSE GİT 100 50 – OKU x devam == “E” 60 –t = t + x H 70 – YAZ “Devam etmek için E basınız” 80 – OKU devam t 90 – GİT 40 E x t=t+x 100 – YAZ t 110 – BİTİR BİTİR devam 22 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI * * * * * * * * * 3 “Yandaki şekildeki gibi ekran çıktısı veren” algoritma BAŞLA 10 – BAŞLA 20 –r = 1 30 – EĞER (r <= 3) İSE GİT 40 DEĞİLSE GİT 120 40 – c = 1 50 – EĞER (c <= 3) İSE GİT 60 DEĞİLSE GİT 90 60 – YAZ “*” 70 – c = c + 1 80 – GİT 50 90 – YAZ ALTSATIR 100 –r = r + 1 110 – GİT 30 120 – BİTİR r=1 r <= 3 H E BİTİR c=1 c <= 3 E “*” H ALTSATIR r=r+1 c=c+1 23 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI 123 123 123 3 “Yandaki şekildeki gibi ekran çıktısı veren” algoritma BAŞLA 10 – BAŞLA 20 –r = 1 30 – EĞER (r <= 3) İSE GİT 40 DEĞİLSE GİT 120 40 – c = 1 50 – EĞER (c <= 3) İSE GİT 60 DEĞİLSE GİT 90 60 – YAZ c 70 – c = c + 1 80 – GİT 50 90 – YAZ ALTSATIR 100 –r = r + 1 110 – GİT 30 120 – BİTİR r=1 r <= 3 H E BİTİR c=1 c <= 3 E c H ALTSATIR r=r+1 c=c+1 24 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI 1 22 333 3 “Yandaki şekildeki gibi ekran çıktısı veren” algoritma BAŞLA 10 – BAŞLA 20 –r = 1 30 – EĞER (r <= 3) İSE GİT 40 DEĞİLSE GİT 120 40 – c = 1 50 – EĞER (c <= r) İSE GİT 60 DEĞİLSE GİT 90 60 – YAZ r 70 – c = c + 1 80 – GİT 50 90 – YAZ ALTSATIR 100 –r = r + 1 110 – GİT 30 120 – BİTİR r=1 r <= 3 H E BİTİR c=1 c <= satır E r H ALTSATIR r=r+1 c=c+1 25 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilen 3 sayıyı büyükten küçüğe sıralayarak ekrana yazdıran” algoritma BAŞLA 10 – BAŞLA 20 – OKU x, y, z x, y, z 30 – EĞER (y > x) İSE s = x; x = y; y=s 40 – EĞER (z > x) İSE s = x; x = z; z=s 50 – EĞER (z > y) İSE s = y; y = z; z=s 60 – YAZ x, y, z y>x z>x z>y E s=x x=y y=s E s=x x=z z=s E s=y y=z z=s 70 – BİTİR x, y, z 26 CENG193 BİLGİSAYAR-1 Kasım 2019 BİTİR AKIŞ DİYAGRAMLARI “Klavyeden girilen bir sayının asal sayı olup olmadığını ekrana yazan ” algoritma 10 – BAŞLA 20 – OKU sayı 30 – asal = true 40 – k = 2 50 – EĞER (k < sayı) İSE GİT 60 DEĞİLSE GİT 90 60 – EĞER (sayı % k == 0) İSE asal = false; GİT 90 70 – k = k + 1 80 – GİT 50 90 – EĞER (asal == true) İSE YAZ “asal” DEĞİLSE YAZ “asal değil” 100 – BİTİR SORU 1: Yanda verilen algoritma için akış diyagramını yazınız. SORU 2: Yanda verilen algoritma klavyeden girilen 30 değeri için ekrana ne yazar? 27 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI “Klavyeden girilen bir n sayısına kadar asal olan tüm sayıları ekrana yazan ” algoritma 10 – BAŞLA 20 – OKU n 30 – sayı = 2 40 – EĞER (sayı <= n) İSE GİT 50 DEĞİLSE GİT 140 50 – asal = true 60 – k = 2 70 – EĞER (k < sayı) İSE GİT 80 DEĞİLSE GİT 110 80 – EĞER (sayı % k == 0) İSE asal = false; GİT 120 90 – k = k + 1 100 – GİT 70 110 – EĞER (asal == true) İSE YAZ sayı 120 – sayı = sayı +1 130 – GİT 40 140 – BİTİR SORU 1: Yanda verilen algoritma için akış diyagramını yazınız. SORU 2: Yanda verilen algoritma klavyeden girilen 30 değeri için ekrana ne yazar? 28 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI SORULAR 1 – Klavyeden girilen bir n sayısına kadar olan tek sayıların toplamını hesaplayıp ekrana yazdıran algoritmayı yazınız ve akış diyagramını çiziniz. 2 – Klavyeden girilen bir n sayısına kadar olan ve 7’ye tam bölünen sayıları ekrana alt alta yazdıran ve bu sayıların toplamını hesaplayıp ekrana yazdıran algoritmayı yazınız ve akış diyagramını çiziniz. 3 – Klavyeden girilen m sayısından klavyeden girilen n sayısına kadar sayıları ekrana yazdıran algoritmayı yazınız ve akış diyagramını çiziniz. 4 – Yandaki ekran görüntüsünü veren akış diyagramını çiziniz. 40 30 20 10 40 30 20 40 30 40 29 CENG193 BİLGİSAYAR-1 Kasım 2019 AKIŞ DİYAGRAMLARI SORULAR 5 – Sayfa 16’da verilen akış diyagramına ilişkin algoritmayı yazınız. 6 – Fibonacci serisinin ilk 10 terimini ekrana yazdıran algoritmayı yazınız ve akış diyagramını çiziniz. 7 – Onlu sayı sistemine göre verilen bir sayının ikili sayı sisteminde karşılığını bulup ekrana yazdıran akış diyagramını çiziniz. 8 – İkili sayı sistemine göre verilen bir sayının onlu sayı sisteminde karşılığını bulup ekrana yazdıran akış diyagramını çiziniz. 9 – Klavyeden girilen x ve y sayıları için 𝑥 𝑦 değerini bulup ekrana yazdıran akış diyagramını çiziniz. 10 – Klavyeden girilen üç sayıyı küçükten büyüğe sıralayarak ekrana yazdıran akış diyagramını çiziniz. 30 CENG193 BİLGİSAYAR-1 Kasım 2019