Geçmiş haftalarda yönerge oluşturmayı öğrenmiştik. Yönerge bir işin tamamlanması için izlenilen yolun başkalarına iletilmesine deniyordu. Bununla ilgili bir turiste adres tarifi yapmıştık. Algoritma ise bu işin tamamlanması için gerekli olan adımlara denir demiştik.
Bu hafta yeni problemler için yeni algoritmalar geliştirmeyi öğreneceğiz. Hayatımızdan problem örnekleri vereceğiz ve bu problemlerin çözümü için algoritmalar oluşturacağız. Hayatımızda sürekli belirli algoritmaları uygulamak zorundayız. Hemen her yerde algoritmalara rastlayabiliriz.
Soru:
Sizce masallarda da algoritmalar olabilir mi?
Örnek masal
Ağustos böceği ile karınca masalını okumuşsunuzdur. Okumasanız bile duymuşsunuzdur. Bu masalda algoritmaların nasıl kullanıldığını inceleyelim.
Ağustos Böceği ile Karınca: Bir Algoritma Masalı
Bir yaz günü ağustos böceği tahıl toplayan bir karıncaya rastladı. Sapından düşmüş bir tahıl tanesini hareket ettirmek için uğraşıp didinen karıncayı izlemeye başladı. Bir süre sonra ağustos böceği karıncaya seslendi:
Hey, karınca sen ne yapıyorsun?
“Kış için tahıl topluyorum” dedi karınca bitkin bir sesle. Bütün gün çok çalışmış ve oldukça yorulmuştu.
“Ama daha yazın ortasındayız” dedi karınca, “Kışın gelmesine daha aylar var ve ortalık yiyecek dolu. Neden gününü bu şekilde harcıyorsun ki?”
Karınca bir dakika durup düşündü ve sonra cevap verdi “Bu bizim kullandığımız algoritma yüzünden” “Algoritma?” diye sordu ağustos böceği “Bir işi başarmak için takip edilen adımlar ya da yönergeler” diye açıkladı karınca. Mesela bir mobilyacı sandalye üretmek istediğinde ölçmeyi, kesmeyi, zımparalamayı ve çakmayı içeren bir algoritma kullanır.”
“Senin algoritman neyi çözüyor?” diye sordu ağustos böceği. “Acaba, yazın çoook fazla zamanın olması problemini mi çözüyor?” dedi kendi esprisine gülerek “Algoritma tüm karınca kolonimizi bütün yıl boyunca sağlıklı tutmamıza yarıyor. Her gün yapmamız gereken belirli işler var. Yazın sabahları yiyecekleri toplarız, öğleden sonra tünel kazarız ve akşamları da uyuruz. Çok fazla iş gibi görünebilir ama bu bizim soğuk kış aylarında yeterli yiyeceğe sahip olmamızı garantiliyor.”
“Bu basit bir algoritma gibi görünüyor.” dedi ağustos böceği “Algoritmalar basit ya da karmaşık olabilirler” diye açıkladı karınca. Bazen algoritmalar ancak başka
algoritmalarla çözülebilecek adımlar bile içerebilirler. Örneğin, ben yiyecek toplarken, özel bir yiyecek toplama algoritması kullanıyorum. Bu algoritmanın 5 adımı var.
Karıncanın yaz algoritması
1) tarlaya yürü,
2) üzerinde taneleri olan bir başak sapı bul
3) tanesini başağın sapından ayır
4) tahıl tanesini karınca yuvasının tepesine taşı,
5) taneyi depolama tüneline yerleştir. Ve ben bir sürü tahıl tanesi toplayabilmek için her seferinde bu adımı tekrarlıyorum.”
“Ama bu çok sıkıcı” dedi ağustos böceği. Ben algoritma kullanmıyorum. Ben canım ne zaman ne isterse onu yapıyorum. Aslında tamamen özgürüm. Mesela şimdi başak sapının tepesine tırmanacağım ve biraz şarkı söyleyeceğim, bahse girerim senin algoritman bunu yapmana izin vermez”
Karınca omuzunu salladı. Algoritması belliydi ve sonraki adımının ne olması gerektiğini biliyordu.
Bu algoritma kendi kolonisi için yüzlerce yıldır işe yarıyordu. Bu yüzden ağustos böceği oradan oraya zıplayıp şarkı söylerken karınca önündeki işe geri döndü.
6 ay sonra, çok sert bir kış geldi. ağustos böceği artık üzerinde hiçbir şey kalmamış buğday tarlasında dolaşıp duruyordu. Tek bir buğday tanesi bile yoktu. Tam o sırada karınca kendi kolonisinin tünellerinde, sıcak ve güven içindeydi. Bu sefer kış algoritmasını uyguluyordu.
Karıncanın kış algoritması
1) Tünel kaz.
2) Yemek ye
3) Diğer karıncalarla sohbet et.
4) Yaz için iyice dinlen.
Ağustos Böceği ile Karınca masalı sonuç:
Bu hikâye muhtemelen daha önce duyduğunuz bir hikâyenin biraz değiştirilmiş bir versiyonuydu. Hikâyede daha önce duymadığınız farklı bir kelime dikkatinizi çekmiştir. Algoritma kelimesi. Daha önceki haftalarda adres tarifleri yaparken bu kelimeden bahsetmiştik.
Algoritma; belirli bir problemi çözmek veya bir amaca ulaşmak için tasarlanan tasarlanan yoldur. Algoritma tasarımı yapmak ise bir problemi çözmek için plan yapmaktır. Şimdi gerçek hayatta problem durumlarıyla karşılaştığımızda oluşturduğumuz algoritmaları inceleyelim.
Gerçek hayatta algoritmalar
Örnek ; Gece uyandınız ve karnınız çok aç. Bu bir problemdir. Nasıl bir algoritmanız olur?
Çözüm :
1- Buzdolabına yürü. 2- Buzdolabının kapağını aç. 3- Yiyecekleri gözden geçir. 4- Sevdiğin yiyecekleri seç 5- Seçtiğin yiyecekleri dışarı çıkar. 6- Bunları yemeye başla. 7- Yediğin yiyeceklerden artanları tekrar buzdolabına koy. 8- Buzdolabının kapağını kapat.
Örneğin sonucu
Bu plan sizin probleminizi çözdü ve bir algoritma tasarımı oldu. Bir algoritma oluşturmak veya bir algoritma tasarımı yapmak için, günlük hayatta çoğu zaman farkında bile olmadan yaptığımız etkinlikleri küçük parçalara bölmemiz gerekir.
Basit ve kısa adımlara böldüğümüz işi karşı tarafa anlatmak ve iletmek, her zaman daha kolaydır.
İşte bizde programlama yaparken bilgisayara hayalimizdeki şeyleri yapması için doğru bir şekilde anlatmalıyız. Bu şekilde beynimizden geçenleri bilgisayara adım adım anlatabiliriz. Algoritma bu yüzden çok önemlidir.
Soru:
Algoritmaların herhangi bir adımını başka bir adımla yer değiştirirsek sonuç doğru olur mu?
Cevap:
Algoritma adımlarının sırası çok önemlidir. Örneğin yukarıda çözdüğümüz örnekte buzdolabının kapağını aç adımı 2. adımdaydı. 3. adım ise yiyecekleri gözden geçir adımıydı. 2. ve 3. adımı birbirleriyle yer değiştirelim. Aşağıdaki gibi bir sonuç ortaya çıkar.
1- Buzdolabına yürü. 2- Yiyecekleri gözden geçir.
3- Buzdolabının kapağını aç.
4- Sevdiğin yiyecekleri seç 5- Seçtiğin yiyecekleri dışarı çıkar. 6- Bunları yemeye başla. 7- Yediğin yiyeceklerden artanları tekrar buzdolabına koy. 8- Buzdolabının kapağını kapat.
Buzdolabının kapağı açılmadan yiyecekler gözden geçirilmeyeceği için bu algoritma işe yaramaz. Dolayısıyla algoritma adımlarının sıralaması çok önemlidir.
Karışık algoritma örnekleri:
Aşağıdaki örneklerde karışık verilen algoritma adımlarını doğru bir şekilde sıralayınız.
Örnek 1: BALONCUK YAPMAK
1. Çubuğu dikkatle tut
2. Hafifçe üfle
3. Bir tanesine elinle dokun bakalım ne olacak
4. Kapağın içindeki çubuğu şişeye daldır
5. Kapağı aç
Örnek 2: EKMEK ALMAK
1. Kasaya götür
2. Eve dön ve sofraya koy
3. Sokağa çık
4. Dükkana gir
5. Parayı öde
Örnek 3: BULAŞIK YIKAMAK
1. Kurut
2. Sudan geçir
3. Durula
4. Sabunla
5. Artıkları sıyır
Örnek 4: MAKARNA YAPMAK
1. Suyun içine at
2. Suyu kaynat
3. Paketi aç
4. Süzgece dök
5. 15 dk bekle
Algoritma video:
Gelişmiş algoritmalar
Algoritmada problemin çözülmesi, çözümün adımlar halinde yazılması ile oluşur. Bu adımlar çözümün başlangıcından son adımına kadar sıralı bir şekilde listelenir. Fakat bazı algoritmaların içerisinde şartlar, sorular ve bu sorulara verilen cevaplar eklenebilir. Bu algoritmalarda başla ve bitir adımları bulunur.
Aşağıdaki çay demleme algoritmasını inceleyiniz. Bu algoritmaya dikkat ederseniz 7. adım şart bildiren bir adım. Eğer su kaynamadı ise sizi algoritmanın 6. adımına yönlendiriyor. Bu gibi adımlar duruma göre yapılacakları anlamamız için eklenir.
Örnek : Çay demleme algoritması
Adım 1: Başla Adım 2: Mutfağa git Adım 3: Çaydanlığın altına su koy Adım 4: Çaydanlığı ocağa koy Adım 5: Ocağı yak Adım 6: Suyun kaynamasını bekle Adım 7: Su kaynadı ise demliğe çay koy. Kaynamadı ise 6. adıma git Adım 8: Demliğe sıcak su koy ve çayı demle Adım 9: Çaydanlığın altına su koy ve ocağa koy Adım 10: Suyun kaynamasını bekle Adım 11: Su kaynadı ise çaylar servise hazır. Kaynamadı ise 10. adıma git Adım 12: Bitir
Algoritma oluşturma için durumlar
Aşağıda 10 adet durum verilmiştir. Bu durumların çözüme kavuşturulması için algoritma oluşturunuz.
Durum 1:
Arabayla yolda gidiyordunuz ve aniden lastik patladı. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 2:
Dünyadaki sular hızla kirleniyor. Siz de bu duruma seyirci kalmamak istiyorsunuz. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 3:
Gece hazırladığınız ödevinizi çantanıza koyduğunu sandınız ve okula gitmek için yola çıktınız. Yolun yarısında çantanızda ödevinizin olmadığı fark ettiniz. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 4:
Bilmediğiniz bir şehri turistik amaçla gezmek için bir gezi grubuyla ziyaret ettiniz. Fakat bir müddet sonra geride kalarak grubu kaybettiniz ve şehirde kayboldunuz. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 5:
Ertesi gün Bilişim Teknolojileri ve Yazılım dersi proje ödevini teslim etmeniz gerekiyor. Fakat hazırladığınız ödevi bulamıyorsunuz. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 6:
Evinizde beslediğiniz kediniz kapı açık olduğunda sürekli dışarı çıkıyor. Ve siz onu ararken yoruluyorsunuz. Bu problemin çözümü için bir algoritma oluşturunuz.
Durum 7:
Oturduğunuz ev caddeye çok yakın ve korna sesleri sizi rahatsız ediyor. Bu problemin çözümü için bir algoritma oluşturunuz.
Sonuç:
Bu hafta yeni problemler için yeni algoritmalar geliştirmeyi öğrendik. Hayatımızdan problem örnekleri verdik ve bu problemlerin çözümü için algoritmalar oluşturduk.
Code.org sitesi görevi
Bilgisayar kullanımının ve kodlama bilincinin küçük yaşlardan itibaren gelişebilmesi için hazırlanmış bir eğitim sitesidir. Bu site sayesinde hiç bir ek donanıma gerek duymadan kodlama ve algoritma yapısını kavrayabilirsiniz.
Code.org - Bu haftanın etkinliği
Bu hafta Code.org 'da görevimizi yapacağız. Şimdi sizler için hazırlanan aşağıdaki davetiye ile görevinize ulaşıyorsunuz.
Code.org - Bölüm davetiyesi
Bölüm ismi: Problem çözme etkinliği - 6. hafta
1.) https://studio.code.org/join/XMGDXR 'e gidin.
sınıf kodunuzu girin: XMGDXR
2.) Adınızı belirleyin: egitimdebilisim
3.) Gizli resminizi seçin:
4.) Giriş yap butonuna tıklayın.
Code.org - Giriş yapamayanlar için yardım videosu
Telefon veya tabletten girenler için uyarı:
Telefon veya tabletle girenler için soldaki gibi bir uyarı çıkabilir. Bu ekranı yan çevirin demektir. Eğer ekranı yan çevirdiğinizde de girmiyorsa telefonunuzun yan çevirme özelliği kapalıdır. Sağdaki resimde görünen butondan bu özelliği açmanız gerekir.
Comments