Akış Şeması Örnekleri Çay Demleme Algoritması Problem: Çay demleme işleminin akış şemasını çizin. Nasıl Çözeriz? Hepimiz mutlaka çay demlemişizdir. Nasıl yapağımızı şöyle bir düşünelim: Çaydanlığa su koyarız ve kaynatırız. Su kaynayınca çayı demleriz. Bu arada çaydanlığa tekrar su koyarız ve suyun kaynamasını bekleriz. Su kaynayıp çay da demini aldıktan sonra artık çayımız servise hazır hale gelir. Bizden istenen bu işlemleri adım adım düşünmek ve algoritma haline getirmektir. Karşıdan Karşıya Geçme Algoritması Problem: Yaya olarak yolun karşısına geçeceksiniz. Yaya geçidi yoktur, yol iki şeritli ve refüjlüdür. Yapılacak işlemin akış şemasını çizin.
Nasıl Çözeriz? Karşıdan karşıya geçerken dikkat edeceğimiz en önemli nokta yaya geçidi olmayan yerdeki davranış biçimimiz olmalıdır. Yaya geçidi ve trafik ışıkları olmadığı için yolu kendimiz kontrol etmeliyiz. Yolun karşısına baktığımızda trafiğin normal akışında araçlar bize göre sol taraftan gelir. Yolun ortasına geldiğimizde ise durum değişir. Diğer şeritte araçlar bize göre yolun sağından gelmektedir. Çorap Giyme Algoritması Problem: Dört çekmeceli bir dolapta, çekmecelerin birinde çoraplarınız bulunuyor. Sabah kalktınız ve çoraplannızı giyeceksiniz. Çoraplarınızı bulmak için yapılacak işlemin akış şemasını çizin. Nasıl Çözeriz? Yapılacak şey çok basittir: Çekmecelerin hepsine sırayla bakmak. Bu işlemi adımlamamız gerektiğinde sırayı yukarıdan aşağı ya da aşağıdan yukan yapmamız sonucu değiştirmez. İnsanlann genel alışkanlığı, çekmecelere bakmaya çoğunlukla üst sıradan başlamaktır. Çözümü de bu şekilde kuralım.
Çözümde bir ayrıntıya dikkati çekelim: Çoraplarımızın kesinlikle çekmecelerden birinde olduğunu biliyoruz. O halde, ilk üç çekmecede çoraplarımız yoksa dördüncü çekmece için sorgulama yapmamız gerekmez. Çorapların orada bulunması gerekir. Radyo istasyonu Bulma Algoritması Problem: Bir arkadaşınız telefon etti ve en sevdiğiniz şarkıcının bir radyo programında konuk olduğunu söyledi. Radyosunun ibresi bozuk olduğu için hangi istasyon olduğunu anlayamadığını da ekledi. Siz de hemen radyonuzu açtınız ve bu istasyonu aramaya başladınız. Bu istasyonu bulmak için yapmanız gereken işlemin akış şemasını çizin. Nasıl Çözeriz? Radyoyu açtığımızda ibre herhangi bir yerde olabilir. İbrenin bulunduğu yerden aramaya başlarsak ve aradığımız kısımda istasyonu bulamazsak kalan kısım için aynı işlemi baştan sona yapmamız gerekir. İşi uzatmış oluruz. İlk başta ibreyi sol ya da sağ herhangi bir başa alırsak arama işini bir seferde tamamlarız. Hangi taraftan başladığımız işlemin sonucunu değiştirmez. Okuma ve yazma yönümüz soldan sağa doğru olduğu için bir çoğumuz düşünmeden ibreyi sol başa getirecek ve soldan sağa arama yapacaktır. Biz de çözümü buna göre kuralım.
Otobüs Bekleme Algoritması Problem: Bir otobüs durağındasınız ve otobüs bekliyorsunuz. Evinize gideceksiniz. Otobüse binene kadar yaşadığınız deneyimlerin akış şemasını çizin. Nasıl Çözeriz? Otobüs beklerken doğal olarak yönümüz otobüsün geleceği taraftadır. Durakta bekleyenlerin çoğu hep sol tarafa dönük durmaktadır. Gelen otobüslerin numarasına ya da tabelasına bakanz. Gelen otobüs beklediğimiz otobüs değilse diğer otobüslere bakanz. Beklediğimiz otobüs geliyorsa bilet ya da paramızı hazırlanz.
Trafik Algoritması Problem: Araba ile yolculuk yapıyorsunuz ve ışıklı bir kavşağa yaklaşıyorsunuz. Işığın durumuna göre nasıl davranmalısınız? (Gece saaderinde sürekli yanan san ya da kırmızı ışıklan dikkate almayın) Nasıl Çözeriz? İki noktayı dikkade düşünelim: Birincisi, ışığın rengi ne olursa olsun sonunda yapacağımız işlem kavşaktan geçmektir. İkincisi ise ışıklann yanma sırasıdır. Yeşil ışıktan sonra san, san ışıktan sonra kırmızı, kırmızı ışıktan sonra san ve daha sonra yeşil ışık yanacaktır. Amacımız kavşaktan geçmek olduğu için ilk koşul sorumuzu, ışığın yeşil olup olmadığını öğrenmek için sorabiliriz. Sorulan renk sırasını bozmadan sorarsak çözümümüz de kanşık olmaz. İki çözüm varsa her zaman daha az karmaşık olan tercih edilir. Çözümü inceleyecek olursak soruları arka arkaya soruyoruz. Işık yeşil değilse, ışık san da değilse tek seçeneğimiz kalıyor: ışık kırmızıdır; duruyoruz. Ay nca san ışıkta, biraz sonra zaten kırmızı yanacağını bildiğimiz ve hemen geçemeyeceğimiz için yavaşlayıp duruyoruz. Işığı sürekli kontrol ederek yeşilin yanmasını bekliyoruz.
Sınav Algoritması Problem: Bir sınavdasınız. Arkadaşınızın saati yok ve fısıldayarak size sınavın bitmesine kaç dakika kaldığını sordu. Siz de söylediniz. Bu işlemin akış şemasını çizin. Nasıl Çözeriz? Arkadaşımıza cevap verebilmemiz için öncelikle sınavın bitiş saatini bilmemiz gerekiyor. Merkezi sınavlarda gözetmenler tahtaya sınavın başlama ve bitiş saatlerini yazmak zorundadırlar. Bir okul sınavında ise öğretmen sınavın kaç dakika süreceğini sınav kağıdına yazmış olmalıdır. Tahtaya (ya da sınav kağıdına) bakarak sınavın bitiş saatini öğreniriz. Saatimize bakarak saatin kaç olduğunu öğreniriz. Akıldan küçük bir hesap yaparak sınavın bitmesine kaç dakika kaldığını bulur ve sonucu arkadaşımıza söyleriz.
Telefon Algoritması Problem: Bir telefon görüşmesi yapacaksınız. Yapmanız gereken işlemleri gösteren akış şemasını çizin. Nasıl Çözeriz? Bu soruyu doğru çözebilmek için bir telefon görüşme f Bajla sinde karşılaşabileceğimiz tüm durumlan tek tek düşünmemiz gerekiyor. Algoritmayı kurallan na uygun oluşturabilmek için bazı durumlan açıklığa kavuşturmak gerekir: örneğin numaranın meşgul olması ile numaranın düşmemesi farklı durumlardır. Numaranın meşgul olması, numaranın düştüğü ve karşıdaki kişinin başka biriyle görüştüğü anlamına gelir. Her ikisinin de sinyal tonlan farklıdır. Çevir sesi alınmaması, numaranın düşmemesi ya da numaranın meşgul olması gibi durumlarda ise kullanıcılar farklı davranabilirler. Kimi bir süre sonra tekrar aramayı denerken kimi tamamen işlemi bitirebilir. Tabi her zaman görüşme gerçekleşmeyebilir. Telefon çalabilir ancak evde kimse olmayabilir. Bu durumda arama işlemi iptal edilebilir veya bir süre sonra yeniden denenebilir (örneğin, yandaki çözümde eğer telefon çaldığı halde açılmıyorsa işlemi bitirmeyi tercih ettik). Bazı çağrılarımıza telesekreterler cevap verebilir (arak telesekreterler cep telefonları dahil tüm telefon sistemlerinde yaygın olarak kullanılıyor). İşte tüm bu durumları çözümümüzde gösterebilmeliyiz.
Tüm bu durumlan ve ihtimalleri tartıştıktan sonra karmaşık görünen telefon görüşmesinin açık ve anlaşılır bir algoritmasını yapabiliriz. Asansör Algoritması Problem: Bir asansörün nasıl çalıştığını gösteren akış şemasını çizin. Nasıl Çözeriz? Asansör, çağn geldiği zaman hareket eder. Çağrı da iki durumda gelir: ya kabin içinden gidilecek katın düğmesine basılır ya da herhangi bir kattan asansör kapısının yanındaki çağrı düğmesine basılır. Aslında asansör için iki durum da teknik olarak aynıdır ve yapacağı tek bir iş vardır: istenilen kata gitmek. Sonuçta, herhangi bir şekilde çağrıyı alan asansör aşağı ya da yukarıistenilen kata gider. Asansör Gezinimi Algoritması Problem: Bir asansörün çağn gelen bir kata nasıl gittiğini gösteren algoritmayı tasarlayın. Nasıl Çözeriz? Bir önceki sorunun daha aynntılı bir çözümünü gerçekleştireceğiz ve asansörün herhangi bir kata nasıl hareket ettiğini anlamaya çalışacağız. İçerden ya da dışarıdan bu önemli değil bir çağrı geldiği zaman asansör iki hareket durumundan birini gerçekleştirir: yukan çıkar ya da aşağı iner eder. Bu iki işlemden birini seçebilmesi için önce kendi bulunduğu katı bilmesi gerekir. Asansör çağrıyı aldığı zaman, çağrı gelen katın numarasıyla kendi bulunduğu katın numarasını karşılaştırır. Bulunduğu kat, gideceği kattan büyükse sayılar eşitlenene kadar aşağı iner ve inerken her katta sayar. Bulunduğu kat gideceği kattan küçükse sayılar eşitlenene kadar yukarı çıkar ve çıkarken her katta sayar. Sayılar eşitlenince durur çünkü istenen kata gelmiştir. Hareket bidnce asansör yeni çağrıyı beklemeye başlar.
Bu algoritmanın "Dur" bölümü asansörün iniş ya da çıkış harekednin sona erdiği bölümdür. Hareket sona erince asansör yeni çağrıyı beklemeye başlar.