Bir cümlelik özet
Koşullar, bir programın veya robotun mevcut durumu kontrol edip farklı sonuçlara göre farklı komutlar uygulamasını sağlar.
Neden önemli?
Bir robot her durumda aynı hareketi yaparsa çevresindeki değişikliklere tepki veremez. Önünde engel olsa da ilerler, ortam aydınlık olsa da lambayı yakar veya pil azalsa da çalışmayı sürdürür. Koşullar sisteme karar verme yeteneği kazandırır.
Koşulun temel yapısı
Eğer koşul doğruysa
bir işlem yap
Değilse
başka bir işlem yap
Örnek:
Eğer yağmur yağıyorsa
şemsiyeyi al
Değilse
şemsiyeyi alma
Burada “yağmur yağıyor mu?” sorusu yalnız iki sonuç üretir: Evet veya hayır.
Karşılaştırmalar
Koşullarda sık kullanılan karşılaştırmalar:
- Eşit mi?
== - Eşit değil mi?
!= - Büyük mü?
> - Küçük mü?
< - Büyük veya eşit mi?
>= - Küçük veya eşit mi?
<=
Python örneği:
sicaklik = 29
if sicaklik >= 30:
print("Hava çok sıcak")
else:
print("Sıcaklık 30 derecenin altında")
Robotik örneği: Engel algılama
Mesafeyi ölç
Eğer mesafe 15 santimetreden küçükse
motorları durdur
sağa dön
Değilse
ileri git
Robot her ölçümde yeni karar verir. Böylece sabit bir hareket dizisi yerine çevresine tepki verir.
Birden fazla koşul
Bazen iki sonuç yeterli değildir.
puan = 78
if puan >= 90:
print("Çok iyi")
elif puan >= 70:
print("İyi")
else:
print("Konuyu yeniden gözden geçir")
Burada program koşulları yukarıdan aşağıya kontrol eder ve ilk doğru bölüm çalışır.
Mantıksal bağlaçlar
VE
İki koşulun da doğru olması gerekir.
Eğer kask takılıysa VE frenler çalışıyorsa
sürüş kontrolünün sonraki adımına geç
VEYA
Koşullardan en az birinin doğru olması yeterlidir.
Eğer sağ sensör VEYA sol sensör engel görüyorsa
yavaşla
DEĞİL
Bir durumun tersini kontrol eder.
Eğer kapı kapalı DEĞİLSE
içeri gir
İç içe koşullar
Bir kararın içinde başka karar bulunabilir:
Eğer pil seviyesi yeterliyse
Eğer ön taraf boşsa
ileri git
Değilse
dur ve yön değiştir
Değilse
şarj istasyonuna dön
İç içe koşullar yararlı olsa da çok çoğalırsa kodun okunmasını zorlaştırabilir. Bu durumda problemi daha küçük fonksiyonlara ayırmak gerekir.
Sınır değerlerini test etmek
Koşullarda en sık yapılan hatalardan biri eşik değerini yanlış düşünmektir.
Eğer mesafe 10'dan küçükse dur
Mesafe tam 10 olduğunda ne olacak? Sistem durmayacak. Ama güvenlik için 10 dahil olmalıysa koşul şöyle yazılmalıdır:
Eğer mesafe 10'dan küçük veya eşitse dur
Testlerde eşik değerinin hemen altı, tam kendisi ve hemen üstü denenmelidir:
- 9
- 10
- 11
Mini uygulama: Akıllı spor çantası kontrolü
Kurallar:
- Basketbol antrenmanıysa top ve su kontrol edilmeli.
- Yüzme antrenmanıysa bone, gözlük ve havlu kontrol edilmeli.
- Su şişesi boşsa doldurulmalı.
- Eksik malzeme varsa çıkışa izin verilmemeli.
Sözde kod:
Antrenman türünü al
Eğer tür basketbol ise
topu kontrol et
suyu kontrol et
Değilse eğer tür yüzme ise
boneyi kontrol et
gözlüğü kontrol et
havluyu kontrol et
Eğer su şişesi boşsa
su şişesini doldur
Eğer eksik malzeme varsa
“Eksikleri tamamla” uyarısı göster
Değilse
“Hazırsın” mesajı göster
Uygulama laboratuvarı: Koşullar: Eğer, Değilse ve Karar Verme
Koşullar: Eğer, Değilse ve Karar Verme konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Koşulun temel yapısı ile Robotik örneği: Engel algılama arasındaki ilişkiyi kullanarak açık bir algoritma, sözde kod ve test tablosu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.
Görev senaryosu
Şu senaryoyu ele al: yanlış girdiyi fark edip yeniden isteyen bir kontrol sistemi. Dersin ana hedefi “Koşullar, bir programın veya robotun durumu kontrol edip farklı sonuçlara göre farklı komutlar uygulamasını sağlar” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.
Başarı ölçütleri
- Adımlar açık ve tek anlamlı mı?
- Başlangıç ve bitiş koşulu belli mi?
- Normal, sınır ve hatalı durumlar denendi mi?
- Gereksiz tekrar veya adım var mı?
- Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?
“Koşullar: Eğer, Değilse ve Karar Verme” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın yanlış girdiyi fark edip yeniden isteyen bir kontrol sistemi senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Koşulun temel yapısı ve Robotik örneği: Engel algılama ilişkisini daha küçük adımlara bölerek düzelt.
Kavramı başka bir bağlama taşı
Koşullar: Eğer, Değilse ve Karar Verme yalnız bu dersteki örnekle sınırlı değildir. Aynı düşünme biçimini okul, spor, ev düzeni veya başka bir robotik çalışmada kullanabilirsin. Yeni bağlam seçerken önce değişmeyen kuralı bul: Koşulun temel yapısı hangi durumda aynı kalır, Robotik örneği: Engel algılama hangi koşulda değişir? Bu ayrım, ezberlenen örneği gerçek problem çözme becerisine dönüştürür.
Karar günlüğü
Bir tablo oluştur ve üç satır kullan: “ilk kararım”, “testte gördüğüm”, “değiştirdiğim”. Her satıra kısa ama ölçülebilir bir cümle yaz. “Daha iyi oldu” yerine “üç denemenin ikisinde doğru sonuç verdi” gibi gözlenebilir ifadeler seç. Böylece sonraki sürümde hangi değişikliğin işe yaradığını unutmazsın.
Kendi sorunu üret
Dersin sonundaki kontrol sorularından farklı bir soru yaz ve cevabını iki yolla doğrula. Birinci yol, adımları elle izlemek; ikinci yol ise kodu, devreyi veya modeli test etmektir. İki sonuç uyuşmuyorsa önce girdileri ve varsayımları karşılaştır. Bu çalışma, yalnız cevabı bulmayı değil, cevabın güvenilirliğini sorgulamayı öğretir.
Sık yapılan hatalar
=ile==işaretlerini karıştırmak.- Eşik değerini dahil edip etmemeyi düşünmemek.
- “Değilse” durumunu tanımlamamak.
- Birbiriyle çelişen koşullar yazmak.
- Önce daha genel koşulu yazıp özel koşulun hiç çalışmamasına neden olmak.
Örnek yanlış sıra:
if puan >= 70:
print("Başarılı")
elif puan >= 90:
print("Mükemmel")
95 alan biri ilk koşulda durur ve “Mükemmel” sonucu hiç çalışmaz. Daha özel yüksek eşik önce yazılmalıdır.
Güvenlik notu
Fiziksel projelerde motorlar bir koşul sağlandığında aniden hareket edebilir; ellerini, saçını ve gevşek kabloları hareketli parçalardan uzak tut. Güvenlik amaçlı durdurma koşullarında sınırı dahil etmek için <= kullan (örneğin “mesafe 10'dan küçük veya eşitse dur”). Denemeleri düşük hızda ve yetişkin gözetiminde yap.
Ders özeti
- Koşullar sisteme karar verme yeteneği kazandırır.
- “Eğer / değilse” en temel karar yapısıdır.
- Karşılaştırma ve mantıksal bağlaçlar daha ayrıntılı kararlar kurar.
- Eşik değerleri sınır testleriyle kontrol edilmelidir.
- Koşulların sırası sonucu değiştirebilir.
Kontrol soruları
- Koşul ne işe yarar?
>ile>=arasındaki fark nedir?- VE ve VEYA bağlaçları arasındaki fark nedir?
- Neden yüksek puan koşulu daha önce kontrol edilmelidir?
- Mesafe 10 santimetre veya daha azsa duran robot için sözde kod yaz.
Cevaplar
- Koşul, bir programın veya robotun mevcut durumu kontrol edip farklı sonuçlara göre farklı komutlar uygulamasını, yani karar vermesini sağlar.
>yalnızca kesin olarak büyük değerlerde doğrudur;>=ise eşit durumu da kapsar (büyük veya eşit).- VE bağlacında iki koşulun da doğru olması gerekir; VEYA bağlacında koşullardan en az birinin doğru olması yeterlidir.
- Program koşulları yukarıdan aşağıya kontrol edip ilk doğru olanı çalıştırdığı için. Daha genel (düşük eşik) koşul önce yazılırsa yüksek eşik koşulu hiç çalışmayabilir.
- Sözde kod:
Mesafeyi ölç
Eğer mesafe 10'dan küçük veya eşitse
motorları durdur
Değilse
ileri git
Ek doğrulama görevi
“Koşullar: Eğer, Değilse ve Karar Verme” için ikinci bir örnek oluştur: yanlış girdiyi fark edip yeniden isteyen bir kontrol sistemi. İlk çözümü aynen kopyalamak yerine Koşulun temel yapısı kavramının hangi bölümde, Robotik örneği: Engel algılama kavramının hangi kararda kullanıldığını işaretle. Sonucu değerlendirmek için şu iki soruya yazılı cevap ver: “Beklediğim davranış neydi?” ve “Gerçekte hangi kanıtı gördüm?”
Ardından kontrol listesinden özellikle “Adımlar açık ve tek anlamlı mı?” ve “Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?” maddelerini kullan. İlk denemede fark bulamazsan bir sınır koşulu ekle; örneğin en küçük değer, en büyük değer, boş giriş, bağlantı kaybı veya yeniden başlatma durumu. Son notunda yaptığın tek değişikliği ve bu değişikliğin sonucu nasıl etkilediğini açıkla.
Kaynak ve doğrulama notu
“Koşullar: Eğer, Değilse ve Karar Verme” dersi için doğrulama odağı Koşulun temel yapısı ile Robotik örneği: Engel algılama arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu dersteki algoritmalar, örnek girdiler elle izlenerek ve beklenen çıktılarla karşılaştırılarak doğrulanmıştır. Sözde kod, belirli bir programlama diline bağlı kalmadan düşünme sırasını görünür kılmak için kullanılır.
Sonraki ders
Döngüler: Tekrar Eden İşleri Kolaylaştırmak