Eğer bu mesajı görüyorsanız, web sitemizde dış kaynakları yükleme sorunu yaşıyoruz demektir.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Ana içerik

Düğme Bloğu

Koşula göre robot davranışını denetleme. Orijinal video Brit Cruise tarafından hazırlanmıştır.

Tartışmaya katılmak ister misiniz?

Henüz gönderi yok.
İngilizce biliyor musunuz? Khan Academy'nin İngilizce sitesinde neler olduğunu görmek için buraya tıklayın.

Video açıklaması

Switch Bloğu Switch(Sviç) ifadeleri çok önemlidir. Çünkü robotunuzun davranışlarını belli bir koşula bağlı olarak değiştirmemize olanak sağlarlar. Diyelim ki bir program yazıyorsunuz. Ben programlarımı yazmaya başlamadan önce mutlaka akış diyagramını çizerim. Program bir şeyler yapmaya yarar. Mesela motorları döndürür, veya bir ses çalar. Bazen öyle bir noktaya gelirsiniz ki, programın yapacağı işi belli bir koşula göre dallandırmanız gerekir. Mesela “Eğer dokunma sensörüne basılırsa şunu yap; bazılmazsa şunu yap,” gibi. İşte switch ifademiz, bu dallanmanın tam göbeğini oluşturuyor. Bunu, ardıllık doğrusunu iki muhtemel uygulama yoluna ayırmak gibi düşünebilirsiniz. Şimdi bu bilgimizi nesne dedektörü gibi basit bir örnekle pekiştirelim. Nesne detektörümüzü yapmaya başlayalım. Switch ifadesi, “akış” menüsünde yer alıyor. İşte Simgesi de bu. Gördüğünüz gibi, ardıllık doğrusunu iki muhtemel uygulama yoluna bölüyor. Hangi yolun seçileceğini bu ayar belirliyor. İfade, bir sensörden kumanda almaya ayarlı. İfadeyi kontrol etmek için istediğimiz sensörü seçebiliriz. Biz bir nesne detektörü yapacağız. Ama istersek bir ses seviye sensörü de kullanabilir ve örneğin bir alkış sesi dedektörü yapabiliriz. Veya ifadeyi bir ışık sensöründen komut alacak şekilde ayarlayabiliriz. Ama biz bir nesne dedektörü yapacağımız için, ultrasonik sensörü tercih ediyoruz. Burası önemli. Sensörün bağlı olduğu portu seçiyoruz. Ben en sık burada hata yapıyorum. Sensörü üçüncü porta bağladık, o yüzden üçüncü portu seçtik. Şimdi geldik en önemli aşama olan “karşılaştırma” kısmına. “Yakın,” “parlak,” veya “yüksek” gibi sözcükler muğlak sözcüklerdir. Programa “yakın”dan kastımızın ne olduğunu net bir şekilde tanımlamamız gerekir. Nesne sensörü örneğinde, bu tanımı yapmak için bu sürgüyü “yakın” ve “uzak” arasında kaydırıyoruz. Diyoruz ki, “20 inçin yani 50 santimetrenin altı, yakındır.” “Yakın”ı temsil eden bu çiçek simgesi seçiliyse, sensör, 20 inçten daha yakındaki cisimleri tespit eder. Dağ simgesiyse, “uzak” anlamına geliyor. Bunu seçersek, sensör ,20 inçten daha uzaktaki cisimleri, veya sensörün önünde bir cismin var olmadığını algılar. Switch ifademize baktığımızda, ultrasonik sensör simgesini görüyoruz. Evet. Doğru Güzel. Yandaki çiçek ve dağ ikonları da bize şunu anlatıyor Eğer sensör 20 inçten yakında bir cisim tespit ederse, program üstteki yolu izleyecek. Aksi takdirde, alttaki yoldan devam edecek. Sensör bir cisim tespit ettiğinde bir ton çalsın. Çıktı menümüzü açıyoruz, ses bloğunu sürükleyip, switch ifademizin üst kısmına bırakıyoruz. İki uygulama yolu bu şekilde daha net görülebiliyor. Sensör bir cisim tespit ederse, ses bloğu bir ses çalacak. Aksi takdirde hiçbir şey olmayacak. Ses bloğuna bir ton çaldırmak istiyoruz. Şu an ton yerine “ses dosyası” seçili. “Ton”a tıklıyoruz ve bir nota seçiyoruz. Mesela bir cisim tespit ederse do notasını çalsın. Programı çalıştırmadan önce, ifadeyi bir döngü içine alalım. Yoksa bir kez çalışıp durur. Davranış devingen olmaz. “Akış” menüsünden “döngü”yü alıp buraya sürüklüyoruz. Döngü, varsayılan haliyle boştur. Bu haliyle sonsuz kez tekrar eder. Bizim de istediğimiz bu. O yüzden hiçbir şeyi değiştirmemiz gerekmiyor. Tüm ifadeyi seçip döngünün içine sürüklememiz yeterli. Evet. İşte oldu. Döngü otomatik olarak genişledi. Switch ifademiz içeride. Haydi Çalıştıralım bakalım.