Ana Sayfa · Akademi · Robotik ve Kodlama · micro:bit · Değişkenler ve Döngüler

Değişkenler ve Döngüler

micro:bit'te değişken ve döngülerle sayaç ve tekrar eden davranışlar kur.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Değişken, micro:bit'in hatırladığı bir kutudur; döngü ise aynı adımları tekrar tekrar çalıştıran yapıdır. Bu ikisini birleştirince düğmeye her basışta artan bir sayaç yapabiliriz.

Üretilecek kanıt

Adım sayar yapalım. Kendi micro:bit'in veya çevrim içi MakeCode benzeticisiyle deneyebilirsin. adim adında bir değişken oluştur ve başlangıçta 0 yap. Başlangıçta bu değeri ekranda göster. "Sürekli" döngüsü içinde: A düğmesine basıldığında adim değişkenini 1 artır ve göster. B düğmesine basıldığında adim değerini 0 yap ve göster. Çalıştır: A'ya birkaç kez…

Kontrol tuzağı

Değişkeni başlangıçta ayarlamayı unutmak Değişkene ilk değerini vermezsen program hangi sayıdan başlayacağını bilemez. Her zaman "başlangıçta" bloğunda (veya while True 'dan önce) değişkeni 0 yap. Değeri artırıp göstermeyi unutmak sayac değişkenini 1 artır desen bile, ekranda görebilmen için bir de sayac göster demen…

Sonraki bağlantı

İvmeölçer: micro:bit'in hareketi, eğilmeyi ve sarsılmayı nasıl algıladığını öğrenip sayaçlarımızı harekete tepki verecek şekilde geliştireceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulDüğmeler ve Olaylar
İçerikStandart ders · 1.464 kelime
Son güncelleme

Bir cümlelik özet

Değişken, micro:bit'in hatırladığı bir kutudur; döngü ise aynı adımları tekrar tekrar çalıştıran yapıdır. Bu ikisini birleştirince düğmeye her basışta artan bir sayaç yapabiliriz.

Neden önemli?

Algoritma modülünde "sıralama, koşul ve tekrar" üç temel yapı taşıydı. Python modülünde sayac = sayac + 1 gibi satırlar yazdık. Şimdi aynı fikirleri gerçek bir kartın üzerinde göreceğiz.

Bir programın çoğu zaman bir şeyi *hatırlaması* gerekir. Kaç kez düğmeye bastın? Kaç adım attın? Skor kaç oldu? Bu bilgileri saklamak için değişken kullanırız. Bir programın çoğu zaman bir işi *tekrar tekrar* yapması da gerekir. LED'i yakıp söndürmek, sensörü sürekli okumak, bir şekli çizmek gibi. Bunun için döngü kullanırız.

micro:bit bu iki fikri hem MakeCode blokları hem de MicroPython koduyla anlatmamıza izin verir. Bloklarda görünen mantık, kodda da birebir aynıdır; sadece yazım biçimi değişir.

Değişken nedir?

Değişken, üzerinde isim yazan bir kutu gibidir. Kutunun içine bir değer koyarız, sonra o değeri istediğimizde okuruz veya değiştiririz.

Kutu benzetmesi

Diyelim ki masanın üzerinde "puan" yazan bir kutu var. Başlangıçta içi boş, yani 0. Her doğru cevapta kutuya bir taş atıyorsun; içindeki taş sayısı artıyor. İşte değişken tam olarak böyle çalışır: içindeki değer zamanla değişebilir, adı ise aynı kalır.

micro:bit'te bir değişken oluşturup ekranda göstermek için:

başlangıçta
  "sayac" değişkenini 0 yap
  sayac göster

Aynı fikir MicroPython'da şöyle yazılır:

from microbit import *

sayac = 0
display.show(sayac)

Burada sayac değişkenin adı, 0 ise başlangıç değeridir. display.show(sayac) komutu değişkenin içindeki değeri 5×5 LED ekranında gösterir.

Değeri değiştirmek

Bir değişkenin en güçlü yanı, değerinin değişebilmesidir. Örneğin değeri bir artırmak:

sayac değişkenini 1 artır
sayac göster

MicroPython'da:

sayac = sayac + 1
display.show(sayac)

sayac = sayac + 1 satırını "kutunun eski değerini al, üzerine 1 ekle, sonucu tekrar kutuya koy" diye okuyabilirsin. Python modülünde gördüğün bu satır, micro:bit üzerinde de aynı şekilde çalışır.

Döngü nedir?

Döngü, aynı adımları tekrar tekrar çalıştıran bir yapıdır. Böylece aynı komutu on kez, yüz kez, hatta sonsuza kadar elle yazmak zorunda kalmayız.

"Tekrarla" döngüsü

Belirli sayıda tekrar için "tekrarla" (repeat) döngüsü kullanılır. Örnek: kalp simgesini 3 kez yakıp söndürmek.

4 kez tekrarla
  kalp simgesi göster
  yarım saniye bekle
  ekranı temizle
  yarım saniye bekle

MicroPython'da aynı döngü:

from microbit import *

for i in range(4):
    display.show(Image.HEART)
    sleep(500)
    display.clear()
    sleep(500)

Burada range(4) döngünün 4 kez döneceğini söyler. sleep(500) yarım saniye (500 milisaniye) bekler.

"Her zaman" döngüsü

Bazı programların hiç durmadan çalışması gerekir. micro:bit'te bunun için "sürekli" (forever) bloğu vardır. Bu blok, karta güç geldiği sürece içindeki adımları baştan sona tekrarlar.

sürekli
  eğer <A düğmesine basıldı> ise
    sayac değişkenini 1 artır
    sayac göster

MicroPython'da "her zaman" döngüsü while True ile yazılır:

from microbit import *

sayac = 0
while True:
    if button_a.was_pressed():
        sayac = sayac + 1
        display.show(sayac)

while True "koşul her zaman doğru olduğu için sonsuza kadar dön" demektir. button_a.was_pressed() ise A düğmesine son kontrolden beri basılıp basılmadığını söyler.

Değişken ve döngüyü birleştirmek: sayaç

Şimdi iki fikri birleştirelim. Amacımız: A düğmesine her basışta ekrandaki sayı bir artsın, B düğmesine basınca sayaç sıfırlansın.

MakeCode blokları

başlangıçta
  sayac değişkenini 0 yap
  sayac göster
sürekli
  eğer <A düğmesine basıldı> ise
    sayac değişkenini 1 artır
    sayac göster
  eğer <B düğmesine basıldı> ise
    sayac değişkenini 0 yap
    sayac göster

MicroPython

from microbit import *

sayac = 0
display.show(sayac)

while True:
    if button_a.was_pressed():
        sayac = sayac + 1
        display.show(sayac)
    if button_b.was_pressed():
        sayac = 0
        display.show(sayac)

Bu programda üç fikir bir arada çalışıyor: değişken (sayac) bilgiyi hatırlıyor, döngü (sürekli / while True) düğmeleri durmadan kontrol ediyor, koşul (eğer / if) sadece doğru anda değeri değiştiriyor.

Günlük hayattan iki örnek

Sayaç örneği: Basketbol antrenmanında kaç serbest atış attığını sayıyorsun. Her atıştan sonra aklında tuttuğun sayıyı bir artırıyorsun. Kafandaki bu "sayı" bir değişken, her atışta tekrar eden davranış ise bir döngüdür.

Turnike örneği: Bir spor salonunun girişindeki turnikeyi düşün. İçeri her giren kişide sayaç bir artar. Gün sonunda toplam giriş sayısı ekranda görünür. micro:bit sayacın da tam olarak böyle çalışır; sadece turnike yerine A düğmesi var.

Mini uygulama

Adım sayar yapalım. Kendi micro:bit'in veya çevrim içi MakeCode benzeticisiyle deneyebilirsin.

  1. adim adında bir değişken oluştur ve başlangıçta 0 yap.
  2. Başlangıçta bu değeri ekranda göster.
  3. "Sürekli" döngüsü içinde: A düğmesine basıldığında adim değişkenini 1 artır ve göster.
  4. B düğmesine basıldığında adim değerini 0 yap ve göster.
  5. Çalıştır: A'ya birkaç kez bas, sayının arttığını gör; sonra B'ye basıp sıfırlandığını kontrol et.

Hazırsan bir de şunu dene: sayı 9'u geçince ekrana tek rakam sığmaz. sayac göster yerine sayac sayısını kaydır (scroll) blokunu kullanırsan büyük sayılar soldan sağa akarak görünür.

Uygulama laboratuvarı: Değişkenler ve Döngüler

Değişkenler ve 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 Değişken nedir? ile Değeri değiştirmek arasındaki ilişkiyi kullanarak simülatörde ve kart üzerinde denenmiş micro:bit programı ile test notları 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: ışık ve sıcaklık değerlerini LED matriste gösteren ölçer. Dersin ana hedefi “micro:bit'te değişken ve döngülerle sayaç ve tekrar eden davranışlar kur” 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

“Değişkenler ve 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 ışık ve sıcaklık değerlerini LED matriste gösteren ölçer senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Değişken nedir? ve Değeri değiştirmek ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Değişkeni başlangıçta ayarlamayı unutmak

Değişkene ilk değerini vermezsen program hangi sayıdan başlayacağını bilemez. Her zaman "başlangıçta" bloğunda (veya while True'dan önce) değişkeni 0 yap.

Değeri artırıp göstermeyi unutmak

sayac değişkenini 1 artır desen bile, ekranda görebilmen için bir de sayac göster demen gerekir. Artırmak ve göstermek iki ayrı adımdır.

Yanlış döngüyü seçmek

Sabit sayıda tekrar için "tekrarla", durmadan kontrol için "sürekli" kullan. Örneğin düğme kontrolünü "4 kez tekrarla" içine koyarsan program dört kontrolden sonra durur.

was_pressed yerine is_pressed karıştırmak

MicroPython'da button_a.is_pressed() düğme o an basılıysa doğrudur; parmağını çekmezsen sayaç çok hızlı artar. Sayaç için button_a.was_pressed() daha uygundur, çünkü her basışı bir kez sayar.

Güvenlik notu

micro:bit'i pil kutusuyla çalıştıracaksan pili takıp çıkarma işini bir yetişkinle birlikte yap ve yalnızca kart için önerilen düşük gerilimli (3V) pil kutusunu kullan. Kartı bir bilekliğe veya çantaya takarak "adım sayar" gibi giyilebilir bir projeye dönüştürürsen, kartı sağlam biçimde sabitle ve kabloların takılıp kopmayacağından emin ol. Kartı ıslak ellerle tutma ve metal yüzeylerin pinlere değmesine izin verme.

Ders özeti

Kontrol soruları

  1. Değişken en basit haliyle neye benzetildi ve ne işe yarar?
  2. sayac = sayac + 1 satırını kendi cümlenle açıkla.
  3. "Tekrarla" döngüsü ile "sürekli" döngüsü arasındaki temel fark nedir?
  4. Sayacı sıfırlamak için programda hangi adımı eklememiz gerekir?
  5. MicroPython'da düğmeye basmayı is_pressed yerine was_pressed ile kontrol etmek sayaç için neden daha uygundur?

Cevaplar

  1. Üzerinde isim yazan bir kutuya benzetildi. İçine bir değer koyarız ve program çalışırken bu değeri okuyabilir veya değiştirebiliriz; böylece program bir bilgiyi hatırlar.
  2. Kutunun (değişkenin) eski değerini al, üzerine 1 ekle ve sonucu tekrar aynı kutuya koy. Yani değeri bir artırır.
  3. "Tekrarla" döngüsü önceden belirlenen sayıda döner ve sonra durur; "sürekli" döngüsü ise karta güç geldiği sürece durmadan çalışır.
  4. Değişkeni tekrar 0 yapan bir adım eklemeliyiz (örneğin B düğmesine basılınca sayac değişkenini 0 yap ve sayac göster).
  5. was_pressed her basışı yalnızca bir kez sayar. is_pressed düğme basılı kaldığı sürece doğru kaldığından sayaç çok hızlı ve kontrolsüz artar.

Kaynak ve doğrulama notu

“Değişkenler ve Döngüler” dersi için doğrulama odağı Değişken nedir? ile Değeri değiştirmek arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. MakeCode ve MicroPython adları sürüme göre küçük farklılık gösterebilir. Önce simülatörde test yapılmalı; harici bileşen bağlanacaksa kartın pin ve gerilim sınırları ayrıca kontrol edilmelidir.

Sonraki ders

İvmeölçer: micro:bit'in hareketi, eğilmeyi ve sarsılmayı nasıl algıladığını öğrenip sayaçlarımızı harekete tepki verecek şekilde geliştireceğiz.

Quiz’i Başlatmicro:bit 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.