Bilgisayar Gibi Düşünün! Programcılar bilgisayarlar gibi düşünmeyi öğrenmek zorundadırlar. Programlama esnasında, programın kodları ...
Bilgisayar Gibi Düşünün!
Programcılar bilgisayarlar gibi düşünmeyi öğrenmek zorundadırlar. Programlama esnasında, programın kodları mümkün olduğunca küçük parçalara bölünüp, bilgisayarın verilen görevi sağlıklı bir şekilde yapılmasının sağlanması gerekir.
Robotlar Gibi Düşünmek
Garsonunun robot olduğu bir kafeyi düşünün. Bu robotun yemeği mutfaktan alıp müşteri masasına götürebilmesi için verilecek bir komuta ihtiyacı vardır. Bu komutların da robotun anlayabileceği şekilde küçük parçalara bölünerek verilmesi gerekir. Şöyle ki;
1. Garson Robot Programı
1. Yemeği al.
2. Mutfaktan yemek masasına git.
3. Yemeği masaya bırak.
Bu programı kullanacak robot yemeği mutfaktan alır, yemek masasına gitmek için hareket ettiğinde karşısına çıkan ilk duvara çarpar ve yemeği düşürür. Yani robotun istenilen görevi yerine getirmesi için bu algoritma yeterince açıklayıcı değildir. Robota kapıyı kullanması gerektiğini söylemedik.
Algoritma: Bir görevin yerine getirilmesi için yazılmış, planlanmış küçük talimatlar kümesidir. Tersten okursak, programlar, algoritmaların kodlama diline çevrilmiş halidir.
2. Garson Robot Programı
1. Yemeği masadan al.2. Mutfaktan yemek masasına hareket et
a. Mutfak ile yemek masası arasındaki kapıya git,
b. Kapıdan yemek masasına git.
3. Yemeği masaya bırak.
Bu algoritmada ise garson robota kapıyı kullanması komutunu verdik fakat önüne çıkması muhtemel engellerden bahsetmedik. Bu sebeple önüne çıkacak herhangi bir engele çarpacak ve istediğimizi yine yerine getiremeyecektir. Algoritmayı biraz daha detaylandırmamız gerekecektir.
3. Garson Robot Programı
1. Yemeği masadan al.
2. Mutfaktan yemek masasına doğru hareket et,
a. Mutfak ile yemek masası arasındaki kapıya git,
>>> Engelleri kontrol et, engel varsa çevresinden dolaş.
b. Kapıdan yemek masasına git,
>>> Engelleri kontrol et, engel varsa çevresinden dolaş.
3. Yemeği yemek masasına bırak.
Programın bu sürümünde robotun başarılı bir şekilde yemeği müşterinin masasına götürmesini sağladık. Ama programı bu şekilde kullanırsak birkaç dakika sonra müşterinin robota "hayırdır, yemeğe başlamadan bahşiş mi bekliyorsun" dediğini duyabiliriz. Ayrıca diğer müşterilerin yemeğinin de gidebilmesi için programın sonuna robotun işini bitirdikten sonra mutfağa geri dönmesini sağlayacak komutu da yazmamız gerekecektir.
Gerçek Hayattan Bir Örnek
Garson robot bir hayal olabilir fakat algoritmalar hayatın her anında kullanılır. Bilgisayar programı tarafından kullanılan asansörler de benzer problemlerle karşı karşıyadır. Yukarı mı aşağı mı gidecektir veya gideceği bir sonraki kat hangisi olacaktır.
1. Kapı kapanana kadar bekle
2. Düğmeye basılana kadar bekle
a. Basılan düğme numarası bulunuğun kat numarasından büyükse
>>> Yukarı çık.
b. Basılan düğme numarası bulunduğun kat numarasından küçükse
>>> Aşağı in.
3. Basılan düğme numarası geldiğin kat numarasına eşitlenince dur.
4. Kapıları aç.
Asansörün doğru ve güvenli çalışabilmesi için her adımın açık, anlaşılır ve olabilecek bütün ihtimalleri kapsaması gerekmektedir. Programcı programı kullanacak aracın, cihazın yapısına uygun algoritmayı yazdığından emin olmalıdır.
COMMENTS