Bölüm 4.2: Akış Diyagramları
Ç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?
Cevabı göster
Çıktı: 7 4
| adım | a | b |
|---|---|---|
| oku | 4 | 7 |
| a = a + b | 11 | 7 |
| b = a − b | 11 | 4 |
| a = a − b | 7 | 4 |
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şla. Henüz değişken yok.
Giriş: a = 3.
b = 3 × 3 = 9.
c = 9 − 3 = 6.
a = 6 + 9 = 15. a'nın eski değeri (3) artık yok; b ve c değişmez.
Çıkış: 15 9 6 yazılır.
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?
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?
Üç sayı okunur.
İlk aday en küçük: enk = a = 8.
Karar: 3 < 8 → doğru → Evet.
enk = b = 3. Yol bağlayıcıda ana akışa döner.
Karar: 5 < 3 → yanlış → Hayır; enk değişmez.
3 yazılır.
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?
Cevabı göster
| a | a > 0 ? | a % 2 == 0 ? | çıktı |
|---|---|---|---|
| 6 | Evet | Evet | Çift |
| 0 | Hayır | sorulmaz | Değil |
| −3 | Hayır | sorulmaz | Değil |
| 7 | Evet | Hayır | Tek |
- İ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?
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?
Cevabı göster
Çıktı: 1 4 7 10
| i | 1 | 4 | 7 | 10 | 13 |
|---|---|---|---|---|---|
| i ≤ 10 ? | Evet | Evet | Evet | Evet | Hayır |
| yazılan | 1 | 4 | 7 | 10 | — |
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?
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?
Cevabı göster
Çıktı: 25
| i | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| x (tur sonu) | 11 | 13 | 16 | 20 | 25 | çı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?
Cevabı göster
Çıktı: 11 3
| okunan x | x == 0 ? | toplam | sayac |
|---|---|---|---|
| 5 | Hayır | 5 | 1 |
| 8 | Hayır | 13 | 2 |
| −2 | Hayır | 11 | 3 |
| 0 | Evet | dö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).
Girdi 4096; sayaç basamak = 0.
Koşul sorulmadan gövde çalışır: basamak = 1, sayi = 4096 / 10 = 409.
409 > 0 → Evet: gövdenin başına dön.
basamak = 2, sayi = 40. 40 > 0 → Evet.
basamak = 3, sayi = 4. 4 > 0 → Evet.
basamak = 4, sayi = 4 / 10 = 0. 0 > 0 → Hayır.
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?
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?
Cevabı göster
Çıktı: 9 · döngü gövdesi 3 kez çalışır.
| i ≤ 5 ? | s ← s + i | i ← i + 2 |
|---|---|---|
| 1 ≤ 5 Evet | 0 + 1 = 1 | 3 |
| 3 ≤ 5 Evet | 1 + 3 = 4 | 5 |
| 5 ≤ 5 Evet | 4 + 5 = 9 | 7 |
| 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şul | i (sonra) | sayac |
|---|---|---|
| 1 <= 20 ✓ | 3 | 1 |
| 3 <= 20 ✓ | 9 | 2 |
| 9 <= 20 ✓ | 27 | 3 |
| 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
*----- **---- ***--- ****-- *****-
- İ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.)
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)
| tahmin | deneme | == 37 | < 37 |
|---|---|---|---|
| 20 | 1 | Hayır | Evet → büyük |
| 40 | 2 | Hayır | Hayır → küçük |
| 37 | 3 | Evet | sorulmaz |
İ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.