- Slides: 12
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. • Bir insan makine değildir, o yüzden düşünmeye zorlanamaz. • 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.
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. • 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 hatalarını bulma ve düzeltme işlemine hata ayıklama (debugging) denilir. • Bir programda üç tür hata oluşabilir: söz dizimsel hatalar, çalışma zamanı hataları ve anlam bilimsel hatalar.
Ç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.
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.
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 ç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 9 x 9 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ş 3 x 3 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?