31. Hafta: Scratchte Hata Ayıklama

Bir program yazılırken veya yazılmış bir programı incelerken istemeden yapılan yanlışlıklara hata (bug) denir. Bu hataları bulma ve düzeltme işlemine ise hata ayıklama (debugging) denir.

📌Kazanım: BT.6.5.2.3. Blok tabanlı programlama aracında sunulan bir programın hatalarını ayıklar.
Süre: 2 Ders Saati

🎯 Bu Konuda Neler Öğreneceğiz?

  • Scratch’te hazır verilmiş bir programda hata olup olmadığını fark edebileceksin.
  • Hataların neden kaynaklandığını açıklayabileceksin.
  • Hataları bulup düzelterek programı doğru çalışır hale getirebileceksin.

Hata Ayıklama Nedir?

Bir program yazılırken veya yazılmış bir programı incelerken istemeden yapılan yanlışlıklara hata (bug) denir. Bu hataları bulma ve düzeltme işlemine ise hata ayıklama (debugging) denir.

💡 Gerçek Hayat Benzetmesi: Hata ayıklamayı, bir arkadaşının hazırladığı yemek tarifini kontrol etmek gibi düşünebilirsin. Tarifte “1 kilo tuz ekle” yazıyorsa bunu fark edip “1 tatlı kaşığı olmalı” diye düzeltirsin. Programlamada da aynı mantık geçerlidir.

Hata ayıklama, programlamacıların her gün yaptığı çok önemli bir beceridir. Scratch’te hata ayıklamak için bir programı dikkatli okumak, “Bu blok ne yapıyor?” diye sormak ve programı çalıştırarak sonucun beklentiyle örtüşüp örtüşmediğini kontrol etmek gerekir.


Scratch’te Hata Türleri

Scratch’te üç ana hata türü karşımıza çıkar:

1. Eksik Blok Hatası

Programın çalışması için gerekli olan bir blok unutulmuştur. Örneğin Yeşil bayrağa tıklandığında bloğu yoksa program hiç başlamaz.

2. Yanlış Değer Hatası

Bir blok var, ancak içindeki sayı veya metin yanlış girilmiştir. Örneğin kukla 10 adım gitmeli ama 100 yazılmıştır — kukla sahneden çıkıp kaybolur.

3. Yanlış Sıralama Hatası

Bloklar doğrudur ama yanlış sırayla dizilmiştir. Tıpkı önce “Ateşi yak” sonra “Gazı aç” yerine yanlış sırayla yapıldığında tehlikeli sonuçlar doğurması gibi.

Proje: “Kayak Yapalım” Animasyonu

Animasyonun Hikâyesi

Bu projede Scratch’te kurgulanan bir kayak animasyonu var. Animasyonun olması gereken akışı şöyle:

  1. Sahne açılır: Karlı bir dağ yamacı görünür.
  2. Kayakçı kukla sahnenin sol tarafından başlar.
  3. Yeşil bayrak tıklandığında kayakçı sağa doğru kayarak ilerler.
  4. Kayakçı ilerlediği sırada “Merhaba!” diye bağırır (konuşma balonu çıkar).
  5. Kayakçı sahnenin sağ kenarına ulaşınca durur.

Animasyonun Scratch Kurgusu (Nasıl Yapılır?)

Animasyonu sıfırdan kurgulamak isteseydin şu adımları takip ederdin:

Kullanılacak kuklalar ve arkaplan:

  • Kukla: Scratch kitaplığından Kai veya benzer bir insan figürü (kayakçı olarak kullanılır)
  • Arkaplan: Scratch kitaplığından Winter (kış) veya Mountain (dağ) temalı bir arka plan

Kayakçı kuklasına yazılacak kod:

📌 Neden döngü kullandık? Tek bir “15 adım git” bloğu kayakçıyı yalnızca küçük bir mesafe taşır. Döngü sayesinde bu hareket 10 kez tekrarlanır ve kayakçı daha uzun bir mesafe kat eder. Döngüyü Kontrol (turuncu) kategorisinde bulabilirsin.

📌 x: -110, y: -80 ne demek? Scratch sahnesinde orta nokta X=0, Y=0’dır. Negatif X değeri sol tarafı, pozitif X değeri sağ tarafı gösterir. Kayakçımız animasyon başında sol taraftan başlasın diye X değeri negatif verilmiştir.


Hata Ayıklama Etkinliği

Aşağıda bu animasyon için yazılmış hatalı bir kod gösteriliyor. Kodun içinde 4 hata gizlenmiş. Her hatayı bul, nedenini açıkla ve doğrusunu yaz.


Hatalı Kod

⚠️ Dikkat: Yukarıdaki kod bloklarının başında Yeşil bayrağa tıklandığında bloğu yoktur. Ayrıca blok değerlerinde de hatalar gizlenmiştir!


Hataların Tespiti ve Çözümleri

Her hatayı adım adım inceleyelim:


Hata 1 — Eksik Başlatma Bloğu

Hatalı durum: Kodun en üstünde hiçbir tetikleyici blok yok.

Neden hata? Scratch’te her kod yığını bir olay bloğuyla başlamalıdır. Yeşil bayrağa tıklandığında bloğu olmadan program yeşil bayrağa tıklansa bile çalışmaz.

Doğrusu: Kodun en üstüne Yeşil bayrağa tıklandığında bloğu eklenmelidir.

HatalıDoğrusu
Blok(yok)Yeşil bayrağa tıklandığında

Hata 2 — Başlangıç Konumu Yanlış (x değeri)

Hatalı durum: x: 110, y: -80 konumuna git

Neden hata? X=110 sahnede sağ tarafı ifade eder. Animasyonda kayakçının soldan sağa doğru kayması gerekiyor. Kayakçı sağdan başlarsa kayacak yeri kalmaz, sahnenin dışına çıkar.

Doğrusu: x: -110, y: -80 konumuna git (negatif değer = sol taraf)

HatalıDoğrusu
x değeri110-110

Hata 3 — Yön Yanlış

Hatalı durum: -90 yönüne dön

Neden hata? Scratch’te -90 değeri sola bakmak demektir. Kayakçının sağa doğru ilerlemesi gerektiği için 90 (sağ yön) kullanılmalıdır.

Doğrusu: 90 yönüne dön

HatalıDoğrusu
Yön değeri-90 (sol)90 (sağ)

Hata 4 — Adım Sayısı Çok Fazla

Hatalı durum: 150 adım git

Neden hata? 150 adım çok büyük bir değerdir. Döngü 10 kez çalışacağı için toplam 1.500 adım atar — bu Scratch sahnesini (480 piksel genişliğinde) çok aşar ve kukla ekrandan çıkıp kaybolur.

Doğrusu: 15 adım git

HatalıDoğrusu
Adım değeri15015

Hata Ayıklama İçin İpuçları

Bir Scratch programında hata ararken şu soruları kendine sor:

  • “Yeşil bayrak bloğu var mı?” — Yoksa program hiç başlamaz.
  • “Bloklar doğru sırada mı?” — Önce konum ayarlanmalı, sonra hareket başlamalı.
  • “Sayısal değerler mantıklı mı?” — Çok büyük adım sayıları kuklayı sahneden çıkarır.
  • “Yön değerleri doğru mu?” — 90: sağ, -90: sol, 0: yukarı, 180: aşağı.

Anahtar Kavramlar Sözlüğü

KavramTanım
Hata (Bug)Programın yanlış çalışmasına neden olan yanlışlık
Hata Ayıklama (Debugging)Programdaki hataları bulup düzeltme işlemi
Tetikleyici BlokProgramı başlatan olay bloğu (örn. Yeşil bayrağa tıklandığında)
Döngü (Repeat)Bir grup bloğu belirli sayıda tekrarlayan Kontrol kategorisi bloğu
x KoordinatıScratch sahnesinde yatay konumu belirten değer (sol: negatif, sağ: pozitif)
y KoordinatıScratch sahnesinde dikey konumu belirten değer (aşağı: negatif, yukarı: pozitif)
Yön (Derece)Kuklanın baktığı açı (90: sağ, -90: sol, 0: yukarı, 180: aşağı)
Kod Yığını (Script)Birbirine bağlı blokların oluşturduğu komut grubu

[notebook_slider url=”https://bilisimdost.com/wp-content/uploads/2026/04/31-6-bilgikarti.csv”]

[notebook_quiz url=”https://bilisimdost.com/wp-content/uploads/2026/04/31-6-sinav.csv”]

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir