Algoritmik yapı "dallanma": teoriden pratiğe
Dallanma, eylemlerin yürütülme sırasının belirli bir koşulun doğruluğuna veya yanlışlığına bağlı olduğu algoritmik bir yapıdır. Basitçe söylemek gerekirse: program, olayların gelişimi için birkaç yoldan birini seçer. Koşul sağlanıyorsa (doğru), bir komut dizisi yürütülür; sağlanmıyorsa (yanlış) — başka bir dizi yürütülür.
Bu yapı, programlama mantığının temelidir. Onun olmadan bilgisayarlar şifre kontrolü, sayıları sıralama veya hava durumunu belirleme gibi kararlar alamazdı.
Temel fikir: Dallanma her zaman bir koşul kontrolü içerir. Kontrolün sonucu yalnızca iki olabilir: Evet (True) veya Hayır (False).
Gerçek hayattan örneklerle dallanma nedir
Kod yazmadan önce, algoritmaları etrafımızda görmek faydalıdır. Dallanmayı günlük hayatta sıkça kullanırız, çoğu zaman bunun farkında bile olmayız.
| Durum | Koşul | "Evet" Eylemi | "Hayır" Eylemi |
|---|---|---|---|
| Okula hazırlık | Yağmur yağıyor mu? | Şemsiye al | Kepke tak |
| Bilet alma | İndirimli kimlik var mı? | İndirimli al | Tam bilet al |
| Ev ödevi | Yarın sınav var mı? | Konuları tekrar et | Dinlen / kitap oku |
Bilişimde bu tür durumlar koşullu ifade kullanılarak tanımlanır. Dallanmanın en önemli özelliği, sadece bir dalın eylemlerinin gerçekleştirilmesi, hepsinin aynı anda çalışmamasıdır.
Algoritmalarda dallanma türleri
Okul programında (7. sınıf) genellikle dallanmanın üç ana biçimi incelenir.
1. Tam dallanma
İki alternatif içerir. Eylemler hem koşulun doğru olduğu durum hem de yanlış olduğu durum için öngörülür.
Şema: EĞER <koşul> O ZAMAN <eylem 1> DEĞİLSE <eylem 2>
Örnek: Sayı çift ise "Çift" yazdır, değilse "Tek" yazdır. Burada üçüncü bir seçenek yoktur.
2. Eksik dallanma
Eylemler sadece koşul doğru olduğunda gerçekleştirilir. Koşul yanlışsa, program bu bloğu atlar ve devam eder.
Şema: EĞER <koşul> O ZAMAN <eylem 1>
Örnek: Sıcaklık -10°C'nin altındaysa, şapka tak. (Daha sıcaksa — özel bir şey yapmayız, sadece devam ederiz).
3. Çoklu seçim (kademeli dallanma)
Arka arkaya birkaç koşulun kontrol edilmesi gerektiğinde kullanılır.
Şema: EĞER <koşul 1> O ZAMAN ... DEĞİLSE EĞER <koşul 2> O ZAMAN ... DEĞİLSE ...
Örnek: Test notu.
- Puan > 90 ise — "5"
- Değilse eğer puan > 75 ise — "4"
- Değilse eğer puan > 50 ise — "3"
- Değilse — "2"
İpucu: Çoklu seçimde koşulların sırası önemlidir. Önce daha katı veya spesifik koşullar, ardından genel olanlar kontrol edilmelidir.
Görsel temsil: Akış diyagramı
Bilişim derslerinde algoritmalar sıklıkla akış diyagramları şeklinde gösterilir. Dallanma için eşkenar dörtgen geometrik şekli kullanılır.
- Eşkenar dörtgen koşulu belirtir. İçine bir soru veya karşılaştırma yazılır (örneğin,
A > B). - Eşkenar dörtgenden iki ok çıkar:
- Biri "Evet" (veya True/Doğru) olarak etiketlenir.
- İkincisi "Hayır" (veya False/Yanlış) olarak etiketlenir.
- Her ok, kendi eylemini içeren dikdörtgene gider.
- Dal eylemleri gerçekleştirildikten sonra, çıkış hatları genellikle tek bir çizgide birleşir.
Bu, algoritmanın yolunun ikiye ayrıldığını, ancak daha sonra tekrar tek bir akış haline geldiğini açıkça gösterir.
Programlamada uygulama (Python ve Pascal)
Dillerin sözdizimi farklı olsa da mantık aynı kalır. "Sıcaklık 0 derecenin üzerindeyse dışarı çıkılabilir mi?" görevi için kod örneklerini inceleyelim.
Python Örneği
temp = int(input("Sıcaklığı girin: "))
if temp > 0:
print("Dışarı çıkabilirsin")
else:
print("Evde kalmak daha iyi")
Pascal Örneği
var temp: integer;
begin
write('Sıcaklığı girin: ');
readln(temp);
if temp > 0 then
writeln('Dışarı çıkabilirsin')
else
writeln('Evde kalmak daha iyi');
end.
Dikkat edin: Her iki durumda da if (eğer) ve else (değilse) anahtar kelimeleri algoritmanın iki dalını net bir şekilde ayırır.
Yeni başlayanların sık yaptığı hatalar
"Dallanma" konusunu öğrenirken 7. sınıf öğrencileri sıkça tipik hatalar yapar. İşte bunlardan kaçınma yolları:
-
Atama ve karşılaştırma karışıklığı.
- Hata: Eşitliği kontrol etmek için
=işaretini kullanmak (birçok dilde=atama,==ise karşılaştırmadır). - Çözüm: Dilin operatörlerine dikkatlice bakın (
==,!=,>=).
- Hata: Eşitliği kontrol etmek için
-
Aralık sınırlarının göz ardı edilmesi.
- Hata: "10 ile 14 arasında" yaş kontrolü yaparken
age > 10veage < 14yazmak. Bu, 10 ve 14 sayılarının kendisini dışlar. - Çözüm: Sınırlar dahilse
>=(büyük veya eşit) ve<=(küçük veya eşit) kullanın.
- Hata: "10 ile 14 arasında" yaş kontrolü yaparken
-
Mantıksal imkansızlık.
- Hata: Hiçbir zaman aynı anda gerçekleşmeyecek veya birbirini yanlış şekilde kapsayan koşullar yazmak.
- Örnek:
Eğer x > 5ve hemen ardındanEğer x > 10. İlk koşul küçük sayıları zaten elemişse, ikinci koşul bağlamı dikkate almalıdır.
-
"Değilse" dalının eksikliği.
- Her durumda bir cevap verilmesi gereken görevlerde, unutulmuş bir
elsedalı, koşul yanlış olduğunda programın hiçbir şey yazdırmamasına neden olur.
- Her durumda bir cevap verilmesi gereken görevlerde, unutulmuş bir
Pekiştirme için pratik görevler
Aşağıdaki durumlar için algoritmaları (sözlü veya kod olarak) oluşturmaya çalışın.
Görev 1. "Trafik ışığı"
Giriş olarak trafik ışığının rengi verilir.
- Eğer "Yeşil" ise — "Git" yazdır.
- Eğer "Sarı" ise — "Hazırlan" yazdır.
- Eğer "Kırmızı" ise — "Dur" yazdır.
- Diğer herhangi bir giriş — "Hata" yazdır.
Görev 2. "Kırtasiye dükkanı"
Bir kalem 20 lira.
- Alıcı 10'dan fazla kalem alırsa, %10 indirim.
- 50'den fazla kalem alırsa, %20 indirim.
- Nihai tutarı hesaplayın.
Önemli: İndirimli görevde önce daha büyük indirim koşulunu (50 kalem) kontrol edin, aksi takdirde "10'dan fazla" koşulu daha erken çalışır ve alıcı avantajlı fiyatı alamaz.
Görev 3. "Üçgen"
Üç sayı veriliyor (kenar uzunlukları).
- Böyle bir üçgenin var olup olmadığını kontrol edin (herhangi iki kenarın toplamı üçüncü kenardan büyük olmalıdır).
- Varsa, hangi tür olduğunu belirleyin: eşkenar, ikizkenar veya çeşitkenar.
SSS: Konuyla ilgili sorular
Sıra ve dallanma arasındaki fark nedir? Sıra, komutların bire bir, arka arkaya kesinlikle sırayla yürütülmesidir. Dallanma bu doğrusallığı bozar, verilere bağlı olarak bazı komutları atlamaya veya alternatifleri seçmeye olanak tanır.
Tek bir if operatöründe birden fazla koşul kullanılabilir mi?
Evet. Bunun için VE (AND), VEYA (OR) mantıksal bağlaçları kullanılır. Örneğin: Eğer (yağmur VE şemsiye yok) O ZAMAN evde kal.
Koşul her zaman yanlışsa ne olur?
Tam dallanmada koşul yanlışsa, else bloğu yürütülür. Dallanma eksikse (else olmadan), program bu bloğu görmezden gelir ve if yapısından sonraki bir sonraki komuta geçer.
Döngüler varken dallanmaya neden ihtiyaç vardır? Döngüler eylemlerin tekrarlanmasından, dallanma ise eylemlerin seçilmesinden sorumludur. Gerçek programlarda neredeyse her zaman birlikte çalışırlar: döngü verileri tarar, dallanma ise her bir öğeyle ne yapılacağına karar verir.