Bölüm 4.2: Akış Diyagramları

Akış Diyagramları · Çalışma Soruları
SimgelerSıralı akışKoşullu akışTekrarlı akışİç içe döngülerKoda çeviri ve test
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Çoktan Seçmeli · Simgeler

Soru 1: Simge ve Görev

Aşağıdaki simge – içerik eşleştirmelerinden hangisi yanlıştır?

B: toplam = a + b bir hesaplama/atamadır, dikdörtgen (işlem) simgesine yazılır. Paralelkenar yalnızca giriş/çıkış içindir (ör. “toplamı yaz”). Karar simgesine soru, işlem simgesine emir yazılır.

Çoktan Seçmeli · Simgeler

Soru 2: Okunabilirlik

Bir öğrenci karar simgesinin içine “a'yı b ile karşılaştır ve büyüğü yaz” yazmış, karardan çıkan iki oku da etiketlememiş. Doğru düzeltme hangisidir?

A: Kurallar: bir simgeye tek temel işlem, karar çıkışları anlamlı etiketli (Evet/Hayır), akış oklarla gösterilir. Etiketsiz bir kararda hangi yolun hangi koşulda seçildiği belirsiz kalır.

Çıktı Sorusu · Sıralı Akış

Soru 3: Geçicisiz Takas

Aşağıdaki akış diyagramı a = 4, b = 7 girdileriyle çalıştırılırsa çıktı nedir?

Başlaa, b değerini okua = a + bb = a - ba = a - ba, b değerini yazBitir
Cevabı göster

Çıktı: 7 4

adımab
oku47
a = a + b117
b = a − b114
a = a − b74
a7b4

Toplam, iki değeri birlikte saklar; gecici değişken olmadan takas yapılır. Sıralı akışta her kutu tam bir kez çalışır.

Adım Adım Çalıştırma · Sıralı Akış

Soru 4: Sıralı Akışı Yürüt

Diyagram a = 3 girdisiyle yürütülüyor. Her kutudan sonra değişkenler ne olur?

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir
Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

Başla. Henüz değişken yok.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

Giriş: a = 3.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

b = 3 × 3 = 9.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

c = 9 − 3 = 6.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

a = 6 + 9 = 15. a'nın eski değeri (3) artık yok; b ve c değişmez.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

Çıkış: 15 9 6 yazılır.

Başlaa değerini okub = a × ac = b - aa = c + ba, b, c değerini yazBitir

Bitir. Dallanma ya da tekrar yok: her kutu bir kez çalıştı.

Başla
  a değerini oku
  b = a × a
  c = b - a
  a = c + b
  a, b, c değerini yaz
Bitir

Çıktı Sorusu · Koşullu Akış

Soru 5: Harf Notu

İstenen tablo: 90–100 A, 80–89 B, 70–79 C, 60–69 D, 50–59 E, 0–49 F. Önerilen kodun diyagramı yanda. Diyagram çalıştırılırsa not = 85, 60 ve 55 için ne yazar? Diyagram tabloya uygun mu?

EvetHayırBaşlanot değerini okunot >= 90 ?"A" yaznot >= 80 ?"B" yaznot >= 70 ?"C" yaznot >= 60 ?"D" yaz"F" yazBitir
Cevabı göster

85 → B · 60 → D · 55 → F

  • 85: 85 ≥ 90 Hayır, 85 ≥ 80 Evet → B.
  • 60: ilk üç karar Hayır, 60 ≥ 60 Evet → D (sınır değeri doğru dalda).
  • 55: dört karar da Hayır → F.

Hata: “59–50: E” dalı unutulmuş; 55 için E yazılmalıydı. Düzeltme: “not ≥ 60 ?” kararının Hayır dalına not >= 50 ? kararı eklenir; Evet → "E" yaz, Hayır → "F" yaz.

Kararlar büyükten küçüğe sorulduğu için her karar yalnızca alt sınırı denetler.

Çoktan Seçmeli · Koşullu Akış

Soru 6: Sınır Değeri Testi

Not diyagramında “not >= 60 ?” kararı yanlışlıkla “not > 60 ?” yazılmış (Evet → “Geçti”, Hayır → “Kaldı”). Hangi test değeri bu hatayı ortaya çıkarır?

D: 60 sınır değeridir: doğru diyagramda 60 >= 60 doğru → “Geçti”; hatalı diyagramda 60 > 60 yanlış → “Kaldı”. 72, 45 ve 100 için iki diyagram aynı sonucu verir. Bu yüzden sınır değerleri ayrıca denenir.

Adım Adım Çalıştırma · Koşullu Akış

Soru 7: Üç Sayının En Küçüğü

Diyagram a = 8, b = 3, c = 5 için yürütülüyor. Hangi yollar izlenir, ne yazılır?

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir
EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

Üç sayı okunur.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

İlk aday en küçük: enk = a = 8.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

Karar: 3 < 8 → doğru → Evet.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

enk = b = 3. Yol bağlayıcıda ana akışa döner.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

Karar: 5 < 3 → yanlış → Hayır; enk değişmez.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

3 yazılır.

EvetHayırEvetHayırBaşlaa, b, c değerini okuenk = ab < enk ?enk = bc < enk ?enk = cenk değerini yazBitir

Bitir. Her karar yalnızca bir kez soruldu; sayı sayısı artsa da yöntem aynı kalır.

Başla
  a, b, c değerlerini oku
  enk = a
  b < enk ?  Evet → enk = b
  c < enk ?  Evet → enk = c
  enk değerini yaz
Bitir

Çıktı Sorusu · Koşullu Akış

Soru 8: İç İçe Karar

Diyagram sırayla a = 6, a = 0, a = −3 ve a = 7 için çalıştırılıyor. Her çalıştırmada ne yazılır?

EvetHayırHayırEvetBaşlaa değerini okua > 0 ?a % 2 == 0 ?"Değil" yaz"Tek" yaz"Çift" yazBitir
Cevabı göster
aa > 0 ?a % 2 == 0 ?çıktı
6EvetEvetÇift
0HayırsorulmazDeğil
−3HayırsorulmazDeğil
7EvetHayırTek
  • İkinci karar yalnızca birinci kararın Evet dalında vardır: a ≤ 0 iken tek/çift hiç sorulmaz.
  • 0 çift olduğu hâlde “Değil” yazılır; çünkü pozitif değildir.
  • Üç çıktı kutusunun (iki kararın dört dalının) hepsini denemek için en az üç girdi gerekir (6, 7 ve 0 gibi).

Çoktan Seçmeli · Koşullu Akış

Soru 9: Karar Simgesinden Çıkış

Akış diyagramında girdi x = 7 ise çıktı ne olur?

Başlaoku xx mod 2 = 0 ?EvetHayıryaz "çift"yaz "tek"Bitir

D: 7 mod 2 = 1 (7'nin 2'ye bölümünden kalan) → "x mod 2 = 0 ?" sorusunun cevabı Hayır → sol dal: tek. Karar (eşkenar dörtgen) simgesinden iki yol çıkar; her çalıştırmada yalnızca biri izlenir. x = 12 olsaydı "çift" yazılırdı.

Çıktı Sorusu · Tekrarlı Akış

Soru 10: Üçer Artan Sayaç

Diyagramın çıktısı nedir? Karar kaç kez sorulur, döngü bittiğinde i kaçtır?

EvettekrarHayırBaşlai = 1i <= 10 ?i değerini yazi = i + 3Bitir
Cevabı göster

Çıktı: 1 4 7 10

i1471013
i ≤ 10 ?EvetEvetEvetEvetHayır
yazılan14710—

Gövde 4 kez çalışır, karar 5 kez sorulur (son deneme yanlış). Döngüden i = 13 ile çıkılır. 10 ≤ 10 doğru olduğu için 10 da yazılır.

Çoktan Seçmeli · Tekrarlı Akış

Soru 11: Artırılmayan Sayaç

Aşağıdaki diyagram çalıştırılınca ne olur?

EvettekrarHayırBaşlai = 1i <= 10 ?i değerini yazBitir

A: Tekrar yolunda koşulu değiştiren bir işlem yoktur; i hep 1 kalır ve 1 ≤ 10 her zaman doğrudur → sonsuz döngü. Düzeltme: “i değerini yaz” kutusundan sonra i = i + 1 işlem kutusu eklenir.

Çıktı Sorusu · Tekrarlı Akış

Soru 12: Başlangıç Değeri 10

for döngüsünün akış diyagramı yanda. Çıktı nedir?

EvettekrarHayırBaşlax = 10, i = 1i <= 5 ?x = x + ii = i + 1x değerini yazBitir
Cevabı göster

Çıktı: 25

i123456
x (tur sonu)1113162025çıkış
  • x biriktiricidir ama 0'dan değil 10'dan başlar: 10 + (1+2+3+4+5) = 10 + 15 = 25.
  • Yazma kutusu döngünün dışında (Hayır dalında): yalnızca son değer bir kez yazılır.

x = 0 ile başlasaydı çıktı 15 olurdu.

Çıktı Sorusu · Tekrarlı Akış

Soru 13: Sıfır Girilene Kadar

Kullanıcı sırasıyla 5, 8, −2, 0 giriyor. Diyagram ne yazar?

HayırtekrarEvetBaşlatoplam = 0, sayac = 0x değerini okux == 0 ?toplam = toplam + xsayac = sayac + 1toplam, sayac yazBitir
Cevabı göster

Çıktı: 11 3

okunan xx == 0 ?toplamsayac
5Hayır51
8Hayır132
−2Hayır113
0Evetdöngüden çık
  • Bitiş işareti (0) toplama ve sayaca katılmaz: karar, toplama işleminden önce sorulur.
  • Geri dönen ok kararın değil, oku kutusunun önüne döner: her turda yeni bir sayı okunur.

Adım Adım Çalıştırma · Tekrarlı Akış

Soru 14: Sonda Koşul: Basamak Sayısı

do-while ile yazılan basamak sayısı metodunun diyagramı sayi = 4096 için yürütülüyor (sayi tam sayı; / tam sayı bölmesidir, kesir atılır).

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir
EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

Girdi 4096; sayaç basamak = 0.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

Koşul sorulmadan gövde çalışır: basamak = 1, sayi = 4096 / 10 = 409.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

409 > 0 → Evet: gövdenin başına dön.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

basamak = 2, sayi = 40. 40 > 0 → Evet.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

basamak = 3, sayi = 4. 4 > 0 → Evet.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

basamak = 4, sayi = 4 / 10 = 0. 0 > 0 → Hayır.

EvetHayırBaşlasayi değerini okubasamak = 0basamak = basamak + 1sayi = sayi / 10sayi > 0 ?basamak değerini yazBitir

4 yazılır. Gövde koşuldan önce olduğu için sayi = 0 girilse bile 1 yazılırdı (0 tek basamaklıdır).

Başla
  sayi değerini oku
  basamak = 0
  basamak = basamak + 1
  sayi = sayi / 10
  sayi > 0 ?  Evet → 4. satıra dön
  basamak değerini yaz
Bitir

Çoktan Seçmeli · Tekrarlı Akış

Soru 15: Karar Önce mi, Sonra mı?

Aşağıdaki I ve II diyagramları için hangisi doğrudur?

IIIkoşul ?EvetgövdeHayırçıkgövdekoşul ?EvetHayırçık

B: I'de karar gövdeden önce sorulur (while): koşul baştan yanlışsa gövde hiç çalışmaz. II'de gövde önce çalışır, karar sonda sorulur (do-while): gövde en az bir kez çalışır. Derste girdi doğrulama (1–5 arası sayı) II biçimindeydi.

Çıktı Sorusu · Tekrarlı Akış

Soru 16: Döngülü Akış Diyagramı

Akış diyagramındaki algoritma çalıştırıldığında ekrana ne yazılır? Döngü kaç kez döner?

Başlas ← 0 ; i ← 1i ≤ 5 ?Evets ← s + ii ← i + 2Hayıryaz sBitir
Cevabı göster

Çıktı: 9 · döngü gövdesi 3 kez çalışır.

i ≤ 5 ?s ← s + ii ← i + 2
1 ≤ 5 Evet0 + 1 = 13
3 ≤ 5 Evet1 + 3 = 45
5 ≤ 5 Evet4 + 5 = 97
7 ≤ 5 Hayır——
  • Geri dönen ok döngüyü gösterir; i her turda 2 arttığı için koşul sonunda yanlış olur.
  • s, 5'e kadarki tek sayıların toplamıdır: 1 + 3 + 5.

Adım Adım Çalıştırma · Tekrarlı Akış

Soru 17: while ile Faktöriyel

Faktöriyel çözümü (sözde kod) n = 4 ile çalışıyor. Her turda sonuc ve i ne olur?

Çarpım için başlangıç 1’dir (0 olsaydı sonuç hep 0 çıkardı).

1 <= 4 → 1. tur.

sonuc = 1 × 1 = 1, i = 2.

2 <= 4 → 2. tur.

sonuc = 1 × 2 = 2, i = 3.

3 <= 4 → 3. tur.

sonuc = 2 × 3 = 6, i = 4.

4 <= 4 → 4. tur.

sonuc = 6 × 4 = 24, i = 5.

5 <= 4 yanlış → döngü biter.

4! = 24. Gövde 4, koşul 5 kez çalıştı.

sonuc = 1
i = 1
while i <= n
   sonuc = sonuc * i
   i = i + 1
yaz(sonuc)

Çıktı Sorusu · Tekrarlı Akış

Soru 18: Döngü Kaç Kez Döner?

Döngü gövdesi kaç kez çalışır, çıktı nedir?

i = 1
sayac = 0
while i <= 20
   i = i * 3
   sayac = sayac + 1
yaz(sayac, i)
Cevabı göster

Çıktı: 3 27

koşuli (sonra)sayac
1 <= 20 ✓31
3 <= 20 ✓92
9 <= 20 ✓273
27 <= 20 ✗çıkış

Döngü değişkeni her turda büyüdüğü için koşul sonunda yanlış olur. i 20’yi aşsa da son tur tamamlanır; koşul yalnızca tur başında denetlenir.

Çoktan Seçmeli · Tekrarlı Akış

Soru 19: 1’den 100’e Tek Sayılar

Tek sayı çözümünün sözde kodu aşağıda. Kaç sayı yazdırılır ve son yazılan sayı hangisidir?

her i için 1'den 100'e kadar
   eğer i mod 2 == 1 ise
      yaz(i)

B: i mod 2 == 1 yalnızca tek sayılarda doğrudur: 1, 3, …, 99 → 50 sayı. 100 çifttir, yazılmaz. Döngü 100 kez döner ama koşul yalnızca yarısında doğrudur. (Çift sayı sürümünde koşul i mod 2 == 0; 2…100, yine 50 sayı.)

Adım Adım Çalıştırma · İç İçe Döngüler

Soru 20: atla ve çık Birlikte

Dış döngüde atla (continue), iç döngüde çık (break) var. Hangi (i, j) çiftleri yazılır?

i = 1: 1 == 3 değil, iç döngüye geçilir.

j = 1: 1 == 3 değil → yazılır.

j = 2 → yazılır.

j = 3 → çık: iç döngü tamamen biter, j = 4 hiç denenmez.

i = 2: aynı şekilde j = 1 ve j = 2 yazılır.

j = 3 → çık.

i = 3 → atla: iç döngü bu turda hiç çalışmaz, doğrudan i = 4'e geçilir.

i = 4: j = 1 ve 2 yazılır, j = 3'te çıkılır.

i = 5 > 4 → dış döngü biter. 6 satır.

i = 1'den 4'e kadar
    eğer i == 3 ise atla        // continue
    j = 1'den 4'e kadar
        eğer j == 3 ise çık     // break
        yaz "i: " + i + " j: " + j

Çoktan Seçmeli · İç İçe Döngüler

Soru 21: İç Gövde Kaç Kez?

Aşağıdaki iç içe döngüde toplam kaç * yazılır?

i = 1'den 4'e kadar
    j = 1'den i'ye kadar
        yaz "*"
    satır sonu

D: İç döngü sınırı dış sayaca bağlıdır: i = 1'de 1, i = 2'de 2, i = 3'te 3, i = 4'te 4 kez → 1 + 2 + 3 + 4 = 10 (üçgen desen). 16 = 4 × 4, iç döngü her seferinde 4 kez dönseydi doğru olurdu.

Çıktı Sorusu · İç İçe Döngüler

Soru 22: Yıldız ve Tire Deseni

cizdir() metodunun sözde kodu aşağıdadır. Çıktı nedir?

i = 0'dan 4'e kadar
    j = 0'dan i'ye kadar
        yaz "*"
    j = 0'dan 4-i'ye kadar
        yaz "-"
    satır sonu
Cevabı göster
*-----
**----
***---
****--
*****-
i\j0123450*-----1**----2***---3****--4*****-satır i: i+1 yıldız, 5−i tire
  • İlk iç döngü j = 0…i: i + 1 yıldız.
  • İkinci iç döngü j = 0…4−i (Java'da j < 5 - i): 5 − i tire.
  • Her satır 6 karakter; 5 satır.

Çoktan Seçmeli · Koda Çeviri ve Test

Soru 23: Diyagramdan Koda

Yandaki diyagramın doğru Java karşılığı hangisidir? (n okunmuş, toplam = 0, i = 1 atanmış olsun.)

EvettekrarHayırBaşlan değerini okutoplam = 0, i = 1i <= n ?toplam = toplam + ii = i + 1toplam değerini yazBitir

C: Karar + geri dönen ok = while koşulu ve gövdesi; Evet yolundaki iki kutu gövdenin içindedir. A geri dönüş olmadığı için tek kez çalışır. B'de i artışı döngü dışında kaldığı için sonsuz döngü olur. D'de koşul < olduğu için n eklenmez.

Çoktan Seçmeli · Koda Çeviri ve Test

Soru 24: Döngü Testi Girdileri

“1'den n'e toplam” diyagramını, döngünün sıfır, bir ve çok kez döndüğü durumlarla test etmek için hangi n değerleri seçilmelidir?

A: n = 0'da 1 ≤ 0 yanlış, gövde hiç çalışmaz (beklenen 0); n = 1'de bir kez (beklenen 1); n = 5'te çok kez (beklenen 15). B ve C yalnızca “çok” durumunu dener; D'de çok tekrar yoktur.

Çıktı Sorusu · Koda Çeviri ve Test

Soru 25: Sayı Tahmin Oyunu

Dersteki sayı tahmin oyununda gizli sayı 37; oyuncu sırasıyla 20, 40, 37 giriyor. Ekranda ne görünür?

Başla
  gizli = 37, deneme = 0
  tahmin değerini oku
  deneme = deneme + 1
  tahmin == gizli ?
    Evet → "Bildin (" deneme ". deneme)" yaz, Bitir
  tahmin < gizli ?
    Evet → "Daha büyük" yaz
    Hayır → "Daha küçük" yaz
  3. satıra (oku) dön
Cevabı göster
Daha büyük
Daha küçük
Bildin (3. deneme)
tahmindeneme== 37< 37
201HayırEvet → büyük
402HayırHayır → küçük
373Evetsorulmaz

İpucu gizli sayıya göre verilir: tahmin küçükse “Daha büyük” bir sayı girilmelidir. Tur sayısı önceden bilinmez; döngü koşul doğru olunca biter.

Son

Akış Diyagramları: Çalışma Soruları
Konu anlatımı: Akış Diyagramları sunumu
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.