3-BAŞLANGIÇ—->AKIŞ DİAGRAMLARI-1

AKIŞ ÇİZELGELERİ

Bir algoritmanın şekilsel gösterimidir. Dikkat edildiyse algoritma doğal dille yazıldığı için herkes tarafından anlaşılamayabilir ya da istenmese de başka anlamlar çıkarılabilir. Ancak akış çizgelerinde her bir şekil standart bir anlam taşıdığı için farklı yorumlanıp anlaşılamaması mümkün değildir. Bir algoritmanın ifade edilebilmesi için kullanılan şekiller ve anlamları şunlardır:

ORJİNAL BOYUT İÇİN TIKLAYINIZ

2-BAŞLANGIÇ—->ALGORİTMALAR

Algoritma:

Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Doğal dille yazılabileceği için fazlaca formal değildir. Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması gereklidir.

  • Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır.
  • Belirli bir sayıda adım sonunda algoritma sonlanmalıdır.
  • Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.

Akış Çizgesi Nedir?

Bir algoritmanın daha görsel gösterimidir. Çizgiler, Dörtgen, daire vb. geometrik şekillerle algoritmanın gösterilmesini sağlar. Doğal dille yazılmadığı için daha formal olduğu düşünülebilir.

Algoritmalar

Algoritmanın tanımını daha önce vermiştik burada bu tanımı tekrar etmek

faydalı olacaktır. Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Biz şimdi mümkün olduğu kadar bu tanım ve özelliklerden yola çıkarak örneklerle bir kaç algoritma vermeye çalışacağız.

Şimdi işe basit bir omlet yapımıyla başlayalım. Omlet yapımı için gerekli adımlar;

1.      Malzemeleri hazırla.

2.      Yumurtaları bir kaba kır.

3.      Maydanozları kıy.

4.      Kıyılmış maydanoz tuz ve karabiberi aynı kabın içine koy.

5.      Karışımı çırp.

6.      Tavaya yağ koy ve yeteri kadar ısınmasını bekle.

7.      Yağ yeteri kadar ısınmış mı diye kontrol et.

8.

a.       Yağ yeteri kadar ısınmış ise 9. adıma git

b.      Yağ yeteri kadar ısınmamış ise 7. adıma git

9.      Yarım su bardağı karışımı tavaya dök.

10.  Orta yumuşaklıkta pişmiş mi diye kontrol et.

11.

a.       Pişmişse 12. Adıma git.

b.      Pişmemişse 10. Adıma git

12.  Pişen karışımı katla.

13.  Servis tabağına ters çevirerek koy ve servis et.

Bu algoritma günlük yaşantımızdan bir örnektir. Yukardaki algoritma ve diğer tüm algoritmalar için bilmemiz gereken bazı konular bulunmaktadır:

Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır.

Belirli bir sayıda adım sonunda algoritma sonlanmalıdır.

Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.

Algoritmada algoritmanın genel işleyişini etkileyebilecek hiç bir belirsizlik olmamalıdır. (Bu örnekte öyle bir belirsizlik var. Bir yağın yeteri kadar ısınabilmesi hangi koşula bağlıdır, bu yağ ne zaman ısıtılmaya başlanmış olmalıdır ve kaç dereceye kadar ısıtılmalıdır gibi…)

Algoritmada bazı adımlar yer değiştirebilir. Ancak birçok adımın kesinlikle yer değiştiremeyeceğini bilmeliyiz. Yanlış sıradaki adımlar algoritmanın yanlış çalışmasına neden olacaktır. (2. ve 3. adım değiştirilebilir. 2-4. adımlar yer adımlar yer değiştirebilir.) Ancak 7-13. adımlar kesinlikle yer değiştiremezler.

Peki, Bilgisayarda çözülecek bir sorunu nasıl algoritma ile ifade ederiz?

Bunun için öncelikle bir sorun tanımlayalım. Başlangıç ta basit olması için şöyle bir problem üzerinde düşünelim: Bilgisayara verilecek iki sayının ortalamasını alıp sonucu ekrana yazacak bir program için algoritma geliştirmek isteyelim. Sorun son derece basit ancak sistem tasarımının net yapılabilmesi için sorun hakkında anlaşılamayan tüm belirsiz noktalar açıklığa kavuşturulmalıdır. Örneğin sayılar bilgisayara nereden verilecek, klavye, dosya veya belki başka bir ortam. Bu ve buna benzer soru ve tereddütleriniz varsa sorun sahibine bunları sormalı ve sistem analizi yapmalısınız.

Sonra bulacağımız çözümü algoritma haline dönüştürebiliriz.

1.      BAŞLA

2.      A SAYISINI GİR

3.      B SAYISINI GİR

4.      A VE B SAYISINI TOPLA İKİYE BÖL

5.      SONUCU EKRANA YAZ

6.      DUR

Gerçekte bir algoritma genellikle üç ana bölümden oluşur. Bunlar :

  • Algoritmanın giriş ve ilk işlemlerinin yapıldığı bölüm
  • Döngüsel bir bölümün olduğu kesim. Bu bölüm iterasyonlarla bir işlemin sürekli tekrar edilerek sonuca ulaşmayı sağlayan bölümdür.
  • Son işlemlerin yapıldığı bölümdür. Bu bölüm elde edilen sonuçların ekrana yazılmasını sağlayan bölümdür.

1-BAŞLANGIÇ—->GİRİŞ

C Programlama dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir. 1972 yılında Dennis Ritchie tarafından Bell Telefon Laboratuvarında tasarlanmıştır. C, özellikle sistem programlamada sembolik makine dili(Assembler) ile tercih edilmektedir. İşletim sistemleri, derleyiciler ve debug programları gibi aşağı seviyeli sistem programlarının yazılımında yoğun olarak C programlama dili kullanılır.

Bu dil ilk olarak bir programlama dili olarak düşünülmemişti ve özel bir amacı vardı: UNIX işletim sistemini tasarlamak (UNIX işletim sisteminin 1000 satırlık bölümü C ile yazılmıştır). Günümüzde Nesneye Yönelik programlama dilleri (C++, Java gibi) ve script dilleri (JavaScript, JavaApplet, PHP gibi) gibi programlama dilleri tamamen C tabanlıdır. Kısacası Standart C dilini (ANSI C) öğrenmekle, bu dillerin tamamına iyi bir hazırlık yapmış olursunuz. Derslerimizde tamamen ANSI C konu edilmiştir.

Program; bilgisayara ne yapması gerektiğini, bilgisayara ne yapması gerektiğini bildiren bir grup komuta verilen isimdir. Komutları veren kişiye ise programcı denir.

DERLEYİCİ VE YORUMLAYICI KAVRAMI

Derleyici: Programlama dili ile yazılmış bir programı makine dili ile yazılmış amaç veya hedef programa çevirirler

Yorumlayıcı: Program kodlarını ilk satırından son satırına kadar, satır satır belirtilmiş komut ve işlemleri inceleyerek kaynak programın hatalarının düzeltilmesine imkan veren ve çalıştıran programdır. Herhangi bir komut satırının çevrilmesinde ya da çalıştırılmasında bir hatayla karşılaştığında çalışmayı durdurur ve hatalı satırı programcıya bildirir.

Bağlama (linking): Günümüzde yazılan birçok program genellikle programlama dili içerisinde bulunan kütüphane fonksiyonlarına ve yordamlarına bağlantı içerdiğinden, kaynak programda üretilen amaç program kodunun bilgisayarda çalıştırılmaya hazır olması için bu amaç program (object code) bağlama (linking) işlemine tabi tutulur. Bu işlem sonucu eksik parçaların program kodu içerisine eklenmesi ile yazılan program artık çalışmaya hazır hale gelmiştir.

Genel olarak herhangi bir dili kodlamak için derleyici tek başına yeterlidir. Fakat genellikle IDE (Integrated Development Environment) kullanılır. IDE( bütünleşmiş entegre  geliştirme ortamı) içerisinde compiler (derleyici), linker (bağlayıcı), debugger (hata ayıklayıcı) ve editör bulunur. C kodlama için ücretsiz yazılım olan CodeBlocks adlı IDE’yi kullanmanızı tavsiye ederim.

CodeBlocks İndirme Sitesi 1

CodeBlocks İndirme Sitesi 2

CodeBlocks Resimli Kullanım Bilgisi rar şifresi: bir teşekkürü çok görme

Kaynaklar:

*Yar.Doç. Dr. Baha ŞEN Programlama Dilleri 1 Ders Notları

*djturkmaster.wordpress.com

Takip Et

Get every new post delivered to your Inbox.