Kısaca algoritma nedir? Scratch ile algoritma örnekleri yaparak ne kazanacağız bakalım. Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir. Algoritma, bilgisayarın adım adım ne yapması gerektiğini söyleyen bir taslaktır. Algoritma iki kelime ile aklımızda kalabilir: Programın tarifi!
Buradaki algoritma örneklerini yaparak; Scratch Programında arkaplan ekleme, kukla ekleme ve silme, sahne düzenleme gibi temel işlemlerin yerine basit algoritmik kodlarla tanışmış olacağız.
Scratch ile Kodlama Eğitimi için hazırladığım diğer Scratch Örnek Projelerine buraya tıklayarak ulaşabilirsiniz.
Bu makale içerisinde bulacağınız Scratch algoritma örneklerine aşağıdaki menüye tıklayarak direkt ulaşabilirsiniz.
Her bir yazılım oluşturulmadan önce algoritma hazırlanır. Daha sonra bu algoritmadaki adımlara göre kodlar yazılarak, program oluşturulur.
Bir Algoritmanın;
- Başı olmalı
- Sonu olmalı
- Problemin çözümünü mümkün olan en az adımla, en kısa sürede gerçekleştirmeli
- Basit olmalı
Programlamayı ilk öğrenmeye çeşitli temel konularla başlanır. Bunlar kısaca değişkenler, operatörler, şart blokları, döngüler, diziler, metotlar ya da fonksiyonlar gibi temel konulardır. Kullanıcıdan girdi almak, bu girdileri değişkenlere atayarak çeşitli işlemler gerçekleştirmek yine ilk programlamaya başladığımızda yaptığımız işlemlerdendir. Scratch ile algoritma örnekleri yaparak programlama becerilerimizi geliştirip, algoritmalar kurabilir ve bunu anlaşılır bir dille kodlayabiliriz. Böylece temel mantık kafamızda yer edinmiş olur.
Programlamanın temel yapı taşlarından biri yukarıda bahsettiğimiz gibi şart blokları diğer bir ifadeyle koşullu ifadelerdir. Mantığı kolay ve çoğu zaman kullandığımız bu yapılar programın akışını, şartların sağlanıp sağlanmamasına göre değiştirir. Programlamada koşul sağlanırsa bunu yap, yok hayır sağlanmazsa bunu yap diyebileceğimiz yapıdır ve bunun sayesinde programın akışını değiştirebiliyoruz. Programlama dillerinde if-else, if-else if-else, if- elif-else gibi karşılıkları olan bu yapının Scratch’te karşılığı “eğer ise değilse” blokları. Kontrol bloklarının altında görebilirsiniz. Altıgen olan boş bırakılan yer, koşul gireceğimiz alan olacak. Zaten İngilizce de, if kelime anlamı olarak eğer , else ise aksi halde, değilse anlamına geliyor. Örneğin 18 yaşından büyükse ehliyet alabilir, 18 yaşından küçükse ehliyete alamaz dediğimizde ehliyet alma yaş koşuluna bağlı olmaktadır. Ya da sınavda 50 ve üzeri alırsa geçer, 50’den aşağı bir not alırsa kalır dediğimizde sınıfta kalma aldığı not koşuluna bağlıdır.
Operatörler tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına denir. Örneğin toplama işlemi yapmak için “+” operatörünü kullanırız. Ya da bir karşılaştırma yapacaksak “><=” operatörlerini kullanırız. Bunun gibi bir çok operatör mevcut. Örnekleri yaptıkça öğreneceksiniz.
Değişkenlere gelelim. Çok sade ve basit bir tanımla şunu diyebiliriz: Bir değeri tutmak, saklamak istediğimizde kullanırız. Örneğin legolarınız var. Legoları daha sonra tekrar bulmak ve oynamak için bir kutuya koymanız gerekir. Yoksa aradığınızda bulamazsınız. Değişkenlerde buna benzer. Oyun içerisinde can, süre, puan gibi değerleri tutmak isteriz. Can değeri kullanıcı her yandığında bir azalsın ya da süre değeri her bir saniye de bir artsın gibi. Değişkenler bize bu anlamda çok kolaylık sağlamaktadır.
Gelgelelim döngüler.. Tam anlamıyla hayat kurtarır. Bir işi birden fazla kez yapmak istersek döngü yardımıyla bir kere yazarız ve istediğimiz kadar tekrarlatırız. Scratch’te sürekli tekrarla ve belli bir sayı kadar tekrarla döngüleri mevcut. Alıştırmalarımızda ve oyunlarımızda sıklıkla kullanacağız.
Bizim metot ya da fonksiyon dediğimiz olaya Scratch “Blok” demiş arkadaşar. Bloklar kodlarımızı tekrar etmememiz, anlaşılır yazmamız ve istediğimizde çağırabilmemiz için bir yapıdır. Kullanımı da çok kolaydır.
Eveet! Azar azar bu başlıklara değindik. Uygulama içinde daha rahat anlayacağız o yüzden vakit kaybetmeden örneklere geçebiliriz.
İki sayıyı toplama
Kullanıcının girdiği iki sayının toplamını yazdıralım.
Karenin Alanı ve Çevresi
Bir kenarı girilen karenin alanını ve çevresini hesaplayalım.
Girilen Kelimenin Harflerini Tek Tek Yazdırma
Kullanıcıdan ismini ya da başka bir cümle isteyebilirsiniz. Ben örnekte ismini yazmasını istedim. Kullanıcının girdiği kelimedeki harfleri tek tek ekrana yazdıralım.
Ehliyet Alabilirsin / Ehliyet Alamazsın
Yeşil bayrağa tıklandığında “Kaç yaşındasın”diye soralım. Eğer cevap 18’den büyükse 2 saniye boyunca “Ehliyet alabilirsin”, eğer cevap 18’den küçükse 2 saniye boyunca “Ehliyet alamazsın” diyelim.
Bilgisayar Şifre Girişi
Sahnenize bir bilgisayar kuklası ekleyerek kodlayabilirsiniz. Bilgisayar bizden bir parola isteyecek. Biz parolayı doğru girersek “Evet, doğru! Giriş Yapabilirsin.”, yanlış girersek “Üzgünüm, yanlış şifre! Tekrar dene.” yazacak. Buraya tıklayarak, Scratch proje sayfasına erişebilir ve kodları deneyebilirsiniz.
İki Sayıdan Büyük Sayıyı Bulma
Bu örneğimizde kullanıcı iki sayı girecek. İki sayıdan hangisi büyükse kuklamız “x değeri daha büyüktür.” yazacak. Eğer iki sayı eşitse de “Sayılar birbirine eşit!” yazacak.
Algılama altındaki “Adın ne? diye sor ve bekle” kodunu kullanabilirsiniz. İki adet değişken oluşturarak bu cevap değerlerini eşitliyoruz.
Tek Çift Sayı Örneği
Kullanıcıdan alınan sayının tek mi çift mi olduğunu yazdıralım. Bir sayı eğer 2’ye bölündüğünde 0 kalanı veriyorsa yani bir sayı 2’ye mod alındığında sonuç 0 ise sayı çifttir. Değilse de tektir.
Pozitif-Negatif-Sıfıra Eşit
Kullanıcının girdiği bir sayının pozitif mi, negatif mi, sıfıra mı eşit olduğunu yazdıralım. Algoritmasını düşünecek olursak bir sayı ya sıfırdan büyük olabilir ki bu pozitif demektir. Ya sıfırdan küçük olabilir bu negatif demektir. Ya da sıfıra eşittir. Buradan yola çıkarak kodlarımızı yazabiliriz.
1’den Kullanıcının Girdiği Sayıya Kadar Olan Sayıların Toplamı
1’den kullanıcıdan girdiği sayıya kadar olan sayıların toplamını ekranda gösterelim.
Bir çok algoritma geliştirebiliriz. Mesela Gauss Yöntemi kullanarak yapabiliriz. Gauss Yöntemi , ardışık sayıların toplamının kısa yoldan bulunması için kullanılan yöntemdir. (n*n+1)/2 formülü bu sonucu verecektir. n kullanıcının girdiği değer olacaktır.
Diğer bir yol döngüdür. 1’den başlayarak kullanıcının girdiği değere kadar 1 arttırıp toplam değişkenine ekleyerek gideriz.
Hesap Makinesi
Basit bir hesap işlemi yapalım. Kullanıcıya işlem menüsü sunalım eğer 1 girerse toplama, 2 girerse çıkarma, 3 girerse çarpma ve 4 girerse bölme işlemi yaptıralım.