Döngüler

Sürekli, N kez ve koşullu tekrar bloklarıyla işleri Scratch'te otomatikleştir.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Döngü, aynı blokları tekrar tekrar yerleştirmeden Scratch'te bir kuklaya bir işi birçok kez yaptırmamızı sağlayan yapıdır.

Üretilecek kanıt

Bir kuklaya kalemle sekizgen (8 kenarlı şekil) çizdiren bir program yaz. "… kez tekrarla" bloğuna hangi sayıyı yazmalısın? Her köşede kaç derece dönmelisin? (İpucu: 360'ı kenar sayısına böl.) Blok dizini önce kâğıda çiz, sonra Scratch'te dene. "kalemi bas" bloğunu döngüden önce koymayı unutma. Bittiğinde tekrar sayısını ve açıyı bir üçgen çizecek şekilde…

Kontrol tuzağı

"kalemi bas" bloğunu unutmak Kukla döngüyü çalıştırır, ekranda hareket eder ama hiçbir iz kalmaz. Bunun nedeni genellikle Kalem (Pen) kategorisindeki "kalemi bas" bloğunu döngüden önce koymayı unutmaktır. İz istiyorsan çizim başlamadan önce kalemi basmalısın. Yanlış dönüş açısı "… kez tekrarla" sayısı doğru ama şekil…

Sonraki bağlantı

Değişkenler ve Listeler

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulKoşullar ve Algılama
İçerikStandart ders · 1.390 kelime
Son güncelleme

Bir cümlelik özet

Döngü, aynı blokları tekrar tekrar yerleştirmeden Scratch'te bir kuklaya bir işi birçok kez yaptırmamızı sağlayan yapıdır.

Neden önemli?

Bir kuklanın kare çizmesini istediğini düşün. Kare dört kenardan oluşur, yani "ilerle" ve "dön" bloklarını dört kez alt alta yerleştirmen gerekir. Peki bir yıldız ya da otuz kenarlı bir şekil çizmek istersen? Aynı blokları otuz kez sürüklemek hem çok yorucu hem de hata yapmaya çok açıktır.

Döngü tam burada işe yarar. "Şu blokları belli bir sayıda tekrarla" diyerek uzun bir işi tek bir küçük yapıyla anlatırız. Kod hem kısalır hem de bir yeri değiştirmek istediğimizde tek bir sayıyı düzeltmek yeterli olur.

Algoritma modülünde tekrar fikrini öğrenmiştik: aynı adımları döngü içinde toplamak. Scratch bu fikri turuncu Kontrol (Control) kategorisindeki tekrar bloklarıyla görünür hale getirir. Bir önceki derste öğrendiğimiz koşullar da burada karşımıza çıkar; çünkü bazı döngülerin ne zaman duracağına bir koşul karar verir.

Scratch'te üç tekrar bloğu

Scratch'te döngüler turuncu Kontrol (Control) kategorisinde bulunur. Üç temel tekrar bloğu vardır. Her birini önce tanıyalım, sonra örnekle görelim.

1. "sürekli tekrarla" (forever)

Bu blok, içindeki blokları hiç durmadan tekrar eder. Bir başlangıcı vardır ama kendiliğinden biten bir sonu yoktur; kukla yeşil bayrak durdurulana kadar çalışır. Kesintisiz hareket, sürekli algılama veya bir animasyon için kullanılır.

Örnek: Kuklanın ekranda hiç durmadan gidip kenardan sekmesi.

yeşil bayrağa tıklandığında
sürekli tekrarla
  10 adım git
  eğer <kenara değiyor?> ise
    180 derece dön

Burada Hareket (Motion) kategorisindeki "10 adım git" ile Algılama (Sensing) kategorisindeki "kenara değiyor?" bloğunu birlikte kullandık. Kukla sürekli ilerler, kenara değince geri döner ve bu sonsuza kadar sürer.

2. "… kez tekrarla" (repeat)

Kaç kez tekrar edeceğimizi baştan biliyorsak bu bloğu kullanırız. Blokların içindeki sayı, tekrar sayısını gösterir. Belirtilen sayı kadar döndükten sonra döngü kendiliğinden durur.

Örnek: Kuklanın 4 kez ilerleyip dönerek kare çizmesi.

yeşil bayrağa tıklandığında
kalemi bas
4 kez tekrarla
  100 adım git
  90 derece sağ dön
kalemi kaldır

Burada Kalem (Pen) kategorisindeki "kalemi bas" bloğu kuklanın arkasında iz bırakmasını sağlar. Kukla 4 kez ilerleyip 90 derece döner, böylece ekranda bir kare belirir.

3. "… olana kadar tekrarla" (repeat until)

Bazen kaç kez tekrar edeceğimizi baştan bilmeyiz; ama döngünün ne zaman durması gerektiğini bir koşulla anlatabiliriz. Bu blok, içindeki koşul doğru olana kadar çalışır. Koşul doğru olduğu anda döngü durur.

Örnek: Kukla, fareye değene kadar ona doğru ilerlesin.

yeşil bayrağa tıklandığında
<fare-imlecine değiyor?> olana kadar tekrarla
  fare-imlecine doğru dön
  5 adım git

Burada Algılama (Sensing) kategorisindeki "fare-imlecine değiyor?" bloğu koşuldur. Kukla fareye ulaşana kadar ona doğru ilerler, ulaştığı anda durur. Kaç adım atacağını önceden bilmemize gerek yoktur.

Kalem ile çokgen çizmek

Döngülerin en güzel örneklerinden biri çokgen çizmektir. Kalem (Pen) kategorisi, kuklanın hareket ederken arkasında iz bırakmasını sağlar. Bir döngüyle kuklayı kenar boyunca ilerletir, her köşede döndürürüz.

Kuralı bulmak: dönüş açısı

Bir çokgenin her köşesinde kaç derece dönmemiz gerektiğini bulmak kolaydır: 360'ı kenar sayısına böl. Kuklanın dönme yönü bir tam tur olan 360 dereceyi tamamlamalıdır.

Örnek: Altıgen çizen kukla

yeşil bayrağa tıklandığında
kalem rengini mavi yap
kalemi bas
6 kez tekrarla
  80 adım git
  60 derece sağ dön
kalemi kaldır

Bu programda kukla altı kez ilerler ve her köşede 60 derece döner. Sonuçta düzgün bir altıgen çıkar. Tekrar sayısını ve dönüş açısını yukarıdaki kurala göre değiştirirsen istediğin çokgeni çizebilirsin. Bir döngüyü değiştirmek, sadece bir sayıyı değiştirmek kadar kolaydır.

Mini uygulama

Bir kuklaya kalemle sekizgen (8 kenarlı şekil) çizdiren bir program yaz.

  1. "… kez tekrarla" bloğuna hangi sayıyı yazmalısın?
  2. Her köşede kaç derece dönmelisin? (İpucu: 360'ı kenar sayısına böl.)
  3. Blok dizini önce kâğıda çiz, sonra Scratch'te dene. "kalemi bas" bloğunu döngüden önce koymayı unutma.

Bittiğinde tekrar sayısını ve açıyı bir üçgen çizecek şekilde değiştir. Aynı program hangi iki sayıyla üçgen çizer?

Uygulama laboratuvarı: Döngüler

Döngüler 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 Scratch'te üç tekrar bloğu ile 2. "… kez tekrarla" (repeat) arasındaki ilişkiyi kullanarak çalışan bir Scratch sahnesi, blok düzeni ve test listesi 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: basketbol atışlarını sayan ve seviye yükselten sahne. Dersin ana hedefi “Sürekli, N kez ve koşullu tekrar bloklarıyla işleri Scratch'te otomatikleştir” 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

“Döngüler” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın basketbol atışlarını sayan ve seviye yükselten sahne senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Scratch'te üç tekrar bloğu ve 2. "… kez tekrarla" (repeat) ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

"kalemi bas" bloğunu unutmak

Kukla döngüyü çalıştırır, ekranda hareket eder ama hiçbir iz kalmaz. Bunun nedeni genellikle Kalem (Pen) kategorisindeki "kalemi bas" bloğunu döngüden önce koymayı unutmaktır. İz istiyorsan çizim başlamadan önce kalemi basmalısın.

Yanlış dönüş açısı

"… kez tekrarla" sayısı doğru ama şekil kapanmıyorsa, çoğu zaman dönüş açısı yanlıştır. Şekil kapanmıyorsa "360'ı kenar sayısına böl" kuralını yeniden hesapla. Örneğin kare için 90 yerine 60 yazarsan şekil kapanmaz.

"sürekli tekrarla" içinde bekleme koymamak

"sürekli tekrarla" bloğunun içine sadece bir renk veya kostüm değişimi koyarsan, değişim o kadar hızlı olur ki gözün fark edemez. Animasyonlarda genellikle Kontrol (Control) kategorisindeki "1 saniye bekle" gibi bir bloğa ihtiyaç duyarsın.

Bir eksik ya da bir fazla tekrar

Çok karşılaşılan bir hata, döngünün bir kez eksik ya da bir kez fazla dönmesidir. Kare çizerken 4 yerine 3 yazarsan bir kenar eksik kalır. Emin olmak için küçük bir sayıyla dene ve kaç kenar çizildiğini gözünle say.

Güvenlik notu

Bu ders tamamen ekran başında yapılır; elektronik ya da alet kullanılmaz. Yine de "sürekli tekrarla" bloğu programı hiç durmadan çalıştırdığı için ekran başında uzun süre kalmak kolaydır. Her 20–30 dakikada bir mola ver, ekrandan uzağa bak ve gözlerini dinlendir. Scratch'te başkalarının projelerini incelerken veya yorum yazarken kişisel bilgilerini (adres, telefon, okul adı) paylaşma ve bir yetişkinin haberi olsun.

Ders özeti

Kontrol soruları

  1. "sürekli tekrarla" ile "… kez tekrarla" blokları arasındaki temel fark nedir?
  2. Bir kuklanın kalemle beşgen çizmesi için döngüyü kaç kez tekrarlaman ve her köşede kaç derece dönmen gerekir?
  3. Bir kuklanın kalemi hareket ederken iz bıraksın istiyorsun ama hiçbir çizgi çıkmıyor. En olası neden nedir?
  4. "… olana kadar tekrarla" bloğunu hangi durumda kullanmak, "… kez tekrarla" bloğuna göre daha uygundur?
  5. Aşağıdaki blok dizisi ekranda nasıl bir şekil çizer?
kalemi bas
3 kez tekrarla
  100 adım git
  120 derece sağ dön
kalemi kaldır

Cevaplar

  1. "sürekli tekrarla" içindeki bloklar kendiliğinden bitmeden, program durdurulana kadar tekrar eder. "… kez tekrarla" ise yazdığımız sayı kadar döndükten sonra kendiliğinden durur.
  2. 5 kez tekrarlamak ve her köşede 72 derece (360 ÷ 5) dönmek gerekir.
  3. En olası neden, döngüden önce Kalem (Pen) kategorisindeki "kalemi bas" bloğunu koymayı unutmaktır. Kalem basılı değilse kukla hareket eder ama iz bırakmaz.
  4. Kaç kez tekrar edeceğimizi baştan bilmediğimiz, ama döngünün ne zaman durması gerektiğini bir koşulla anlatabildiğimiz durumlarda. Örneğin "bir kenara değene kadar ilerle" gibi görevlerde.
  5. Bir üçgen çizer. Kukla üç kez ilerler ve her köşede 120 derece (360 ÷ 3) döner.

Kaynak ve doğrulama notu

“Döngüler” dersi için doğrulama odağı Scratch'te üç tekrar bloğu ile 2. "… kez tekrarla" (repeat) arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Blok adları Scratch’in güncel temel kategorileriyle uyumlu tutulmuştur. Proje davranışı; başlangıç, normal oyun, hata ve yeniden başlatma durumlarında ayrı ayrı denenmelidir.

Sonraki ders

Değişkenler ve Listeler

Quiz’i BaşlatScratch ile Programlama 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.