ALGORİTMA BULUNMASI www.ogrenciyiz.net
ALGORİTMA BULUNMASI Algoritma verilerin bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir [2]. www.ogrenciyiz.net
ALGORİTMA BULUNMASI Bilgisayar kullanarak problemi çözmek için sonuca giden yolun tam olarak belirlenmesi gerekir. Doğru bir yol izleyebilmek için, çıkılan ve ulaşılan yer tanımlanmalıdır. Aynı soru için değişik çözüm yolları geliştirilebilir. Unutmamalıyız ki biz bilgisayara ne öğretirsek oda bize dönüt olarak onu verecektir. Yani kurduğumuz algoritma doğru ise alacağımız sonuç doğru, değilse haliyle yanlış olacaktır [1]. www.ogrenciyiz.net
ALGORİTMA BULUNMASI 1.Problem Çözme Teorisi 2.Pratik Yöntemler www.ogrenciyiz.net
1.Problem Çözme Teorisi Bilgisayar kullanarak problem çözmek istiyorsak bizi sonuca götürecek yolu tam olarak belirtmek zorundayız. Unutulmamalıdır ki biz bilgisayara ne öğretirsek o bize dönüt olarak onu verecektir. www.ogrenciyiz.net
1.Problem Çözme Teorisi Problemin bir çözümü bulunmadan problemin tam olarak anlaşılamayacağı savunulmaktadır. Yani problem çözülememişse tam olarak anlaşılamamış anlamına da gelebilir. O halde problemi çözmeden önce tam olarak anlamak hiçbir zaman elde edilmeyecek ideal bir durumdur [3]. www.ogrenciyiz.net
Problem Çözme Adımları: 1.Soru Tanımlama: Her şeyden önce çözülecek soru tam olarak anlaşılmalıdır. Yanlış anlaşılmış bir sorunun çözümü yanlış olacak ve istenileni vermeyecektir[1]. www.ogrenciyiz.net
Problem Çözme Adımları: 2.Algoritma Geliştirme: Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır. Kısaca algoritma mevcut bilgilerden istenilenlere erişme yöntemidir[1]. www.ogrenciyiz.net
Problem Çözme Adımları: 3.Girdi ve Çıktı Biçimi Belirleme: Sonuçların dış ortama, dolayısıyla insana aktarımı düzgün bir biçimde yapılmalıdır[1]. www.ogrenciyiz.net
Problem Çözme Adımları: 4.Akış Şemasını Çizme: Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir[1]. www.ogrenciyiz.net
Problem Çözme Adımları: 5.Kodlama: Akış şemaları çizildikten sonra, sorunun yapısına uygun bir programlama dili seçilir[1]. www.ogrenciyiz.net
Problem Çözme Adımları: 6.Programı Sınama: Program yazıldıktan sonra, sonuçları daha önceden bilinen veriler girilerek, eldeki sonuçlarla çıkan sonuçlar karşılaştırılır. Programın doğru çalışıp çalışmadığı sınanır [1]. www.ogrenciyiz.net
1.Problem Çözme Teorisi Adım 1-Başla Adım 2-Birinci sayıyı oku Algoritma Adım 1-Başla Adım 2-Birinci sayıyı oku Adım 3-İkinci sayıyı oku Adım 4-İki sayıyı topla Adım 5-Dur www.ogrenciyiz.net
Adım 1-Başla Adım 2-A'yı oku Adım 3-B'yi oku Adım 4-C=A*B yi hesapla Adım 5-C'yi yaz Adım 6-Dur 1.Problem Çözme Teorisi SORU:İki sayının çarpımının bulunmasıyla ilgili algoritmayı hazırlayınız: www.ogrenciyiz.net
1.Problem Çözme Teorisi SORU: Bir insanın sabah kalkıp, işine gitmek için yaptıklarını anlatan algoritmayı hazırlayınız[4]. Yatmadan önce saatini ayarla, Alarm çalınca kalk, Elini yüzünü yıka, Kahvaltı hazırla, Kahvaltı yap, İş elbiselerini giy, Kapıyı aç ve dışarı çık, Biletini al, Otobüse bin (Arabanız varsa if... then), İnmek için ikaz lambasına bas, İşyerine doğru git, İşyerine gir. www.ogrenciyiz.net
1.Problem Çözme Teorisi ÖRNEK: Ali internet arkadaşı Ahmet’e yaşını sormuştur. Ahmet ise kardeşleri ile yaşlarının çarpımının 48 olduğunu söylemiştir. Ali problemi çözemeyince başka bir ipucu istemiş, Ahmet de ona 2 kardeşinin olduğunu söylemiştir. Ali daha da çok ipucu isteyince Ahmet: “Annem kardeşime dilimi çıkardığım için bana vereceği çikolatayı ağabeyime verdi.” deyince Ali Ahmet’in yaşını belirlemiştir [3]. www.ogrenciyiz.net
1.Problem Çözme Teorisi 48x1x1x1x1 24x2x1x1x1 12x2x2x1x1 6x2x2x2x1 www.ogrenciyiz.net
2.Pratik Yöntemler Şimdiye kadar problem çözmenin hep felsefi yönlerini anlattık. Ama ne yazık ki gerçek hayattaki problemler felsefe yaparak çözülmezler. Problem çözmek için birçok pratik yöntem geliştirilmiştir. Bu yöntemlerin her biri bir grup problemi çözmektedir. Diğer gruplardaki problemleri ise çözemezler. Ama tüm yöntemlerde bazı ortak özelliklerden bahsedilebilir[3]. www.ogrenciyiz.net
2.Pratik Yöntemler Örnek: Dört yarışmacı, Ali, Ayşe, Oya ve Gül yarışma öncesi şöyle tahminler yaparlar: Ali, Ayşe’nin kazanacağını düşünür. Ayşe, Gül’ün sonuncu olacağını düşünür. Oya, Ali’nin üçüncü olacağını düşünür. Gül, Ali’nin tahminlerinin doğru olduğunu düşünür. Sadece bir tahmin doğrudur ve bu tahmini kazanan yarışmacı yapar. Bu yarışı Ali, Ayşe, Oya ve Gül hangi sıra ile bitirmişlerdir? www.ogrenciyiz.net
2.Pratik Yöntemler (Oya, Ayşe, Ali, Gül) veya (Oya, Gül, Ali, Ayşe) Ayşe’nin tahmini doğru olmayacağına göre sıra (Oya, Gül, Ali, Ayşe) şeklinde olacaktır [3]. www.ogrenciyiz.net
Problem çözme ile ilgili bazı genel yaklaşımlardan Birincisi problemi geri geri giderek çözmektir. Eğer problem herhangi bir ürünün hangi yollarla üretildiğini bulmaya çalışıyorsa, verilen çıktıdan kullanılan girdiyi elde etmek üzere geri geri gidilir[3]. www.ogrenciyiz.net
Problem çözme ile ilgili bazı genel yaklaşımlardan İkinci problem çözme yöntemi ise elimizdeki problemi daha basit ya da önceden çözülmüş bazı problemlere indirgeyerek çözmektir. Bu yöntem program geliştirmede büyük önem taşır. www.ogrenciyiz.net
ÖRNEK 1: 1'den 100'e kadar olan sayıların toplamını veren algoritma[5]. Toplam T, sayılar da i diye çağırılsın. Başlangıçta T'nin değeri 0 ve i'nin değeri 1 olsun. i'nin değerini T'ye ekle. i'nin değerini 1 arttır. Eğer i'nin değeri 100'den büyük değil ise 3. adıma git. T'nin değerini yaz. www.ogrenciyiz.net
ÖRNEK 2: Sınavdaki en büyük notun bulan algoritma[6]. 1. En büyük = ilk sınav kâğıdındaki not (ya da olabilecek en düşük değer kabul edilebilir). 2. İncelenecek sınav kâğıdı var ise 3. 1 Sınav kâğıdındaki not > En büyük ise En büyük = Sınav kâğıdındaki not 4. En büyük değerini yaz. 5. Dur Sınavdaki en büyük notun bulan algoritma[6]. www.ogrenciyiz.net