Programlamaya Giri Problem zme ve Algoritmalar n Karl
+ Programlamaya Giriş
+ Problem Çözme ve Algoritmalar n Karşılığı bilimsel yöntemlerle bulunması gerekli soru ya da sorular kümesine problem diyoruz. Problem çözümünde bilgi, araştırma, tasarım yeteneği, sezgi ve düşünme gücünü bir yerde toplama gibi olgular yanında uygun Çözüm Yöntemini bulma, sonra onu verilen probleme uyarlama önem taşır. n Problemi çözebilmek için öncelikle sorunun çok net biçimde programcı tarafından anlaşılmış olması gerekir. Tüm ihtiyaçlar ve istekler belirlenmelidir. Problemin çözümüne ilişkin zihinsel alıştırmalar yapılır. Bu alıştırmaların bilgisayar çözümüne yakın olması hedeflenir. n Bir sorunun tabii ki birden fazla çözümü olabilir. Bu durumda bilgisayar için en uygun çözüm seçilmelidir. Çünkü bazen bizim için pratik olan çözümler bilgisayar için uygun olmayabilir. n Oluşturulan çözüm Algoritma dediğimiz adımlarla ifade edilmelidir.
+ Programlama Dilleri n Doğal dilde olduğu gibi programlama dilinin de bir alfabesi, sözcükleri, sözdizimi kuralları ve anlam yapısı vardır. n Yapılan algoritma ve tasarımdan sonra yazılım aşamasına gelinir ve bu aşamada yapılan programın kullanım ömrü, programın kullanım düzeyi ve hangi amaçla kullanıldığı gibi soruların cevaplarına bakılarak programlama dili seçilir. n Dil seçimi bazı kriterlere göre yapılmaktadır. n Diller geliştirme kaynağının içeriğine göre; cebirsel, algoritmik, işletime, uygulamaya, makineye vb. yönelik olması ile çeşitlenir. n Bir yazılım değişik dillerde oluşturulabilir fakat izlenen yöntemler genelde birbirine benzerdir.
+ Programlama Dilleri: 1. Çok Yüksek Seviyeli Diller: Visual Basic, Acces, Fox. Pro, . . 2. Yüksek Seviyeli Diller: Pascal, Basic, Fortran, . . 3. Orta Seviyeli Diller: C, C++, ADA, . . . 4. Düşük Seviyeli Diller: Assembly, . . 5. Makine Dilleri: Bilgisayarın çalışma dilleri 1 ve 0 lardan oluşur.
+ n Programlama dillerinin kendi alanları vardır ve her dil kendi alanında kullanıldığı sürece etkin ve başarılı olur. n Örneğin kısa sürmesi ve görsel tasarım içermesi, veritabanı iletişimi yoğun kullanılması gereken bir program yapmamız gerekiyor olsun. n Bu durumda Assembly dili ile yola çıktğımızda bahsedilen proje birkaç kişilik deneyimli bir programcı grubu ile bir kaç yıl alır. C ile iki programcı aynı işi üç dört ayda bitirirken Visual Basic ya da Delphi ile bir programcı bahsedilen işi bir iki ayda tamamlayabilir. n Yaygın kullanılan üst düzey diller arasında Fen bilimleri ve Mühendislik alanlarında elverişli olanları Fortran, Pascal ve Basic olarak verilebilir. Sistem programcılığında ise C, C++ vd. .
+ Sonuç olarak bir bilgisayar programı yazmak için belli aşamalar vardır ve bu aşamalar geçildiğinde kodlamaya başlanabilir 1. Analiz 2. Algoritma 3. Dil Seçimi 4. Kodlama Analiz ile gerçekleştirilmek istenen proje tasarımlanır ve parametreleri araştırılır. Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun programlama dili seçilir ve son olarak program kodlanmaya başlanır.
+ Algoritma n Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne Algoritma denir. n Uluslararası Matematik sözlüğü (1960) Algoritma’yı; 1. Cebirsel ya da sayısal çözümleme yöntemi 2. Problem çözüm yöntemini, sırası belirli işlem adımları ile tanımlayan hesaplama kuralı 3. Kesin ve açık tanımlanmış kurallar kümesi ya da problemin çözüm yönteminin sonlu işlem adımı ile tanımı olarak vermektedir.
+ Algoritmanın Özellikleri n Doğal dille yazılabileceği için formal değildir. n Algoritmanın uzunluğu kullanılan programlama dilinin seviyesi ve problemin karmaşıklığı ile doğru orantılıdır. n Algoritma sonlu olmalıdır ve adımlar isimlendirilmelidir. n İşlemler sade, net ve açıktır ( Farklı yorumlara izin vermeden kesin bir dille yazılmalıdır). n Adımlar düzenli ve sıralı biçimde olmalıdır. Algoritmanın genel işleyisi gereği yapılacak işlemler algoritmanın adımları ile sıralı olarak gitmektedir. n Problemin tam ve kesin tanımı yapılmalıdır. n Girdi/çıktı kesin olarak tanımlanmalıdır. Örneğin, 2 x 2+10 x-48=0 denkleminin pozitif kökü nedir sorusunda 2, 10, 48 katsayıları girdi, bulunacak kök çıktı ve koşul da kökün pozitif olmasıdır.
+ n Problemin bilgisayarla çözümü düşünülüyorsa ilk yapılacak iş, çözüm yöntemini belirlemek ve onu bilgisayar algoritması yapısında yeniden tanımlamaktır. n Algoritma yeterli koşulları sağlayan içerikte yazılmış ve doğruluğuna inanılmış ise, algoritma bilgisayar dili ile yeniden yazılır. n Programlama dili ile yazılmış algortima ise programdır. n Algoritma tasarımında, çözüm yaklaşımını parçalara ayırma ve her bir parçayı inceleme ve bütünleştirme çoğunlukla başvurulan bir yaklaşımdır. n Örneğin n tane (n<=100) tane tamsayının en büyüğünü bulma probleminde çözüm algoritmasını hemen belirlemek kolay değildir. n Bu nedenle ‘ iki sayının en büyüğünü bulmak’, ‘ üç sayının en büyüğünü bulmak’ gibi problemlerin çözüm yöntemlerini inceleyip genele varmak tasarımı kolaylaştıracaktır.
+ Algoritma Örnekleri Önce fiziksel olmayan bazı yalın problemler üzerinde çözüm algoritmalarını inceleyelim: Örn. 1) Öncelikle bir ev hanımının pasta yapmak istediğini varsayalım. bu pastanın yapımı için gerekli bir takım işlemler ve alt adımlar bellidir. Şöyle ki;
+ 1. Pastanın yapımı için gerekli malzemeleri hazırla 10. Pastayı kek kalıbına koy 2. Yağı bir kaba koy 11. Yeteri kadar ısınan fırına pastayı koy 3. Şekeri aynı kaba koy 12. Pişmiş mi diye kontrol et 4. Yağ ve şekeri çırp 13. a. Pişmiş ise 16. adıma git b. Değilse 14. adıma git 5. Karışımın üzerine yumurtayı kır 14. Keki fırından çıkart 6. Tekrar çırp 15. Fırını kapat 7. Karışıma un koy 16. kekin soğumasını bekle 8. 9. Karışıma vanilya, kabartma tozu ekle Karışım kıvama gelinceye kadar çırp 17. keki servis et
+ Daha önce de ifade edildiği gibi bir algortimada her adım son derece belirleyici olmalıdır. Algortimada herhangi bir belirsizlik sözkonusu olmamalıdır. Burada ise bazı belirsiz durumlar sözkonusudur; bir fırının yeterince ısınması hangi koşula bağlıdır, fırın kaç dereceye ayarlanmalı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 ya da çalışamamamsına neden olacaktır. ( 2. ve 3. adım yer değiştirebilir ancak 11. ve 14. adımlar kesinlikle yer değiştiemezler).
+ Örn. 2) Bir kitabın 10. sayfasını bulun (Burada işleyicinin insan olduğu kitap ve belirlenen sayfa numarasının verildiği kabul edilmektedir. ) Adım 1. kitabın ilk sayfasını aç. Adım 2. eğer açılan sayfa numarası 10 ise aranan sayfa bulunmuştur. Adım 3. değilse, bir sayfa çevirerek 2. adımı tekrarla
+ Örn. 3) Klavyeden girilen iki sayının toplamını yazdırma problemi için algoritma: Adım 1: Başla Adım 2: Girilen ilk sayıyı say 1’ e ikinci sayıyı say 2’ e ata. Adım 3: Top=say 1+say 2 Adım 4: Top değerini ekrana yaz Adım 5: Bitir.
- Slides: 14