www.cihansalim.net
site içinde
İnternet'te

 Dosya Konusu
 
  Programlama, Diller ve Algoritma
Yazı: 1
 
^ Programlama Bölümü Yazıları ^ sayfa 1 2

Programlama, Dil ve Algoritma Tanımları

Algoritma nedir?

Genelde programlar bir soruna çözüm getirmek için yazılır. Bunun içinde sorunu nasıl
tıklayın, destekleyin:
çözeceğimizi düşünmemiz gerekir. Bizi çözüme adım adım yaklaştıran yönteme de algoritma denir. Bir problem birçok algoritma kullanılarak çözülebilir. Peki işimize yarayacak, sorunumuzu çözecek en verimli (kaynakları tüketim, performans ve zaman açısından en uygun) algoritmayı nasıl bulacağız. İşte programcılığın en zor yanı da burada yatar zaten.

Programımızın iskeletini oluşturan doğru algoritmayı bulduktan sonra, hangi dilde yazarsak yazalım uygulamamız sorunsuz işler. Algoritmayı düşünmeden doğruca kod yazmaya başlarsak, ki böyle bir yaklaşım pek söz konusu olmaz, işin içinden çıkamayabiliriz.

Örnek olarak verilen bir sayı dizisini küçükten büyüğe sıralayan bir program yazmak istiyoruz. Söz konusu insan ise, geçmiş bilgilerine dayalı olarak, sayıları bir bakışta sıraya dizebilir fakat söz konusu bilgisayar olunca ancak belli adımları takip ederek sonuca ulaşabilir. Sıralama sorunu için de bir çok algoritma bulunmuştur. Aşağıda bunlardan iki tanesini açıklamaya çalışacağım:

Dizimizde n tane sayı olduğunu kabul edelim.

Algoritma 1:
1- x=1
2- x'incı sayıyı en küçük sayı kabul et
3- x'inci sayıdan itibaren dizinin sonuna gelene kadar yeni sayıları en küçükle karşılaştır, "yeni sayı < en küçük" ise "en küçük = yeni sayı" olsun ve yerleri değişsin
4- x'i bir arttır. x=n ise dur, değilse 2. adıma git.

Algoritma 2:
1- x=0
2- (n-x)'e gelinceye kadar sayıları bir sonrakiyle karşılaştır. Önceki sayı > Sonraki sayı ise sayıların yerini değiştir.
3- X = n ise dur, değilse x'i bir arttır ve 2. adıma git.

Birinci algoritmada küçük sayıları sırayla bulup dizinin başından itibaren sıralıyoruz. İkinci algoritmada ise büyük sayıları sondan başa doğru sıralıyoruz. Sonuçta iki algoritma da dizinin sayılarını küçükten büyüğe aynı karmaşıklıkta ( işlemcinin programı sonlandırana kadar yapacağı işlem sayısının matematiksel gösterimi) sıralıyor.

Evet algoritmamızı tasarladık. Şimdi bunu bilgisayara anlayacağı şekilde anlatalım ki ekranımızda programın çıktısını elde edebilelim. Peki bunu yapabilmek için hangi programlama dilini kullanacağız.

Bu giriş niteliğinde bir yazı dizisi olduğu ve de programlamaya giriş yapmak isteyen kişilere hitap edeceği için yüksek düzeyli dillerden birini seçmemiz gerektiği düşünülse de, ben C gibi düşük düzeyli bir dille yola çıkacağım.

Nedenini de şöyle açıklayayım: Pascal ve Basic gibi daha yüksek seviyeli diller biraz daha kolay öğreniliyor fakat programcıya bazı kısıtlamalar getiriyorlar. İleri düzeyde büyük programlar yazarken programcının işini zorlaştırıyorlar. C, hem bu kısıtlamaları ortadan kaldırıyor hem de neredeyse Pascal kadar kolay öğreniliyor. (Tabii bu benim kişisel görüşüm)

Yukarıda karşılaştığınız bazı terimler şu anda havada kalmış olabilir; merak etmeyin ileriki yazılarımda ayrıntılara girip örnek kodlarla teorik bilgileri pratiğe dökeceğiz. Bu zamana kadar bir C derleyicisi temin ederseniz yazdığımız uygulamaları test edebilir ve üzerinde değişiklikler yaparak programlama mantığını daha iyi kavrayabilirsiniz.
Ücretsiz elde edebileceğiniz bir derleyiciyi, sağ kolonda bulunan Ekstra bölümü altındaki linkten bulabilirsiniz.

« 1. sayfa «

 
  Diğer Yazılar
(Yazı 1)
  Programlama bölümünün diğer yazılarına Programlama giriş sayfasından ulaşabilirsiniz.
 
 

- Programla- mayla ilgili diğer yazılara Programlama giriş sayfasıdan ulaşabilirsiniz.

- Programla- mayla ilgili sorularınızı ve bu bölümle ilgili önerilerinizi, Özgün Odabaşı'na, oodabasi@ gsu.edu.tr adresinden iletebilirsiniz.

- Bu bölümde, daha çok C programlama diline odaklanacağız. C ile ilgili geniş bilgi ve dökümanlar için, Cprogramming gibi sitelerden faydalana- bilirsiniz.

- Ücretsiz bir compiler elde etmek için bloodshed.net/ dev/ devcpp.html adresini kullanabilirsiniz.