top of page

BİLGİSAYAR BİLİMİ KUR 1 - 1. DÖNEM 6. HAFTA

ÜNİTE:


1.2. PROBLEM ÇÖZME VE ALGORİTMALAR


KAZANIMLAR:


1.2.2.1. Verilen problemin çözümünde sabitleri ve değişkenleri kullanır.


1.2.2.2. Değişken isimlendirirken uyulması önerilen kuralları açıklar.







Problem çözme sürecinde bu 6 adım tam olarak uygulanmaz ise sonuç beklendiği gibi olmayabilir. Bireyler olarak evde, işte ya da farklı ortamlarda sürekli problem çözeriz. Evde karşılaşılan problemler; akşam yemeği için ne pişirileceği, yemekten sonraki boş vaktin nasıl değerlendirileceği, hangi kitabın okunulacağı ve marketten nelerin alınacağı gibi konulardır. İş yerinde ise problemler; yönetim, iş yeri kuralları ve takımların verimli çalışması gibi konuları içerebilir. Ne kadar doğru kararlar alırsanız o kadar mutlu ve değerli yaşantılar geçirirsiniz. Çoğu kişi bu süreçlerde problem çözdüğünün bile farkına varmaz.



3.3. Problem Türleri



Problemlerin her zaman sıradan çözümleri olmaz. Kek yapmak ya da araba kullanmak gibi problemleri çözmek için bir dizi eylem gerekir. Adım adım yönergelere dayalı olan bu çözümlere “algoritmik çözümler” denir.


En iyi yolu seçtikten sonra sonuca, ilgili adımları izleyerek ulaşılır. Bu adımlardan oluşan yapıya “algoritma” denir. En lezzetli ekmeği seçmek ya da işleri büyütmek için yatırım yapmak gibi problemlerin ise açık ve net ifade edilen yanıtları yoktur.


Bu çözümler bilgi ve deneyim gerektirir, bir dizi deneme ve yanılma sürecinden oluşur. Doğrudan işlem adımları ile ulaşılamayan sonuçlara “keşfe dayalı çözümler” denir. Problemi çözen kişi her iki türdeki problem için problem çözmenin 6 adımını kullanabilir. Ancak keşifsel çözümler için son adım çok doğru sonuç vermeyebilir. Bazı problemler ise her iki türdeki çözümün de kullanılmasını gerektirir.




3.4. Bilgisayarlar ile Problem Çözme


Bu ders kapsamında “çözüm” demek problem çözme sürecinin 5. adımında yer alan işlem adımları ya da yönergeler anlamına gelmektedir. “Sonuç” demek, çıktı ya da tamamlanmış bilgisayar destekli yanıt demektir.


“Program” ise herhangi bir bilgisayar dilinde kodlanmış, çözümü oluşturan işlem adımlarının tamamını ifade etmektedir. Bilgisayarlar, zor ve zaman alıcı olabilen algoritmik çözümler ile ilgilenmek üzere tasarlanmıştır. İnsanlar, keşifsel çözümleri bulma konusunda daha iyidirler ancak bilgisayarların çözebildiği ileri düzey hesaplama ve karmaşık problemleri çözme konusunda bilgisayarların hızlarına ulaşamazlar.


Bilgisayarlar, üst düzey matematik problemlerini kolayca çözebilir ancak konuşmak ya da top atmak gibi davranışları yapamaz. Bu işlemlerin zorluğu programlama sürecindedir. Bu tür işlemleri bilgisayarların anlayacağı bir dizi adım şekline nasıl dönüştürebiliriz?


Keşifsel problem türleri ile ilgilenen bilgisayar dalına “yapay zekâ” adı verilmektedir. Yapay zekâ uygulamaları, bilgisayarlara mevcut bilgileri kullanarak yeni bilgiler inşa etmesini sağlamaktadır. Böylece bilgisayarın problem çözme becerileri insanların yeteneklerine daha çok benzemektedir. Yapay zekâ özellikle robotik uygulamaları ile son yıllarda popüler bir çalışma alanı olmuştur. Bilgisayarlar insanlar gibi dü- şünmeye başlayana kadar daha çok algoritmik problemlerin çözüm süreçlerinde kullanılacaktır. Bu nedenle bu derste ağırlıklı olarak algoritmik çözümler üzerinde durulacaktır.




3.5. Problem Çözme Kavramları


Günlük hayatta karşılaştığımız problemler çok çeşitli olmasına rağmen bilgisayar ile çözebildiğimiz yalnızca 3 tür vardır:


1. Hesaplamalı–matematiksel işlem ve süreçler içeren problemler,


2. Mantıksal–ilişkisel süreçler içeren problemler,


3. Tekrarlayan–matematiksel ya da mantıksal bir dizi işlemin yinelenme sürecini içeren problemler. 



Bu bölümde, bilgisayara ilişkin temel kavramlar ve belirtilen türdeki problemleri çözmek için kullanılan ifade ve eşitlikler anlatılmaktadır. “Sabit” ve “değişken” önemli iki kavramdır. Programcı işlenmemiş hâlde veriyi alır, işlenmiş hâle yani bilgiye dönüştürür. Bunlar eşitlik ve ifadelerin yapı taşlarıdır. Programcı, problemi çözebilmek için gereken sabit ve değişkenleri, uygun “veri türü”nde, örneğin sayısal olarak tanımlar.

Sabit, ilk değerini koruyan değişmeyen veriler ve nesnelerdir. Örneğin; TC kimlik numarası her insan için sabit bir veridir. Pi sayısı ise evrensel olarak sabit bir değerdir.


Değişken, ilk anda başlangıç değeri alabilen ve süreç içinde değerleri değişebilen veriler ve nesnelerdir. Örnek; yaşımız, oyundaki skor, yazılılardan aldığımız notlar.



Aşağıdaki Basketbol oyunu için verilen örneği inceleyelim.



Diğer önemli kavramlar ise operatör ve fonksiyonlardır. “Operatör”, sabit ve değişkenler arasındaki ilişkileri gösteren, eşitlik ve ifadelerde kullanılan işaret ve sembolleri ifade eder. Operatörlerin belirli bir hiyerarşik yapı içerisinde kullanılması gerekir. Operatörler sabit ve değişkenlerle birlikte kullanıldığında “eşitlik” ve “ifade” olarak adlandırılan yapılar oluşur. Eşitlik ve ifadeler ise çözüm sürecinin yapı taşları olan işlemlerdir. “Fonksiyonlar” bir dizi işlem seti olarak tanımlanabilir. Tüm bu kavramları anlamadan bilgisayarlar ile problem çözmek olası değildir.



Sabit ve değişkenlerin tespit edilip kullanılması problem çözümünde önemli bir unsurdur. Örneğin bir dairenin alanını hesaplamak istediğimizi varsayalım.


Dairenin alanı = pi sayısı x yarı çapının karesi


Dairenin alanını hesaplayan bilgisayar programı yazılmak isteniyor. Önce algoritması kuruluyor. Aşağıda gördüğünüz gibi pi kodlama içinde sabit bir değer olarak kalmakta ve kullanıcı sadece yarı çap için değer girmektedir.


Başlat

  1. Pi=3,14

  2. Kullanıcı yarı çap için sayı girsin

  3. Alan=Pi*Sayi*Sayi

  4. Ekrana Alan’ı yaz.

  5. Bitir




Yukarıdaki resimde hangi adımlar sabit hangileri değişkendir?



Commentaires


bottom of page