



C programlama hakkında geçenler de bir yazı yazmıştım. Giriş yazısı olarak basit ve açıklayıcı olan yazıdan sonra ilk dersimiz olan Problem Çözme ve Algoritma hazırlama işlemlerine değineceğiz.
Bilgisayarlar, işlemciler, çekirdekler -Hiyerarşik olarak-, bilindiği kadarıyla insanlardan daha hızlı işlem yapabilme gücüne sahip olsalar dahi, yapılan işin arkasında her zaman bir insan gücünün bulunduğu inkar edilmez. En basitinden bilgisayarın zeka’sı dahilinden kendisinden herhangi bir aritmetik işlem yapmasını istememiz komik bir durumdan öteye gitmeyecektir. Zira bilgisayarların zekalarından sözetmemiz mümkün değildir -Son dönemdeki “Yapay Zeka” projeleri haricinde-.
Bilgisayardan herhangi bir işlem için istekte bulunmadan önce yapılması gereken işlemin ayrıntılarının tarafımızdan hazırlanması ve bilgisayarı bu işlem için uyarmamız, bilgilendirmemiz, en yaygın anlamıyla Programlama‘mız gerekmektedir. “Problem Çözme” bu aşama da devreye girmektedir.

Problem çözme esasları ile ilgili olarak izlenmesi gereken yollara biraz değinecek olursak,
» Problemin tanımı: Yapılması istenen işlemin adımlarında öncelikle problemin açık bir şekilde belirlenmesi gerekir, Tanımlanması gereken problem en ince ayrıntılarıyla anlaşılmalıdır ki sonrasında çıkacak ufak bir detayın büyük sorunlara yolaçmasının önüne geçebilmek ancak bu şekilde mümkün olabilir. Daha sonra da çözülecek problemin hangi aşamalardan geçmesi gerektiğine karar verilir.

» Çözüm yollarının tespiti: Problem çoğu zaman tek bir çözüm yolu izlenerek çözülebiliyor olsa da bazen birden fazla çözüm yolu ortaya çıkabilir, bu gibi durumlar da en iyi, en sade, en anlaşılır çözüm yolunun seçilmesi;
- Bilgisayarın yükünü hafifletir,
- Programcının yükünü hafifletir,
- Çözüm yolunda çıkacak olan problemlerin onarılmasını kolaylaştırır.

» Algoritmanın hazırlanması: Algoritma hazırlamak, program yazmanın sadece kalem-kağıt kullanılarak yapılması işlemidir. Algoritmasını hazırladıktan problemin %51′inin bittiğini rahatlıkla söyliyebiliriz, bundan sonrası sadece istenilen programlama diliyle hazırlanan algoritmanın bilgisayarın anlayacağı dile çevrilmesi ile ibarettir.

Algoritma uygulamalarında işlem akışı yukarıdan aşağıya doğru adım adım ilerlenmesi ile sonuçlanır. Eğer akış içerisinden birden fazla kullanılacak adımlar var ise, bu adımlara Geri dönüş‘ler yapılabilir. Akış diyagramlarında her adımın bir numara ile belirtilmesi gerekmektedir.

Basit bir algoritma olduğu için çok fazla ayrıntıya girilmesine gerek duyulmadan, kısa bir şekilde Problemin tanımı, Çözüm yolunun tespiti ve Algoritmanın hazırlanması‘nı yapmış bulunuyoruz. Burada dikkatinizi çekebilecek olan parantez içlerinde bulunan A, B, T=A+B, gibi ifadeler olabilir. Programlama dillerinde dışarıdan alınan veya program içerisinde kullanılacak veriler ya da değerler için belirli atamalar yapılmaktadır. Bu atama işlemlerinde verilerin ya da değerlerin atandığı ifadeler Değişken adını alır.Yani yukarıdaki algoritma da kullanıcıdan istendiği varsayılan 2. işlem basamağındaki Birinci sayı, program içerisinde A değişkenine atanmıştır. Değişkenler ile ilgili detaylı bilgiye ileriki bölümlerde değineceğiz. Şimdi aynı şekilde bir de içerisinde Geri Dönüş aşaması bulunduran algoritma hazırlayalım.

Önceki algoritmadan biraz daha detaylı bir algoritma hazırlamış olduk, burada da dikkatinizi çekecek bir iki nokta olabilir. Bunlardan ilki ikinci aşama‘daki yapılan işlem yukarıda bahsetitiğimiz Değişken kavramında, değişkene değer atama işlemi‘dir. Sağdaki değer, soldaki ise değişkendir. Diğer bir değişle sağdaki değer soldaki değişkene atanır. Bazı programlama dillerinde değişkenler tanımlandığında atama yapılmaması dahilinde programlama dili otomatik atamalar yapabilmektedir, bu şekilde çıkabilecek karışıklıklara yol açmamak için değer atamaları kesinlikle atlanılmaması gereken bir konudur. Bir diğer nokta ise altıncı adım‘da yapılan işlem basamağı olan Döngü sistemi‘dir. Algoritmayı ilk başta gördüğünüzde çözüm yolu için girilecek her sayı için bir adet değişken yani toplamda on adet ayrı değişken tanımlamak bir çözüm yolu olabilir. Fakat çözüm yolu belirlenirken bahsettiğimiz bir diğer konu ise en etkili ve kısa olan çözüm yolunun benimsenmesi olduğunu da unutmamak gerekir. Burada da programlama dillerinde vazgeçilmez bir unsur olan Döngü sistemi devreye girmektedir.
İşte yukarıdaki algoritmamızda kullandığımız döngü sistemi bu işlemlerden ibarettir. Döngü sistemini inceleyecek olursak, ikinci adımda 0 (sıfır) değerini atadığımız ( S ) değişkenine, beşinci adımda bir arttıma işlemi uyguluyoruz -Değişkene değer atama-. 0=0+1 şeklinde atanan işlem sonucunda S değişkenini değeri 1 oluyor, bir sonraki işlemde 1=1+1′den S değişkenini değeri 2 oluyor ve bu şekilde artarak devam ediyor ta ki altıncı adımdaki Eğer S<10 ise 3 no’lu adıma git şartına kadar bu adımda neler olduğuna biraz daha ayrıntılı bir şekilde bakalım;
» S değişkeni 9 olduğunda 3 no’lu adıma gidiyor,
» Tekrar bir sayı alıyor,
» Alınan sayı toplam değerine dahil ediliyor,
» S değişkeni bir arttırılıyor,
» Altıncı adımda S<10 ifadesi doğru olmadığından yani 10<10 yanlış olduğundan -10, 10′dan küçük müdür ?- altıncı adımdan yedinci adıma geçiliyor ve döngü sona ermiş oluyor. Daha sonra da
» Ortalama değeri hesaplanıyor,
» Toplam değeri ile ortalama değeri çıktı olarak veriliyor.Döngü sistemlerine daha sonraki konularımızda detaylı olarak değineceğiz…







