Algoritma ve Programlama Algoritma nedir Tarihesi Algoritma ve



















- Slides: 19

Algoritma ve Programlama

§ Algoritma nedir? § Tarihçesi? § Algoritma ve programlama ilişkisi. § Programlamanın tarihçesi § Temel programlama kavramları Algoritma ve programlama 2

§ Programlamanın temelidir. § MS. 780’de Harezmi’nin çalışmalarıyla ortaya çıkmıştır. § “Al-kitab al-mukhtasar fi hisab al-ğabr wa’ l- muqabala” adlı kitap, 1145’te Latinceye çevrilmiştir. § Denklemlerde, terim ve sözel ifadeler yer almıştır. § Sonsuz sayıdaki problem çözümü için genel bir çözümleyici tanımlamıştır. § Türkçe’ye Algoritma olarak çevrilmiştir. § Bir problemin çözümüne ulaşmak için takip edilmesi gereken, art arda sıralanmış belirli sayıdaki işlemler şeklinde tanımlanabilir. Algoritma ve programlama 3

§ Özellikleri § Kesinlik § Her seferinde aynı sonuçları üreten § Herkes tarafından aynı şekilde anlaşılan § Sıralılık § Başlangıcı ve bitişi olan § Belirli ve değişmeyen bir sırada ilerleyen § Sonluluk § Sonlu sayıda adımdan oluşan Algoritma ve programlama 4

Metinsel algoritma § A 1 : Birinci sayıyı gir. § A 2 : İkinci sayıyı gir. § A 3 : Üçüncü sayıyı gir. § A 4 : Sayıların üçünü topla. § A 5 : Toplam sonucunu üçe böl. § A 6 : Sonucu yaz. § A 7 : Bitir. Algoritma ve programlama 5

§ Akış diyagramı ile oluşturulmuş algoritma Algoritma ve programlama 6

§ “Entellektüel doğadaki görevlerde insanlara yardımcı olacak ve zaman yerini alabilecek makine davranışının tasarımını içeren zor bir insan aktivitesidir. ” (Psychology of Programming, 1990) Algoritma ve programlama 7

§ Programlama dili, bir algoritmayı bilgisayarın anlayabileceği ve uygulayabileceği şekle dönüştüren aracı bir dildir. § Her programlama dili kendine has kelimeler, ifadeler, cümle yapıları ve imla kurallarına sahiptir. § Günlük konuşma dillerine benzetilebilir. § Java, C, C++, Visual basic, Ruby, Python, Pascal, Fortran, ……. . Algoritma ve programlama 8

§ Kaynak kod Bir programlama diliyle oluşturulmuş metin § Kod düzenleyici Bir programlama dilini kullanarak metinler oluşturmaya yarayan uygulama § Derleyici Bir programlama dilinde yazılmış olan metni bilgisayarın anlayabileceği dile yani makine diline çeviren özel programlar § Yorumlayıcı § Derleyici gibi yazılan kodu makine diline çeviren ancak bu işlemi satır gerçekleştiren ve olası hataları tespit eden programlar Algoritma ve programlama 9

§ Tanımlayıcı (identifier) Kaynak kod ya da algoritma içinde yer alan araçlara ve nesnelere verilen isimler § Değişken Algoritma ya da kaynak kod içerisinde değerleri (sayı, isim, karakter, vb. ) tutmak için oluşturulan, içeriği değişebilen hafıza bölümüdür. § Sabit Değişken özellikleri taşıyan ancak içeriği değiştirilmeyen hafıza bölümüdür. § Döngü Belli sayıda ya da belirli koşullarda aynı işlemin tekrarlanmasıdır. § Operatör Matematiksel, mantıksal ya da karşılaştırma işlemleri yapma olanağı sağlayan komutlardır. Algoritma ve programlama 10

§ M. Ö. 3000 -1500 § Kil tabletlerde ilk algoritma izleri § Babilliler § 60 sayı tabanı (saat (60) ve çember (360) § Cebirsel ifadeleri çözen algoritmalar § Sembolik mantık (programlamadaki koşullar, elektrik kapıları…) § M. Ö. 330 -275… Euclid § EBOB algoritması (recursion özelliği) Algoritma ve programlama 11

§ Mekanik makinalar, günümüz bilgisayarlarının temelidir. § Charles Babbage (1781 -1871) § Fark Motoru § Analitik Motor § Ada Lovelace (1815 -1852) § Tarihteki ilk bilgisayar programını yazan programcıdır. § Bernoulli sayılarını hesaplama yöntemi tarif etmiştir. § Babbage’ın makinasına otomatik özelliğini kazandırmıştır. Algoritma ve programlama 12

§ 1889…Herman Hollerith § Hollerith kartları § Alonzo Church § Fonksiyonlar kavramına öncülük etti. § Turing makinası § Programların veri şeklinde depolanması § https: //www. youtube. com/watch? v=g. JQTF hkhw. PA § 1940 lar. . . § Assembly dili Algoritma ve programlama 13

§ Kısmen programlanabilir elektronik bilgisayarlar § Boolea cebri Algoritma ve programlama 14

§ II. Dünya Savaşı § Aiken tarafından Mark 1, 2, 3 ve 4 geliştirildi § Askeri amaçlı bilgisayarlar § Auto. Code yapıları oluşturuldu § Fortran ve Cobol’ a öncülük etti § 1951…Böhm dili § Derleyiciye sahip ilk programlama dili Algoritma ve programlama 15

§ 1954 -1957…FORTRAN § Ileri matematiksel hesaplamalar için § 1959…COBOL (Common Business- Oriented Language) § Ilk standardize edilmiş iş bilgisayar dili § BASIC… 1964 § Kullanıcı dostu § Öğrencilerin farklı alan ve derslerde bilgisayar kullanımlarını sağlamak. § Günümüzde nesne yönelimli dil olarak kullanılıyo. § Logo. . . 1967 § Eğitim amaçlı programlama ortamı § Matematik ve geometri Algoritma ve programlama § Pascal. . 1970 § Veri yapıları ve yapısal programlamayı öğretmek § If/then/else § C++. . . 1983 § Nesne yönelimli § Python… 1989 § Kısa ve sade komutlar § Java. . . 1991 § İnteraktif tvler için hazırlanmıştır § İlk sürüm 1996 16

§ Ilk derleyici ( compiler) § Debugging kavramının ilk kullanıcılarından § Ilk gerçek bug olayını belgeledi § Arithmetic Language Version 0 (A-0) dili § Üretildiği bilgisayardan bağımsız yazılan bir programı derleyebiliyor. § Flow-Matic § İngilizce benzeri komutlar § 1959…COBOL (Common Business-Oriented Language) § Ilk standardize edilmiş iş bilgisayar dili § Heskesin programlama yapabileceği bir dil ( Algoritma ve programlama kullanıcı dostu) 17

Algoritma ve programlama 18

§ Fonksiyonel programlama § Eşzamanlı ve dağıtılmış programlama § Sezgisel kod tamamlama § Script kullanımı § Otomatik veritabanı bağlantısı § GPU’ ya erişim § Artan programcı sayısı (yaş, meslek, vb. farketmeksizin) § Açık kaynak kodu Algoritma ve programlama 19