Ana Sayfa · Akademi · Robotik ve Kodlama · Algoritmalar · Koşullar: Eğer, Değilse ve Karar Verme

Koşullar: Eğer, Değilse ve Karar Verme

Koşullar, bir programın veya robotun durumu kontrol edip farklı sonuçlara göre farklı komutlar uygulamasını sağlar.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Koşullar, bir programın veya robotun mevcut durumu kontrol edip farklı sonuçlara göre farklı komutlar uygulamasını sağlar.

Üretilecek kanıt

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 tuzağı

= 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…

Sonraki bağlantı

Döngüler: Tekrar Eden İşleri Kolaylaştırmak

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulAlgoritma ve sıralama
İçerikStandart ders · 1.314 kelime
Son güncelleme

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:

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:

Mini uygulama: Akıllı spor çantası kontrolü

Kurallar:

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.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. 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

“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

Ö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

Kontrol soruları

  1. Koşul ne işe yarar?
  2. > ile >= arasındaki fark nedir?
  3. VE ve VEYA bağlaçları arasındaki fark nedir?
  4. Neden yüksek puan koşulu daha önce kontrol edilmelidir?
  5. Mesafe 10 santimetre veya daha azsa duran robot için sözde kod yaz.

Cevaplar

  1. 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.
  2. > yalnızca kesin olarak büyük değerlerde doğrudur; >= ise eşit durumu da kapsar (büyük veya eşit).
  3. 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.
  4. 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.
  5. 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

Quiz’i BaşlatAlgoritmalar bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.