- İki yönlü ve tek yönlü dallanmayı ayırt etmek, bunları akış şeması ve sözde kodla yazmak
- İç içe koşulları ve “ve”, “veya”, “değil” ile kurulmuş bileşik koşulları değerlendirmek
- Birden çok eşkenar dörtgenli bir DİM akış şemasını verilen değerler için yürütmek
- Sonuçtan başlangıç değerlerini bulmak ve dal koşullarını denetlemek
Metro turnikesi her seferinde aynı soruyu sorar: kartta yeterli para var mı? Varsa geçiş açılır ve ücret düşülür; yoksa ekranda “Bakiye yetersiz” yazar. Turnikenin algoritması doğrusal değildir: koşulun cevabına göre iki farklı yoldan biri seçilir. Böyle algoritmalara dallanan algoritmalar denir. DİM’in algoritma sorularında birden çok eşkenar dörtgenli akış şemaları sık verilir; 2025–2026’daki her sınavda Python sorularından iki üçü de doğrudan “Koşul deyimi” konusundaydı. İkisinin de anahtarı bu derstedir.
İki yönlü ve tek yönlü dallanma
Bir koşulun doğru ya da yanlış olmasına göre iki farklı komut dizisinden birinin uygulandığı algoritma. Akış şemasında dallanmayı eşkenar dörtgen oluşturur: “Evet” ve “Hayır” çıkışları iki daldır, dallar sonra yeniden birleşir.
- İki yönlü dallanma — iki dalda da işlem vardır: “koşul doğruysa A’yı yap, değilse B’yi yap”.
- Tek yönlü dallanma — yalnızca bir dalda işlem vardır: “koşul doğruysa A’yı yap”; koşul yanlışsa algoritma hiçbir şey yapmadan devam eder.
eğer a > b ise
m = a
değilse
m = b
son
eğer x < 0 ise
x = −x
sonif a > b: … else: … ve if x < 0: …Yukarıdaki akış şemalarına göre bulun:
1) a, b çiftleri için m: (7, 3), (−2, 5), (4, 4).
2) x = −6 ve x = 9 için x’in son değeri.
3) “n % 2 = 0” koşuluyla “çift” ya da “tek” yazdıran iki yönlü dallanma — n = 14, 7, 0, −3 için.
Çözümü gösterÇözümü gizle
2) −6 < 0 — Evet → x = −(−6) = 6. 9 < 0 — Hayır → hiçbir şey değişmez, x = 9. Bu algoritma mutlak değeri bulur.
3) 14 % 2 = 0 → çift; 7 % 2 = 1 → tek; 0 % 2 = 0 → çift (0 bir çift sayıdır!); −3 % 2 = 1 (Python’da 2’ye bölümden kalan her zaman 0 ya da 1’dir) → tek.
İç içe koşullar
Dallardan birinin içinde yeni bir eşkenar dörtgen olabilir; buna iç içe dallanma denir. Onunla iki değil, üç, dört ve daha çok durum ayırt edilir. Örneğin üç sayının en büyüğünü bulmak için önce a ile b karşılaştırılır, sonra kazanan c ile karşılaştırılır. Aynı iş art arda iki tek yönlü dallanmayla daha kolay yapılabilir: m = a; b > m ise m = b; c > m ise m = c. Bu “aday” yöntemi yazılı sorularda da çok işe yarar.
“Aday” algoritmasını (m = a; b > m ise m = b; c > m ise m = c) üç giriş için yürütün: (3, 9, 5), (8, 2, 8), (−1, −4, −7).
Çözümü gösterÇözümü gizle
(8, 2, 8): m = 8 → 2 > 8 Hayır → 8 > 8 Hayır → 8 (eşitlik sorun çıkarmaz).
(−1, −4, −7): m = −1 → −4 > −1 Hayır → −7 > −1 Hayır → −1. Negatif sayılarda da çalışır, çünkü ilk aday “0” değil, a’dır.
- Ddiskriminant: D > 0 — iki kök, D = 0 — bir kök, D < 0 — gerçek kök yok
- a, b, ca·x² + b·x + c = 0 denkleminin katsayıları (a ≠ 0)
Üç durumu iki eşkenar dörtgen ayırır: önce D > 0, sonra D = 0
Akış şemasını üç giriş için yürütün: 1) a = 1, b = −5, c = 6; 2) a = 1, b = 4, c = 4; 3) a = 2, b = 1, c = 3.
Çözümü gösterÇözümü gizle
2) D = 16 − 16 = 0 → D > 0 Hayır, D = 0 Evet → x = −4/2 = −2.
3) D = 1 − 24 = −23 → iki kez “Hayır” → “Gerçek kök yok”.
Her giriş akış şemasının farklı bir yolundan geçti; üç yolun hepsi denetlendi.
İkinci dereceden denklem akış şemasında “Hayır” dalı sonraki eşkenar dörtgene gider; bu bir merdiven yapısıdır: koşullar sırayla denetlenir, ilk doğru koşulun dalı çalışır, geri kalanlara bakılmaz. Python’da bu yapı if … elif … else ile yazılır. Merdivende koşulların sırası çok önemlidir: önce “puan ≥ 50”, sonra “puan ≥ 90” denetlenirse 95 puan alan öğrenci ilk dala düşer ve “pekiyi” notunu hiç alamaz. Kural: en dar koşul önce denetlenir.
Bileşik koşullar: ve, veya, değil
Basit koşullar mantıksal işlemlerle birleşince bir bileşik koşul oluşur. “A ve B” yalnızca iki koşul da doğruyken doğrudur; “A veya B” en az biri doğruyken doğrudur; “değil A” ise A’nın tersidir. Python’da bunlar and, or, not, veri tabanı sorgularında AND, OR, NOT olarak yazılır. İşlem sırası: önce “değil”, sonra “ve”, en son “veya”; emin değilsen parantez kullan.
| A | B | A ve B | A veya B | değil A |
|---|---|---|---|---|
| doğru | doğru | doğru | doğru | yanlış |
| doğru | yanlış | yanlış | doğru | yanlış |
| yanlış | doğru | yanlış | doğru | doğru |
| yanlış | yanlış | yanlış | yanlış | doğru |
- %bölümden kalan; “yıl % 4 = 0”, yılın 4’e bölündüğü anlamına gelir
- ≠eşit değil
Gregoryen takviminde artık yıl (366 gün) kuralı; bileşik koşulun klasik örneği
Koşulu 2024, 2026, 1900 ve 2000 yılları için denetleyin.
Çözümü gösterÇözümü gizle
2026: 4’e bölünmez → parantez yanlış; 400’e de bölünmez → normal yıl.
1900: 4’e bölünür ama 100’e de bölünür → parantez yanlış; 1900 % 400 = 300 → normal yıl.
2000: parantez yanlış (100’e bölünür), ama 2000 % 400 = 0 → “veya” doğru → artık yıl.
DİM soruları: birden çok eşkenar dörtgenli akış şeması
Böyle bir soruda akış şeması bir ağaca benzer; ama verilen girişler için yalnızca bir yol izlenir. Her eşkenar dörtgende koşulu o anki değerlerle hesapla, cevabı (“Evet” ya da “Hayır”) yaz ve yalnızca o oku izle; diğer dallara bakma. En çok hata kesin ve kesin olmayan eşitsizliklerde yapılır: 60 > 60 yanlıştır, 60 ≥ 60 ise doğrudur.
1) Akış şemasına göre yazdırılan a değerini bulun.
A) 16 B) 48 C) 34 D) 8 E) 30
2) Başlangıç değerleri a = 20, b = 40 olsaydı cevap ne olurdu?
Çözümü gösterÇözümü gizle
24·2 = 48 = 40? — Hayır → a = 40 − 24 / 4 = 40 − 6 = 34. Cevap C. Dikkat: bu yolda a > b eşkenar dörtgeni hiç denetlenmez.
2) 20 + 40 = 60 > 60? — Hayır (kesin eşitsizlik!), sol dal.
20 > 40? — Hayır → a = 40 / 5 = 8. Koşulu “60 ≥ 60” diye okuyan öğrenci sağa gider, 20·2 = 40 → a = 40 bulur ve yanılır.
a = 24
b = 40
if a + b > 60:
if a * 2 == b:
a = a * 2
else:
a = b - a / 4
else:
if a > b:
a = a - b
else:
a = b / 5
print(a)▸ Beklenen çıktı
34.0
=, Python’da == olarak yazılır. / bölmesinin sonucu her zaman ondalıklıdır, bu yüzden 34.0 yazdırılır. Sınav programlarında değerler a = int(input()) ile okunur.Ters problem: sonuçtan başlangıç değeri
DİM bazen algoritmayı tersinden sorar: sonuç bilinir, a’nın başlangıç değeri ise “?” olarak verilir. Doğrusal algoritmada başlangıç değerine x deriz, her adımı x cinsinden yazarız ve bir denklem elde ederiz. Dallanan algoritmada her dal için ayrı bir denklem çözülür, sonra bulunan kökün gerçekten o dala düştüğü denetlenir.
- 1Adlandır
Bilinmeyen başlangıç değerine x de.
- 2İfade et
Her komuttan sonra değişkenleri x cinsinden yaz (sayılar yerine ifadelerle bir izleme tablosu).
- 3Eşitle
Sonucun ifadesini verilen değere eşitle ve denklemi çöz.
- 4Denetle
Her kökü algoritmada yerine koy: dal koşulları ve kısıtlar (sıfıra bölme, doğal sayı) sağlanıyor mu?
- 5Sorulanı cevapla
Soru köklerin toplamını, çarpımını ya da en büyüğünü soruyor olabilir; soruyu yeniden oku.
Algoritma: a = ?; b = a + 4; a = a · b; a = a − 2 · b. Yürütmeden sonra a = 7 oluyor. a’nın alabileceği başlangıç değerlerinin toplamını bulun.
A) 8 B) −2 C) 2 D) −15 E) 3
Çözümü gösterÇözümü gizle
x² + 2x − 8 = 7 → x² + 2x − 15 = 0 → x = 3 ya da x = −5.
Denetim: x = 3: b = 7, a = 21, a = 21 − 14 = 7 ✓; x = −5: b = −1, a = 5, a = 5 + 2 = 7 ✓.
Toplam: 3 + (−5) = −2, cevap B.
Algoritma: a = ?; a > 10 ise b = a − 10, değilse b = a + 4; b yazdırılır.
1) Çıktı 12. a’nın başlangıç değerlerinin toplamını bulun.
2) Çıktı 20. a kaç olabilir?
Çözümü gösterÇözümü gizle
“Hayır” dalı: a + 4 = 12 → a = 8; 8 > 10 yanlıştır, yani a gerçekten “Hayır” dalına düşer ✓.
Toplam: 22 + 8 = 30.
2) “Evet”: a = 30, 30 > 10 ✓. “Hayır”: a = 16, ama 16 > 10 doğrudur; böyle bir a “Evet” dalına gider ve 6 verir ✗.
Cevap: yalnızca a = 30. Denetim adımı olmasa 16 da yanlışlıkla yazılırdı.
Dallanma, algoritmaya “seçme” gücü verir. Sonraki adım aynı komutların tekrarlanmasıdır; bu, «Döngülü algoritmalar ve izleme tablosu» dersinin konusudur. Döngünün koşulu da bu dersteki gibi bir eşkenar dörtgenle denetlenir; bu yüzden eşkenar dörtgenleri akıcı okumak orada da gerekecek.
year = 2100. Artık yıl kuralını bileşik bir koşulla yazın: artık yılsa 366, değilse 365 yazdırın.
year = 2100
# print 366 for a leap year, otherwise 365▸ Beklenen çıktı
365
Önemli noktalar
- Dallanan algoritmada koşulun cevabına göre iki yoldan biri seçilir; akış şemasında bunu eşkenar dörtgen yapar.
- İki yönlü dallanmada iki dalda da, tek yönlü dallanmada yalnızca bir dalda işlem vardır.
- “A ve B” ikisi de doğruyken, “A veya B” en az biri doğruyken doğrudur; “değil (a > b)” ⇔ a ≤ b.
- DİM akış şemasında bir giriş için yalnızca bir yol izlenir: her eşkenar dörtgeni o anki değerlerle denetle, kesin eşitsizliklere dikkat et.
- Ters problemde başlangıç değerine x de, denklem kur, her kökü dal koşullarıyla denetle; köklerin toplamını Vieta teoremiyle bul.
Kendini test et
12 soru. Her doğru cevap XP kazandırır.