Problem Çözme ve Algoritmalar Problem Çözme Kavramları ve Yaklaşımlar
Programlama nedir? Bilgisayar bilimcileri genel olarak matematiksel sembolleri, işlemleri ve formülleri kullanır, mühendisler gibi tasarım yaparak farklı sistemler oluşturur ve bilim insanları gibi deney yaparak teknoloji desteği ile çözüm üretir. Bir bilgisayar bilimcisi için en önemli beceri problem çözme becerisidir. Programlama; bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar ve işlemler bütünüdür. Programlama, hem problem çözme becerisi hem de bilgi işlemsel düşünme becerisine sahip olmayı gerektirir.
Bilgi işlemsel düşünme Bilgisayar biliminin kavramlarından yararlanarak problem çözme, sistem tasarlama ve insan davranışlarını anlama olarak tanımlanabilir.
Farklı bir bakış açısı ile programlama; bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar ve işlemler bütünüdür. Kısaca yazılım geliştirme, test etme ve bakımını yapma sürecidir.
Program Nedir? Yapılacak bir işlemi ya da hesaplamayı gerçekleştirmek için birbirini izleyen Komut ya da yönergelerden oluşan yapıdır. İşlemler matematiksel ya da mantıksak olabilir. Örneğin bir Formülün sonucunun hesaplanması ya da bir doküman içerisinde belirli bir metnin aranması gibi… Ayrıntılar programlama dillerine göre farklılaşsa bile belirli komutlar her dilde yer alır.
Girdi: Klavyeden, dosyadan veya başka bir aygıttan veri almadır. Programların çoğu temel olarak aşağıdaki işlemlere dayalı olarak çalışır: Girdi: Klavyeden, dosyadan veya başka bir aygıttan veri almadır. Çıktı: Ekranda veriyi görüntüleme veya veriyi dosyaya veya başka bir aygıta göndermedir. Koşullu yürütme: Belirli durumları sınamak ve komutları uygun bir sıraya göre çalıştırmaktır. Tekrarlama: Bazı eylemleri genellikle ufak tefek değişikliklerle yineleme işlemidir.
Hata Ayıklama Nedir? Programlama, karmaşık bir süreçtir ve programcılar programlamada hata (bug) yapabilirler. Programlama hatalarını bulma ve düzeltme işlemine hata ayıklama (debugging) denilir. Bir programda üç tür hata oluşabilir: 1.Söz dizimsel hatalar, 2.Çalışma zamanı hataları 3.Anlam bilimsel hatalar.
Söz Dizimsel Hatalar Söz dizimi, programın yapısı hakkındaki kurallar demektir. Örneğin Türkçede bir cümle büyük harfle başlamalı ve uygun bir noktalama işaretiyle sona ermelidir. Bu kurallara uymayan cümlelere “Söz dizimi hatası içermektedir.” diyebiliriz. Programlama dilleri için söz dizimi, kesin ve net ifadeler içermelidir. Aksi takdirde program, söz dizimi hatası verir ve programın doğru çalışmasını bekleyemeyiz.
Çalışma Zamanı Hataları Bu hatalar ancak program çalıştırıldıktan sonra ortaya çıkar. Hesaplanması mümkün olmayan işlemler (sıfıra bölünme) ya da hiç gerçekleşmeyecek koşulların (5<3) yürütülmesi gibi durumlarda ortaya çıkar.
Anlam Bilimsel Hatalar Program, genellikle hata mesajı vermeden çalışır ancak çoğu zaman beklenen sonucu üretmez. En zor hata ayıklama türüdür. Bu yüzden programı satır satır çalıştırarak, farklı adımlardaki çıktıları gözlemleyerek nerede mantık hatası yapıldığını bularak program doğru biçimde çalışana kadar bu hataları ayıklamak gerekir.
Günlük Hayatta Problem Çözme Günlük hayatımızda problemlerimizi çözmek için yaşantımızı etkileyen pek çok karar veririz. Örneğin karşılaştığımız problemler, televizyonda hangi kanalı seyretsem gibi basit de olabilir, hangi mesleği seçmeliyim gibi çok önemli de olabilir. Yanlış bir karar verilirse zaman ve kaynaklar boşa gidebilir, bu nedenle nasıl doğru karar verildiğini öğrenmek önemlidir. En iyi kararı vermek aslında problem çözmektir. İnsan hayatı aslında bir problem çözme sürecidir. Genellikle bir problemin birden fazla çözümü vardır, her bir çözüm bir alternatif olarak düşünülebilir. Problem çözme, amaca ulaşabilmek için alternatifler arasından en uygun yolu belirlemektir.
Tilki, Kaz ve Mısır Çuvalı Problemi Bir çiftçinin bir tilkiyi, bir kazı ve bir mısır çuvalını nehrin karşısına geçirmesi gerekmektedir. Çiftçinin bu işlemi gerçekleştirmek için küçük bir teknesi var ancak bu teknede çiftçi ile birlikte en fazla bir nesneye daha yer var. Ne yazık ki tilki ve kaz açtır. Bu yüzden tilki kaz ile yalnız kalamaz çünkü tilki kazı yiyebilir. Aynı şekilde kaz ve mısır çuvalı yalnız bırakılamaz çünkü kaz mısırı yiyebilir. Bu koşullarda çiftçi nehrin karşısına tilki, kaz ve mısırı sorunsuz bir şekilde nasıl geçirebilir?
Tilki, Kaz ve Mısır Çuvalı Problem Çözümü Çiftçi ilk turda kazı almak zorundadır. İkinci turda, çiftçinin tilkiyi aldığını varsayalım. Bununla birlikte tilkiyi kaz ile bırakmak yerine çiftçi kazı yanına alarak yakın kıyıya geri götürür. Tilki uzak kıyıda yalnız kalır. Sonra çiftçi dördüncü turda tilkiyi yakın kıyıda yalnız bırakarak mısır çuvalını uzak kıyıya götürür.
Su Doku Sudoku oyunu gazete ve dergilerde yer almasıyla ayrıca web ve telefon tabanlı bir oyun olarak sunulmasıyla son derece popüler hâle gelmiştir. Farklı varyasyonlar olmakla birlikte burada kısa olan geleneksel sürümü tartışılacaktır.
Su Doku 9x9 boyutlu bir tablo kısmen (1-9 arası) sayı ile doldurulur ve oyuncu belirli kısıtlamalara göre boş kareleri doldurmalıdır: Her bir satır ve sütunda, her rakam tam olarak bir kez yazılmalıdır ve her doldurulmuş 3x3 alanda her bir rakam tam olarak bir kez yer almalıdır. O zaman, 1-9 arasındaki her bir sayıyı; bulunduğu satır, sütun ve kare içinde yalnızca bir kez kullanılacak biçimde nasıl doldururuz?
Dikdörtgeni Parçalara Ayırma Bir dikdörtgenden nasıl dik üçgenler oluşturabiliriz?
Çözüm 1: Bir dikdörtgenin kısa kenarı 1 cm olduğunda uzun kenarının 1 cm’ den büyük olması gerekmektedir. Uzun kenar 2 cm olduğunda A-1 şeklinde gösterilen dik üçgenler elde edilir. Oluşan dik üçgenlerden her birini de A-2 şeklinde dik üçgenlere ayırabiliriz.
Çözüm 2: B-1 şeklindeki gibi dikdörtgen içerisinde birbirine paralel çizgiler oluştururuz. Oluşan küçük üçgenleri de B-2 şeklinde gösterilen biçimde dik üçgen olacak şekilde bölebiliriz.
Engelli Yollar Şekilde gösterilen A noktasından B noktasına gidebilmek için gri ile gösterilen alandan geçiş bulunmamaktadır. Buna göre A’dan B’ye gidebilmek için kaç farklı yol kullanılabilir?
Çözüm
Hanoi Kulesi Aşağıdaki şekilde çeşitli renklerle gösterilen tahta parçaları, A çivisinden C çivisine aşağıdaki kurallara göre geçirilmek istenmektedir. • Küçük tahtaların üstüne büyük tahtalar yerleştirilemez. • Aynı anda sadece bir disk oynatılabilir. Buna göre tahta parçalarını A’dan C’ye taşıyınız.
Hanoi Kulesi Uygulaması için tıklayınız https://www.zekatestimerkezi.com/zekaoyunlari/hanoiKuleleri.php 3 disk = 7 hareket 4 disk = 15 hareket 5 disk = 31 hareket 6 disk = 63 hareket 7 disk = 127 hareket 8 disk = 255 hareke