Page 25 - Bilgisayar Bilimi Kur 1| I. Bölüm
P. 25
ise en sıkı kısıtlamalara sahip olan iş arkadaşınızla konuşarak başlayın. Örneğin Serhan’ın bir dizi geniş
gıda alerjisi varsa Can’dan başlamak yerine, Serhan’ın yiyebileceği yemeklerin olduğu bir restoran listesi
bularak başlamak daha mantıklı olacaktır. Deniz ürünlerinden hoşlanmaması daha kolay çözülebilir.
Aynı teknik, genellikle programlama problemlerine uygulanabilir. Sorunun bir kısmı aşırı derecede
kısıtlıysa bu, başlamak için harika bir yer çünkü daha sonradan çözülecekse iş yerinde boşa vakit geçir-
diğinizi düşünmeden ilerleme kaydedebilirsiniz. Bununla ilgili bir sonuç, belirgin olan kısmı ile baş-
lanması gerektiğidir. Sorunun bir bölümünü çözebilirseniz devam edin ve mümkün olanı yapın. Kendi
kodunuzu görmek, gerisini çözmek hayal gücünüzü artıracak ve bundan bir şeyler öğrenebileceksiniz.
2.1.5.3. Dikdörtgeni Parçalara Ayırma
Bir dikdörtgenden nasıl dik üçgenler oluşturabiliriz?. Buna göre, bir dikdörtgeni bölerek, oluşturu-
labilecek dik üçgenleri şekil çizerek gösteriniz.
Bir dikdörtgenin kısa kenarı 1 cm olduğunda uzun kenarının 1 cm’den büyük olması gerekmekte-
dir. Uzun kenar 2 cm olduğunda A-1 şeklinde gösterilen dik üçgenler elde edilir. Oluşan dik üçgenler-
den her birini de A-2 şeklinde dik üçgenlere ayırabiliriz.
İkinci çözüm yolu ise B-1 şeklindeki gibi dikdörtgen içerisinde birbirine paralel çizgiler oluşturmak-
tır. Oluşan küçük üçgenleri de B-2 şeklinde gösterilen biçimde dik üçgen olacak şekilde bölebiliriz.
A-1 A-2 B-1 B-2
Bu problemden neler öğrendik?
İlk çözümde aşağıdan yukarıya adım adım yapılan bir strateji kullanılmıştır. İkinci çözümde ise
dikdörtgen farklı üçgenlere çevrilmiş ve elde edilen üçgenlerden tekrar dik üçgen elde edilmiştir.
2.1.5.4. Engelli Yollar
Şekil 1.6’da gösterilen A noktasından B noktasına gidebilmek için gri ile gösterilen alandan geçiş
bulunmamaktadır. Buna göre A’dan B’ye gidebilmek için kaç farklı yol kullanılabilir?
A
B
Şekil 1.6
39