3 Mart 2014 Pazartesi

Algoritma ve Programlama temelleri

Programlamanın temelleri: dizi, karar yapısı, tekrarlı işlem, sözdizimi, derleme, hata ayıklama ve bakım, yordamlar, parametreler, diziler, arama ve sıralama algoritmaları, sıradüzensel yapısal tasarım ve biçem’dir.

Programlama yapacağımız derleyicimiz “Microsoft Visual Studio 2013″ tür. Ve kullanıcağımız dil C++ ‘dır.
Bu ders Bilgisayar Mühendisliği #2 ‘nin ve Bilişim Sistemleri Mühendisliği #1′in zorunlu bir dersidir.
Gördüğüm eğitimden dolayı ingilizce olarak kendimi daha iyi ifade edebiliceğimi düşündüğüm için ders işleyişini İngilizce yapmak istiyorum ve aynı zamanda anlamadığınız yerleri yorum kısmında dile getirirdiğiniz takdirde en kısa sürede dönüş yapacağım.
Öncelikle  Algoritmadan Giriş Yapalım
Programlama dillerinde bir program yazarken yapilan her isleme komut ve bu komutlarin bütününe de programin kodu denilir. Yani biz bir programi kodlariz. Ancak bu kodlari belirli sirada ve düzende vermek zorundayiz. Yoksa pek de akilli olmayan bilgisayarimiz bunlari kendine göre siraya koyamaz. Biz ona hangi islemi ne zaman yapacagini söyleriz. Gerekirse bazi komutlari hiç isleme sokmamasini, bir komutu birden çok defa icra etmesini ya da belirli sartlarda ne yapmasi gerektigini bilgisayara anlatmak için bir düzen içinde kodlarimizi yazmaliyiz. Iste bu düzene programin akisi ve bu akisin tamamina da programin algoritmasi denilir.
algoritma
Çok akilli bir robot düsünelim. Bu robot sesle çalissin. O zaman her sözümüz robot için bir komuttur. Robota egil dersek egilir. Bu onun için bir komuttur. Ancak robottan yerdeki kalemi size vermesini isteyecekseniz belki birden fazla komut kullanmak zorundasiniz. Mesela bu örnek için robota 4 tane komutu söyle verebilirsiniz:
Egil.
Kalemi al.
Ayaga kalk.
Kalemi bana ver.
Bu seklide verdiginiz 4 komutun tümüne birden program diyebiliriz. Mesela bu robotun programlanabilir özelligi de olsun. Siz bu robota bu 4 komutu birden ögretip de bundan sonra her “kalemi ver” dediginizde bu isi yapmasini saglayabilirsiniz. Bundan robot, sonra siz “kalemi ver” komutunu söyleyince hemen daha önceki programi çalistirir ve bu 4 islemi yaparak sonuçta kalemi size verir. Peki programdaki 3. satirla 2. satiri yer degistirirseniz robot ne yapar. Egilir kalkar ve kalemi almaya çalisir ama kalem yerde oldugundan alamaz ve komutunuz dogru çalismaz. Dogru çalismasi için yukardaki sirada verilmelidir. Iste bu robotunuzun kalem verme algoritmasidir.
Daha anlasilir ve günlük hayatta çok kullandigimiz bir örnek verelim. Mesela kis ayindayiz ve evden disari çikacagiz. Pencereden bakiyoruz. Hava yagmurluysa semsiyemizi alalim, degilse almayalim ve disari çikalim. Bu isin algoritmasini örnegin 2 yolla kurabiliriz. 1.’si:
Pencereden disari bak.
Eger hava yagmurluysa semsiyeni al.
Disari çik.
Bir kisiye bu üç komutu verirseniz hemen pencereden disari bakar ve eger hava yagmurluysa semsiyesini alir ve sonra disari çikar. Dikkat ettiyseniz “Eger hava yagmurlu degilse” gibi bir sart yok. Zaten 2. sart yanlissa 3. adima geçeceginden semsiyesiz olarak disari çikmis olur. Bu olayi birde su algoritma ile yapalim:
Pencereden disari bak.
Eger hava yagmurlu degilse 4. adima geç.
Semsiyeni al.
Disari çik.
Gördügünüz gibi ayni isi 2 farkli algoritma ile yaptik. Dikkat ederseniz iki islemin de ayni sonucu verecegini görürsünüz. Bu sefer tersten yaptik isi. 2. adim bir karar verme adimidir ve eger hava yagmurlu degilse 4. adima geçmeye karar veriyor, 3. adim yapilmamis (atlanmis) oluyor ve semsiye alinmadan disari çikiliyor. Eger 2. adimdaki sart yanlissa, yani hava yagmurluysa 4. adima geçmiyor ve 3. adimdan devam ediyor islemlere. Bu durumda semsiye de alinmis oluyor.
Buraya kadar okuduklarimiza göre programciyi “Problemi analiz eden ve onu bir programlama dili ile bilgisayara anlatan, yazan, programlayan kisi” olarak tanimlayabiliriz. Algoritma ise “Programcinin Problemi analiz ettikten sonra onu en kisa ve en hizli çözmek için gelistirdigi yoldur”.
Artik genel olarak algoritmayi anlamis olduk.  Şunu unutmayalım ki iyi bir program önceden tasarlanmis ve bütün kullanim amaçlari belirlenmis programdir. Aksi takdirde isimiz hizlanacagina yavaslayabilir de..
kaynak:http://www.muhendisbeyinler.com/algoritma-ve-programlama/

Hiç yorum yok:

Yorum Gönder