3 – Problem Çözme Süreci Ünitesi Ders Notu

Problem Çözme Süreci Ünitesi Bilgisayar Bilimi dersinin üçüncü ünitesidir. Aşağıda problem çözme süreci ünitesine ait kitapta yer alan içeriklerin sadeleştirilmiş halini göreceksiniz. Problem çözme süreci ünitesi, problem çözme teknikleri, problem çözme adımları ve problem türlerine ilişkin bilgileri içermektedir. Problem çözme süreci ünitesinde ayrıca program yazarken kullandığımız veri türlerine ve fonksiyonlarına ait teorik bilgiler yer almaktadır.

PROBLEM ÇÖZME SÜRECİ
3.1. Problem Çözme Teknikleri

Programlama sürecinde problemin çözümüne yönelik yol ve yaklaşımları belirlemek gerekir ama öncelikle genel kural ve teknikleri bilmek yararlıdır. Bazı genel kurallar neredeyse tüm problemler için kullanılabilir.

3.1.1. Her Zaman Bir Planınız Olsun

Belirsiz bir durumu yaşamak yerine her zaman bir planınız olmalıdır. Bu, en önemli kuraldır. Belki oluşturduğunuz çözüm planı ilk denemelerde sonuç vermeyecek ama her seferinde sizi çözüme biraz daha yaklaştıracak ipuçları elde etmenizi sağlayacaktır.

3.1.2. Problemi Tekrar İfade Edin

Önceki problemlerde de gördüğümüz üzere bazen problemi tekrar ifade etmek, göremediğimiz bir ayrıntıyı görmemizi ya da problemi daha kolay çözmek adına bir ipucu yakalamamızı sağlayabilir. Hatta bazen probleme ilişkin bir yanlış anlamanın ortaya çıkmasına ya da hedefin daha iyi anlaşılmasına neden olur.

3.1.3. Problemi Küçük Parçalara Ayırın

Verilen problemi adımlara ya da bölümlere ayırmak, çözümü kolaylaştırır. Bir problemi iki bölüme ayırdığımız düşünüldüğünde, her bir parçanın çözümünün tümünü çözmeye göre yarı yarıya kolaylaştığını düşünebiliriz.

3.1.4. Önce Bildiklerinizden Yola Çıkın

Programlama yaparken öncelikle bildiklerimiz ile başlamalı ve sonra yeni çözümler arayışına girmeliyiz. Problemi küçük parçalara bölerek çözebildiğiniz parçadan başlayınız. Bu parçaları çözerken diğer parçalarla ilgili olarak aklınıza yeni fikirler geldiğini ve aynı zamanda kendinize olan güvenin arttığını göreceksiniz.

3.1.5. Problemi Basitleştirin

Çözmekte zorlandığınız bir problemle karşılaşırsanız problemin kapsamını daraltmayı deneyebilirsiniz. Bunun için koşulları azaltmayı ya da çözebileceğiniz biçime dönüştürmeyi, değişkenleri azaltmayı ya da problemin kapsama alanını küçültmeyi düşünebilirsiniz. Temel amacınız problemi basitçe ifade etmeye çalışmak olmalıdır.

3.1.6. Benzerlikleri Arayın

Burada ele aldığımız benzerlik kavramı, çözülmesi istenen problemle önceden çözülen problem arasındaki olası örtüşme ya da yeni çözüme ilham verme olarak tanımlanabilir. Benzerlik, farklı biçimlerde karşımıza çıkabilir. Bazen problemler aynı, değişkenler ya da veriler farklıdır. Bazen problemin belirli bir bölümü̈ başka bir problemle benzerlik gösterebilir. Problem çözme sürecinde hızınızı ve becerinizi arttıracak en önemli yaklaşım, benzerliklerin farkına varmaktır ancak bu, aynı zamanda kazanılması en zor beceridir.

3.1.7. Deneme Yapın

Bazen bir problemi çözmenin en kolay yolu denemek ve sonuçlarını gözlemlemektir. Bu, tahmin etmekten çok farklıdır. Bir çözümü̈ tahminen öngörmek ile kodu yazarak denemek ve sonuçlarını incelemek çok farklı sonuçlar verir. Böylece problemi çözebilmek için gereken ipuçlarını elde edebilirsiniz.

3.1.8. Asla Vazgeçmeyin

Asla vazgeçmemek, kişisel bir özelliktir. Kararlılık, güven ve istek kaybolduğu zaman açık düşünemezsiniz, işlemler olması gerektiğinden uzun sürer ve gittikçe zorlaşır.

3.2. Problem Çözme Adımları

Problem çözme sürecinde en iyi kararı verebilmek için izlenmesi gereken 6 adım vardır.

  • Problemi Tanımlama: Problemi çözmeye başlamadan önce problemin açık, anlaşılır ve çok doğru bir şekilde tanımlanmış olması gerekir. Problemin ne olduğunu bilemezseniz onu çözemezsiniz.
  • Problemi Anlama: Çözüme doğru yol almadan önce problemi çok iyi anladığınızdan emin olmanız gerekir. Problemin neler içerdiğini ve kapsamını doğru anlamalısınız.
  • Problemin Çözümü̈ İçin Farklı Yol ve Yöntemler Belirleme: Problemin çözümü için olabildiğince farklı yol ve yöntem belirlemeli ve bu listenin, tüm olasılıkları içerdiğinden emin olmalısınız.
  • Farklı Çözüm Yolları Listesi İçerisinden En İyi Çözümü̈ Seçme: Bu adımda her bir çözümün olumlu ve olumsuz yönlerini ortaya koymalısınız. Bu nedenle değerlendirme yapabilmek için ölçütler oluşturmalısınız.
  • Seçilen Çözüm Yolu ile Problemi Çözmek İçin Gerekli Yönergeleri Oluşturma: Bu adımda numaralandırılmış ve adım adım yönergeler oluşturmanız gerekir.
  • Çözümü Değerlendirme: Çözümü̈ test etmek ya da değerlendirmek, sonucun doğruluğunu kontrol etmek anlamına gelir. Sonucun doğru olması ve problemi olan bireyin beklentilerini karşılama düzeyi önemlidir.

3.3. Veri Türleri

Çevremizdeki kavram ve nesneleri farklı şekillerde anlamlandırmak için farklı veri türleri kullanırız. Çözümler üretebilmek için bilgisayarlar “veri” ye gereksinim duyar. Ham veriler, bilgisayar tarafından “girdi” olarak algılanır ve program aracılığı ile işlenir. Kullanıcıya geri dönen değer, işlenmiş veridir; “çıktı” ya da “bilgi” olarak adlandırılır. 3.6.1. Sayısal Veri

Sayısal veriler tüm sayı tiplerini içerir. Sayısal veri, hesaplama işlemlerinde kullanılabilen tek veri türüdür. Pozitif ya da negatif tam sayılar ve reel sayılar kullanılabilir. Sayısal veriler; açılar, uzaklık, nüfus, ücret, yarıçap gibi hesaplama sürecinde gerekli değerler için tanımlanır. Banka hesap numarası ya da posta kodu gibi sayısal ama hesaplama için kullanılmayan veriler de vardır. Bu tür veriler sayısal olarak tanımlanmaz. Her bir veri türünün bir veri seti vardır.

3.6.2. Alfanümerik/Karakter Veri

Karakter veri seti; tüm tek haneli sayılar (“0”.. “9”), harfler (“a”..“z”, “A”..“Z”) ve özel karakterleri (“#”, “&”, “*”, ..) kapsar. Bu veri setinden oluşturulan değer, tırnak içinde belirtilir. Büyük ve küçük harf duyarlıdır yani “a” ile “A” farklı algılanır. ASCII (American Standard Codefor Information Interchange) olarak adlandırılan karakter seti 256 karakterden oluşur. Karakterler sadece sayıdan oluşsa bile hesaplama işlemlerinde kullanılamaz. Birden fazla karakter bir araya getirilirse bilgisayar, bu yapıyı “dizi” olarak adlandırır. Karakter ve dizi verileri karşılaştırılabilir ve alfabetik sıraya göre sıralanabilir.

3.6.3. Mantıksal Veri

Mantıksal veri, veri setinde yalnızca iki kelime barındırır: doğru ve yanlış. Bu veri evet ya da hayır şeklindeki karar verme süreçlerinde kullanılır. Örneğin elde edilen değer, beklenen değer mi, evli mi, arabası var mı, öğrenci lise mezunu mu gibi sonucu kesin doğru ya da yanlış olan durumlarda mantıksal veri tanımlaması yapılır.

Veri Türleri İçin Kurallar

  1. Tanımladığınız veri genellikle sayısal, karakter, dizi ya da mantıksal olmalıdır.
  2. Programcı programlama sürecinde verinin adını ve türünü̈ belirtir. Bilgisayar çalışmaya başladığında verinin adı ile türünü̈ eşleştirir.
  3. Veri türleri karışık kullanılamaz. Örneğin sayısal olarak tanımlanmış bir veri, dizi olarak algılanamaz. Bu durumda bilgisayar, beklediği veri türü̈ ile karşılamaz ve hata verir.
  4. Her bir veri türü̈ kendisi için tanımlı veri setini kullanır.
  5. Matematiksel işlemlerde kullanılacak tüm veriler sayısal olarak, diğerleri karakter ya da dizi olarak tanımlanmalıdır.
  6. Programcılar kendi tanımladıkları veri türlerini de oluşturabilirler. Kullanıcı-tanımlı olarak adlandırılan bu veri türleri, bugünün tarihi, hedef, varılacak süre gibi hem dizi hem de sayısal veriler içeren yapılar oluşturulabilir.

Örnekler:

3.8. Sabit ve Değişkenler

Bilgisayarlar problemleri çözmek için süreç boyunca sabit ve değişken olarak adlandırılan verileri kullanır. “Sabit” olarak tanımlanan veriler problemin çözüm süreci boyunca asla değişmeyen değerlerdir. Sabit değerler sayısal, karakter ya da özel semboller olabilir. Bu durumda bu değere bilgisayarın hafızasında bir yer ayrılır ve bir isim verilir. Program çalıştığı sürece bu değer kendisine verilen isim ile çağrılır ve değeri asla değiştirilemez. Örneğin, pi değeri değişmeyen bir değer olacağı için sabit olarak tanımlanmalıdır.

Bu durumun tam tersi şekilde bir “değişken” tanımlandığında değeri, program çalıştığı sürece değişebilir

Değişkenlere isim verirken ve bunları kullanırken dikkat edilmesi gereken kurallar şunlardır:

  1. Değişkene içerdiği değer ile tutarlı isimler veriniz.
  2. Değişkenlere isim verirken boşluk kullanmayınız.
  3. Değişkenlere isim verirken bir karakter ile başlayınız.
  4. Matematiksel semboller kullanmamaya dikkat ediniz.

Değişken isimleri konusunda aşağıdaki noktalara dikkat edilmelidir.

  1. Bazı platformlar desteklemediği için Türkçe karakter kullanımı tavsiye edilmez.
  2. Programlama dillerinde kullanılan komut isimleri değişken olarak kullanılamaz. Çok bilinenleri; if, for, while, else, do, int, vb.
  3. Değişken isimlendirmelerinde boşluk karakteri yerine alt çizgi ( _ ) karakteri kullanılabilir ancak değişken isimlendirmede genellikle küçük harfle başlanır ve ikinci bir kelime yazılacaksa ilk kelimenin hemen ardından büyük harfle devam edilir. Buna “Camel Karakter” kullanımı denir. Örnek: tcKimlikNo
  4. Özel karakterler değişken isimlerinde kullanılamaz (*,/, -,+, #,%,&,(,=,?,$,[,{ gibi…).
3.9. Fonksiyonlar

Fonksiyonlar, belirli işlemleri yürüten ve sonuçları döndüren bir işlem kümesidir. Genellikle bilgisayar dilinde oluşturulur. Fonksiyonlar, bir çözüm surecinin belirli parçaları olarak kullanılır. Problem çözme sürecinde tekrarlanan işlemler için kullanılır ve böylece programcının hem problemi daha hızlı çözmesini hem de programın daha anlaşılır olmasını sağlar. Her programlama dili, içerisinde kendine özgü fonksiyonlar barındırır.

Fonksiyonlar gruplara ayrılır:

  1. Matematiksel Fonksiyonlar: Matematiksel işlemler için kullanılır.
  2. Dizi Fonksiyonlar: Dizi ve karakterlerle ilgili işlemleri gerçekleştirmek için kullanılır.
  3. Dönüştürme Fonksiyonları: Veriyi bir türden diğerine dönüştürmek için kullanılır.
  4. İstatistiksel Fonksiyonlar: Maksimum değer, ortalama gibi değerleri hesaplamak için kullanılır.
  5. Yardımcı Fonksiyonlar: Program dışındaki verilere erişerek işlem yapmak için kullanılır.

3.10. Operatörler

Bilgisayara, verileri nasıl işleyeceğini belirtmek gerekir. Bu işlem için operatörler kullanılır. “Operatörler” verileri, ifade ve eşitlikler ile birleştirir.

3.11. İşlem Önceliği

Matematiksel, mantıksal ve ilişkisel operatörlerin bir hiyerarşisi yani öncelikleri vardır. İşlemler, bu sıralamaya göre yapılmaz ise sonuç, beklendiği gibi çıkmayabilir. En içteki ayraçtan en dıştakine doğru işlem yapılmalı, ayraç içerisinde ise işlem önceliklerine dikkat edilmelidir.

3.12. İfade ve Eşitlikler

Şu ana kadar gördüğümüz tüm bileşenler, ifade ya da eşitlik biçiminde kullanılmadığı sürece bir anlam ifade etmez. Çözülmeye çalışılan problem vergi ya da maaş hesaplama, değerleri sıralama, en büyük değeri bulma gibi farklı işlemlerden oluşabilir. Bir “ifade” operatörleri kullanarak veriyi işler.

Problem Çözme Süreci Ünitesi Ders Notu İndir

Bilgisayar Bilimi Kur 1 Kitabı İndir

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir