Değişken ve Sabitler
Değişken (Variable) Nedir?
Tanım: Program çalıştığı sürece içinde farklı değerler (sayı, kelime vb.) saklayabilen ve içindeki değerin zamanla değişebildiği hafıza alanlarına değişken denir.
Nasıl Hayal Etmeliyiz?: Değişkeni, üzerine etiket yapıştırılmış boş bir karton kutu gibi düşünebilirsiniz. Kutunun adı (etiketi) hep aynı kalır, ancak içine koyduğunuz eşya sürekli değişebilir.
Örnek: Üzerinde "Puan" yazan bir kutumuz olsun. Oyuna başladığımızda kutunun içinde 0 vardır. Altın topladığımızda içindeki 0'ı çöpe atıp yerine 10 koyarız. Kutunun adı hala "Puan"dır ama içindeki değer değişmiştir.
Robotik Sistemlerde Değişken Örnekleri
Robotlar çevreden aldıkları anlık verileri değişkenlerde saklarlar:
• Oda_Sıcaklığı: Sensör her saniye yeni bir değer okur (Önce 22, sonra 23, sonra 24 derece).
• Kalan_Pil: Robot çalıştıkça pil yüzdesi sürekli azalır (%100, %99, %98).
• Mesafe: Robot duvara yaklaştıkça ölçtüğü mesafe değeri anlık olarak değişir.
UNUTMA!
Değişkenlere isim verirken içindeki bilgiye uygun, mantıklı isimler seçmeliyiz. Puanları tutacağımız kutunun adını "Elma" koyarsak, kodlar karmaşıklaştığında kafamız karışır. İyi bir bilişimci, değişkenlerine her zaman ne işe yaradığını anlatan kısa ve net isimler verir (Örn: toplam_puan, kalan_can).
Sabit (Constant) Nedir?
Tanım: Program çalıştığı sürece içindeki değeri asla değiştirilemeyen, ilk baştan nasıl belirlendiyse hep öyle kalan veri saklama alanlarına sabit denir.
Nasıl Hayal Etmeliyiz?: Sabitleri, şifresini sadece en başta belirlediğiniz ve sonra kilitleyip anahtarını attığınız çelik bir kasa veya üzerine kalıcı kalemle yazı yazılmış bir taş gibi düşünebilirsiniz.
Örnek: Bir haftadaki gün sayısı. Üzerinde "Haftanın_Günleri" yazan kasanın içine 7 koyup kilitleriz. Program ne yaparsa yapsın, bir hafta asla 8 gün olamaz.
Robotik Sistemlerde Sabit Örnekleri
Robotun tasarımıyla veya evrensel kurallarla ilgili değişmemesi gereken veriler sabit olarak tanımlanır:
• Maksimum_Hız: Robotun güvenlik sebebiyle asla geçmemesi gereken en yüksek hız sınırı (Örn: 50 km/s).
• Motor_Pini: Robotun motorunun bağlandığı elektronik kart üzerindeki yuva numarası (Örn: 9 numaralı pin). Robot çalışırken kablonun yeri fiziksel olarak değişmeyeceği için bu numara sabittir.
• Pi_Sayısı: Dairesel tekerleklerin çevresini hesaplarken kullanılan 3.14 değeri.
Değişken mi, Sabit mi? Karşılaştırma
Güvenlik: Neden her şeyi değişken yapmıyoruz? Eğer robotun "Maksimum_Hız" sınırını değişken yapsaydık, bir hata (bug) veya dışarıdan gelen bir müdahale sonucunda bu değer aniden 500 km/s'ye çıkabilir ve robot parçalanabilirdi.
Kural: Sabitler, sistemin kurallarını korur. Değişkenler ise sistemin anlık durumunu yaşamasını sağlar.
DİKKAT!
Oyun tasarlarken ya da bir program yaparken şuna dikkat etmeliyiz:
- Eğer bir bilginin programın başından sonuna kadar aynı kalacağından eminseniz onu mutlaka Sabit yapın.
- Eğer o bilgi oyun oynandıkça, sensör ölçüm yaptıkça veya zaman geçtikçe artacak/azalacaksa onu Değişken yapın.
OKUL TEMELLİ PLANLAMA - Yerel Problem Çözümü
“Yerel Problem Çözümü” etkinliği ile işleyeceğimiz okul temelli planlama etkinliğinde kendi okul veya mahalle çevrelerimizden seçebileceğimiz, algoritmik düşünceye uygun sorunlar bulacağız.
Bu sorunlar için algoritmik çözüm fikirleri düşüneceğiz.
Son olarak bulduğumuz çözümü algoritma olarak yazacağız.
ÖRNEK - Koridor Enerji Tasarrufu
Yerel Sorun: Teneffüsten sonra derse girildiğinde koridorlardaki ışıkların açık unutulması ve elektrik israfı.
Algoritmik Çözüm Fikri: Hareket ve ışık sensörlerine bağlı "Akıllı Koridor Aydınlatması".
Algoritma Adımları:
- Başla.
- Ortamdaki ışık miktarını ölç.
- Eğer ortam aydınlıksa (gündüz ise) ışıkları kapalı tut ve Adım 2'ye dön.
- Eğer ortam karanlıksa hareket sensörünü kontrol et.
- Koridorda hareket varsa ışıkları yak.
- Koridorda 5 dakika boyunca hiçbir hareket yoksa ışıkları kapat.
- Başa dön.