1
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması Problem Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklar ve çatışmalar problem olarak değerlendirilir. Bu durumdaki birey ve grupların ortaya çıkan olumsuzluklar ve çatışmalarla yapacakları mücadeleye de problem çözme denir. Örnek Problem Cansu nun bir gün içinde bir takım işleri yapması gerekmektedir. Örneğin; öğretmeni Cansu ya proje ödevi vermiş, annesi ise Cansu nun ev işlerinde kendisine yardımcı olmasını ve gelecek misafirler için kek yapmasını istemiştir. Ev de kek yapmak için ise bazı malzemeler alması gerekmektedir. Ayrıca arkadaşından okuldayken ödünç aldığı kitabı okuduktan sonra evine götüreceğine söz vermiştir. Bütün bunları ise bir gün içersinde hiçbirini unutmadan yapması gerekmektedir. Cansu nun bütün bunları unutmadan eksiksiz yapması için öncelikle ne yapması gerekir? Örnek Çözüm 13.00 Eve gel yemeğini ye. 13.30 Zeynep ten aldığın kitabı oku. 15.00 Zeynep e kitabı götür. 15.15 Dönerken marketten ; 5 yumurta, un, şeker al. 15.30 Keki yap 17.00 Proje ödevine başla. 19.00 Haberleri izle 21.00 Kitap oku. 22.00 Uyu Programcılar problemi çözmek için ne yaparlar? Problemi değerlendirir. Çözüm stratejisi geliştirir. Plan yaparlar. 2
Programcının problemi çözmek için oluşturduğu plana algoritma denir. İkiye ayrılır; İşlem Adımları Akış Şeması İşlem Adımları Algoritması Her hangi bir sorunun çözümü için izlenecek yolun adımlar halinde yazılmasıdır. Akış Şeması Şimdi iki sayıyı toplayan algoritmanın akış şeması algoritmasını çizelim. Bunun için öncelikle akış şemasında kullanılacak olan şekillerin ne anlam ifade ettiğini öğrenelim. 3
Örnek Problem1 Girilen iki sayının toplamını alan programı yapınız. Bu programı yapmak için öncelikle programın planını, yani algoritmasını veya akış şemasını çizmek veya işlem adımlarını yapmak gerekir. Birlikte programın algoritmasının işlem adımlarını yazalım. İki sayıyı toplayan algoritmanın işlem adımları 1. Adım: Başla 2. Adım: Birinci Sayıyı Al 3. Adım: Birinci sayıyı bir değişkene aktar.(sayı1=yanıt) 4. Adım: İkinci Sayıyı Al. 5. Adım: İkinci sayıyı bir değişkene aktar.(sayı2=yanıt) 6. Adım: Değişkenleri topla. (toplam= sayı1+sayı2) 7. Adım: Sonucu ekrana yazdır. 8. Adım: Dur 4
Değişkenler: Değişkenler programlamanın en temel unsurlarından biridir. Scratch içinde turuncu renkle gösterilen kategorinin altında tanımlanır. Burada değişken tanımlayabilir, daha sonra program içinde bu değişkenleri kullanabiliriz. Değişkenler yardımıyla bilgisayarın istediğimiz bilgileri belleğinde tutmasını sağlayabiliriz. Bellekte bu alanları posta kutularına benzetebiliriz. Her posta kutusunun içindeki bilgiyi onun ismiyle alabilir veya değiştirebiliriz. Programcı olarak değişkenleri gerektiği kadar kullanmalıyız. Her ne kadar günümüz bilgisayarları çok hızlı olsa da programların performans düşüklüğü kullanıcının istemediği bir durumdur. Yeni bir değişken oluşturur. Var olan değişkeni silmek için kullanılır. Oluşturulan değişkenin sunum ekranın görünmesi istenmiyorsa yanındaki kutuya tıklanır. Değişkene değer atamak için kullanılır. Değişkeni belirtilen miktar kadar değiştirir. Sunum ekranında değişkeni gösterir. Sunum ekranında değişkeni gizler. SCRATCH Programı başlat - Programı durdur Küçük ekran - Tam ekran - Sunum Görünümü Sunumdan Çık Çoğalt - Sil - Karakter büyüt - Karakter küçült 5
Kullanılan Komutlar Bu blok ekranımızın sağ üstündeki bayrak simgesine, yani başlat butonuna tıklandığında istediğimiz işleri yaptırabilmemizi sağlar "Sor ve Bekle" komutu ile soru cümlesini kullanıcıya açılan bir iletişim kutusu ile sorar, verilen cevabı "yanıt" içerisinde saklar Operatörler Bu dört blok projemizde toplama çıkartma çarpma ya da bölme işlemlerini yapmayı sağlar. Bunu yapabilmek için 'Operatörler' bölümünün ilk dört sırasında olan: Söyle Komutu 'nın, 'nin, 'nın ya da 'nün üstüne tıkla, 'Yazılar' bölümünde istediğin yere sürükle. Karakterin konuşma balonu içerisinde yazılı olarak mesaj vermesini sağlar. Süreli olanda mesaj süre boyunca ekranda kalır 6
Örnek Problem2 Girilen iki sayının çarpımını alan programı yapınız. İki sayıyı çarpan algoritmanın işlem adımları 1. Adım: Başla 2. Adım: Birinci Sayıyı Al 3. Adım: sayı1=yanıt 4. Adım: İkinci Sayıyı Al. 5. Adım: sayı2=yanıt 6. Adım: çarpım= sayı1*sayı2 7. Adım: Yaz çarpım 8. Adım: Dur 7
Örnek Problem3 Girilen nota göre ekrana geçti ya da kaldı yazan programı yapınız. Algoritmanın işlem adımları: 1. Adım: Başla 2. Adım: Öğrencinin Ders Notunu Al 3. Adım: not=yanıt 4. Adım: Eğer Not<45 ise Yaz "Kaldı" 5. Adım: Eğer Not>45 ise Yaz "Geçti" 6. Adım: Eğer Not=45 ise Yaz "Geçti" 7. Adım: Dur Kullanılan Komutlar Eğer... ise Bu kontrol grubu en çok kullanılan ve belirli koşullarda yerine getirilmesi gereken görevlerin tanımlanmasını sağlayan komuttur. Belirtilen şart yerine geldiğinde kod bloğunda gösterilen komutlar, sırasıyla çalıştırılır. Nasıl ki dört işlem için matematik operatörlerini kullanırız iki değeri kıyaslamak için karşılaştırma operatörlerini kullanırız. Böylece belli şartları sağlayıp sağlamadığını kontrol edebiliriz. Bu üç blok iki sayı arasında karşılaştırma yapmayı sağlar. Bunu yapabilmek için 'Operatörler' bölümünün altından üstüne tıklanarak, 'Yazılar' bölümünde uygun yerlere(örneğin eğer..ise kod bloğuna) sürükle. Daha sonra da boşluklara karşılaştırmak istediğin rakamları, blokları ya da değişkenleri yerleştirebilirsin. Bu işlemler karşılaştırma sonucu olarak doğru ya da yanlış cevabını verirler. 88
Örnek Problem4 Girilen3 yazılı notunun ortalamasına göre ekrana geçti ya da kaldı yazan programı yapınız. Algoritmanın işlem adımları: 1. Adım: Başla 2. Adım: Birinci Yazılı Notunu Al 3. Adım: yazılı1=yanıt 4. Adım: İkinci Yazılı Notunu Al 5. Adım: yazılı2=yanıt 6. Adım: Birinci Yazılı Notunu Al 7. Adım: yazılı3=yanıt 8. Adım: Ortalama= (yazılı1+yazılı2+yazılı3) / 3 9. Adım: Eğer ortalama<45 ise Yaz "Kaldı" Değil ise Yaz "Geçti" 10. Adım: Dur 9
Kullanılan Komutlar Eğer... ise...başka Bu blok belirlediğimiz hareketlerin belirlediğimiz kriterler oluşursa yapılmasını sağlar. Eğer belirlediğimiz kriterler karşılanmıyorsa yani yanlışsa belirlediğimiz diğer hareketlerin yapılmasını sağlar. İşlem Önceliği İşlem önceliği matematikte olduğu gibidir ancak Scratch programında parantezler bulunmadığı için operatörleri iç içe sırasıyla yerleştirerek önce yapılması gereken işlemleri belirleriz. Yandaki şekilde Ortalama = (yazılı1+yazılı2+yazılı3) /3 işleminin sonucunun doğru bir şekilde hesaplanması için yapılması gereken işlemler adımlar halinde gösterilmiştir. Metin Birleştirme Sıklıkla kullanılan operatörlerden biri de metin operatörleridir. Bunlardan dahil komutu iki metni birleştirmek için kullanılır. Yandaki komutun sonucu iki metnin birleştirilmesiyle "merhaba_dünya" dır. Metinler değişken içerisinde de saklı olabilirler. 10
Uygulama - Aynadaki Kedi Bu uygulamada eğlence parklarındaki tuhaf aynalar yapalım. Biz kedi karakterini kullanacağımız için 'Aynadaki Kedi' dedik ama siz istediğiniz karakteri seçebilirsiniz. Uygulamamızın ekran görüntüsü yandaki gibi olacaktır. İlk aynada renk efektini uygulayarak yeşil olmasını sağlayacağız. İkinci aynada balık gözü efekti, üçüncü aynada ise hızlı dönün efekti uygulayacağız. Böylece 3 farklı aynada 3 değişik görüntü elde etmiş olacağız. Sizler daha değişik efektler ve renkler deneyebilirsiniz. Peki, bu efektleri neye göre vereceğiz? Bu efektleri verirken aynadaki kedinin yataydaki konumuna göre vereceğiz. Bir karakterin yatay konumu -240 il 240 arasında değişir.. Çizdiğimiz aynanın şekline ve boyutuna göre aralık değişebilir. Bize yatay konumu Scratch programında verir. 11
Karakterler: Sahnede üç adet karakterimiz olacaktır. Bunlar kedi, ayna, ve aynadaki kedidir. Kedi: Her zaman kullandığımız Scratch uygulamasının simgesi kedi. Yazılar: Uygulama başladığında karakterimiz istediğimiz yerde olsun. Bunun için adresini tam olarak yazıyoruz. Boyu da % 70 siz seçtiğiniz karaktere göre farklı bir boyutta belirleyebilirsiniz. Klavyeden sağ ok tuşuna basıldığında karakterimizin 10 adım ileri gitmesini sağlıyoruz. Daha sonra "hareketvar" mesajını yayınlayarak bunu uygulamadaki diğer unsurlara haber veriyoruz. Klavyeden sol ok tuşuna basıldığında karakterimizin 10 adım geri gitmesini sağlıyoruz. Daha sonra "hareketvar" mesajını yayınlayarak bunu uygulamadaki diğer unsurlara haber veriyoruz. 12
Ayna: Kedimizin sanki aynadaymış gibi görünmesi için kullanacağımız şekil. Yazılar: Uygulama başladığında ayna karakterinin önde görünmesi sağlayarak kedinin aynadaymış gibi görünmesini sağlıyoruz. Aynadaki Kedi: Aynadaki kedinin başlangıçta kediyle aynı pozisyonda ve büyüklükte olmasını sağlıyoruz. İlk aynada bulunacağından dolayı ilk aynanın efektlerini de uyguluyoruz. Böylece aynadaki kedi uygulama başladığında diğer kediyle aynı hizada,boyda ve yeşil olacaktır. 13
Yazılar: Buradaki komutlarımız ise kedi hareket ettiğinde çalışacak komutlar. Aynadaki kediyi de aynı yatay konuma getiriyoruz. Eğer aynadaki kedi ilk aynanın içinde ise renk efektini uygula, yeşil yap. Eğer aynadaki kedi ikinci aynanın içinde ise balık gözü efektini uygula. Eğer aynadaki kedi ilk aynanın içinde ise hızlı dönün efektini uygula. 14
Değerlendirme Soruları 1. Problem, algoritma ve akış şeması nedir, açıklayınız? 2. Değişken nedir? Ne işe yarar? 3. Problem: Bir kenarı kullanıcı tarafından girilen karenin çevresini ve alanını hesaplamak Problemin algoritmasını, akış diyagramını yazarak programı yapınız. 4. Problem: İki kenarı kullanıcı tarafından girilen dikdörtgenin çevresini hesaplamak Problemin algoritmasını, akış diyagramını yazarak programı yapınız. 5. Aşağıdakilerden hangisi, komutuyla beraber çalışır? a. c. b. d. 6. Aşağıda değişkenlerle ilgili verilen komutlar ve görevlerini eşleştiriniz. a. Oluşturulan değişkenin sunum ekranın görünmesi istenmiyorsa yanındaki kutuya tıklanır. b. Değişkene değer atamak için kullanılır. c. Sunum ekranında değişkeni gösterir. d. Yeni bir değişken oluşturur. e. Sunum ekranında değişkeni gizler. f. Var olan değişkeni silmek için kullanılır. 7. Aşağıdaki işlemlerin sonucunu hesaplayarak yazınız. g. Değişkeni belirtilen miktar kadar değiştirir. a. b. c. 8. Aşağıdaki komutların hangisi ekranda konuşma balonu oluşturarak karakterimizin mesaj vermesini sağlar? a. b. c. d. 15
9. Yandaki komutlar sırasıyla çalıştığında durumun son değeri ne olur? a. Genç b. Yaşlı c. 18 d. 40 10. Yandaki resme göre boşluk tuşuna basıldığında ne olur? a. Karakter "20" diye söyler. b. Karakter "Sıkı giyin!" diye söyler. c. Karakter "Rahat giyin" diye söyler. d. "Hava kaç derece?" diye sorar ve bekler. 11. Alttaki resimde yer alan komutlar işletildiğinde mesaj değişkeninin son değeri ne olur? a. "Sonuç: 80" b. "Sonuç: eder" c. "80 eder" d. "Sonuç: 80 eder" 16