200 likes | 481 Views
BİL 112 Programlamaya Giriş: C. GENEL KAVRAMLAR. Öğrt. Gör. Dr. Ahmet Cengizhan Dirican Enformatik. Bilgisayar. Tipik bir bilgisayarın genel yapısı. Diğer Aygıtlar. Bellek (RAM): Geçici hafıza birimi. İşlemci (CPU): Merkezli işlem birimi. Kontrol Ünitesi ( Control Unit ).
E N D
BİL 112 Programlamaya Giriş: C GENEL KAVRAMLAR Öğrt. Gör. Dr. Ahmet Cengizhan Dirican Enformatik
Bilgisayar Tipik bir bilgisayarın genel yapısı. Diğer Aygıtlar Bellek (RAM): Geçici hafıza birimi İşlemci (CPU): Merkezli işlem birimi Kontrol Ünitesi (ControlUnit) Yazmaçlar (Registers) Veri Yolları (Bus) Girdi Çıktı Aritmetik / Mantıksal Ünite (Arimetic/LogicUnit) Ön Bellek (CacheMemory): Sabit Disk (Hard Disk): Sürekli Hafıza
İşletim Sistemi Çekirdek (Kernel) Kabuk(Shell) Çekirdek (Kernel) • İşletim sistemi bilgisayar kaynaklarını (CPU, bellek, sabit disk, diğer aygıtlar) yöneterek kullanıcı ile bilgisayar arasındaki iletişimi sağlayan aşağı seviyeli bir sistem programıdır. • İşletim Sisteminin Temel Görevleri • Merkezi İşlem Birimi Yönetimi • Bellek Yönetimi • Disk Yönetimi • Dosya Sistemi Yönetimi • Diğer AygıtlarınYönetimi
Çevirici Programlar Bir programlama dilinde yazılmış olan kodu işlevi aynı olacak şekilde başka bir programlama diline çeviren programlara denir.
Derleyiciler (1/2) Kaynak dili yüksek seviyeli bir dil, amaç dili alçak seviyeli bit dil olan çevirici programlara derleyici denir. Alçak seviyeli dil genellikle sembolik makine dilidir. Belirli bir dilde yazılan bir programı makine diline çeviren programlara derleyici denir.
Derleyiciler (2/2) Derleyicilerin çıktısı olan amaç kodun işletim sistemine göre anlamı değişebilir. , Derleme işlemi sonucunda oluşan amaç koda yeniden yüklenebilir amaç kod (relocatableobjectmodule) denilmektedir. DOS işletim sisteminde çalışabilir bir kod üretmek için bağlayıcı (linker) denilen alçak seviyeli bir dönüştürücü programa daha ihtiyaç duyar.
Hata Mesajları Derleme işlemi sırasında tespit edilen hata mesajları3 kısma ayrılabilir. Uyarılar (Warnings): Derleyici tarafından tespit edilen olası uyuşmazlıkları, hatalı kullanımları veya problemleri işaret eder. Derleme kesilmez, sadece programcı uyarılır. Gerçek Hatalar (Errors): Derleyici tarafından tespit edilen açık, genellikle sentaks veya semantik, hatalardır. Derleme kesilmeyebilir. Ölümcül Hatlar (FatalErrors): Diskte yer kalmaması gibi sistemdeki önemli problemler sonucu oluşur. Derleme kesinlikle kesilir.
Yorumlayıcılar Yorumlayıcılar kaynak programı kısım-kısım veya satır-satır ele alarak doğrudan çalıştıran programlardır. Yorumlayıcılar amaç kod üretmezler. Yorumlayıcılar derleyicilere göre kolay yazılırlar. Yorumlayıcıların programı icra zamanı (run time) yüksektir. Yorumlayıcılar her zaman kaynak koda ihtiyaç duyarlar, bu kaynak kodun gizliliği açısından önemli bir dez avantajdır. Örn: vbScript, JavaScript, HTML
C- Derleyicileri • Microsoft ve Borland • Tümleşik Geliştirme Ortamları (IntegratedDevelopmentEnvironment) • Editör, Derleyici ve Bağlayıcı aynı ortamda sunulur. • Gelişmiş pek çok ayar grafiksel olarak sunulan ara yüzle gerçekleştirilir. • Daha çok hafıza gerektirir. • Konut Satırı • Editör, Derleyici ve Bağlayıcı ayrık programlardır. • Daha az hafıza gerektirir.
Mikro İşlemciler İlk İşlemci: Intel, 1974, 8080 Ardından: Motorola 6800, ZilogZ80, Bunlar 8 bit’ti ve 64K bellek adresleyebiliyordu 1978, Intel, 8086: 16 bit ve 1M bellek adresleyebiliyordu 1981: IBM: Intel 8086 + Microsoft DOS = İlk PC
Answer: 100.012 = 4.25 Bit ve Byte Kavramları Bilgisayar sistemlerinde bütün bilgiler ikilik sistemde 1 ve 0 biçiminde ifade edilebilen elektriksel işaretlerle saklanır. İkilik sistemde her bir basamağa “bit” denir. 10101110 sayısı 8 bittir. Bir byte 8 bittir. 1Kilo Byte (KB) = 1024 byte 1 Mega Byte (MB) = 1024 KB 1 GigaByte (GB) = 1024 MB 1 TeraByte (TB) = 1024 GB …
Bilgiyi Saklama: Karakterler, yazı Bilgisayarda karakterler ASCII (AmericanStandard CodeforInformationInterchange ) tablosu ile belirlenmiş sayılar ile kodlanmışlardır.
Bilgi Saklama: Tam Sayılar • 8 bit kullanarak en büyük ve en küçük sayılar: • 0000 0000 = 0 • 1111 11111 = 255 • Negatiflik? • İkiye Tümleme Gösterimi (Two’sComplementNotation) • 8 bit kullanarak İkiyi Tümleme gösterimine göre en büyük ve en küçük sayılar • 1000 0000 = -128 • 011111111 = 127 • Örn: 8 bit kullanarak İki’ye tümleme Gösterimiyle: • 23 = 00010111 • -12 = 11110100
Bilgi Saklama: Kesirli Sayılar • Örn: 3.25 sayısını 8 bitlik kayan noktalı gösterimi şu şekildedir. • 3.25 (onluk) = 11.01 (ikilik) • Sayı pozitif işaret biti “0” • Normalize ediyoruz: 11.01 = 0.1101 x 2^2 • Mantissa: . 1101 • Exponent: 2 • Excess-4 Gösterime göre 2 = 110 Kesirli sayılar için özel formatlar kullanılır. Kayan Noktalı Gösterim
8’lik ve 16’lık Sayı Sistemleri 2’lik sistemde sayılar çok yer kaplar. 10’luk sistemden 2’lik sisteme sayıları çevirmek zordur. Bu sebeple 8’lik veya 16’lık sayı sistemleri kullanılır.
Algoritma • Algoritma bir problemin çözümünü oluşturan sıralı, açık ve çalıştırılabilir adımlar kümesiydi. • Örnek: Telefon Etme • Başla. • Ahizeyi kaldır. • Sinyali kontrol et, sinyal yoksa arızaya haber ver ve 9. adım’a git. • Eğer telefon numarası yurt dışında ise iki kere sıfır tuşuna bas ve ülke ve alan kodunu tuşla, 6. adıma git. • Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve alan kodunu tuşla. • Telefon numarasını tuşla. • Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git. • Telefon konuşmasını gerçekleştir. • Telefonu kapat. • Bitiş. (Bu örnek “Çağıltay, Selbes, Tokdemir ve Turhan”’ın hazırladığı Programlamaya Giriş ders notu, Bölüm 1’den ndan alınmıştır.)
Algoritma Karmaşıklığı • Bir problemin değişik algoritmalarla üretilmiş pek çok çözümü olabilir. • Bu algoritmalar aşağıda verilen üç temel nitelik üzerinden karşılaştırılabilir. • Hafıza Gereksinimi • Açıklık • Hız • Hız diğer bir deyişle algoritmanın karmaşıklığını (complexity) ifade eder. • Algoritmada seçilen bir işlemin (basicoperation) kaç en iyi durumda (bestcase), ortalama durumda (averagecase) ve en kötü durumda (worstcase) kaç defa çalıştırılacağını ifade eder. • Çeşitli karmaşıklık sınıfları: logn (logaritmik), n (linear), nlogn, n^2 (quadratic), n^3 (cubic), 2^n (exponential) , n! (factorial)
Akış Diyagramları (1/3) Akış diyagramı, bir algoritmayı oluşturan adımların şematik bir biçimde gösterilmesidir. Bilgisayarın problemi çözerken yürütmesi gereken mantığı gösterir. Aslında herhangi bir problem için program yazmadan önce yapılması gereken bir şeydir. Akış Diyagramları belirli manaları olan bir kısım standart şekiller veya kutucuklar kullanılarak çizilir..
Akış Diyagramları (2/3) Örnek: Telefon Etme algoritması akış diyagramı: (Bu şekil Çağıltay, Selbes, Tokdemir ve Turhan’ın hazırladığı Programlamaya Giriş ders notu, Bölüm 1’den ndan alınmıştır.)
Akış Diyagramları (3/3) Algoritma Akış Diyagramı Program Başla Birinci sayıyı oku ve x ‘ e kaydet. İkinci sayıyı oku ve y ‘ ye kaydet. Üçüncü sayıyı oku ve z’ ye kaydet. top=x+y+z işlemini yap. ort=top/3 işlemini yap. top ve ort değerlerini ekrana yazdır. Bitir Program Çıktısı Bu örnekte “http://www.dahiweb.com/algoritma-ve-akis-diyagrami-ornekleri-temeller” kaynağından yararlanılmıştır. Örnek:Klavyeden girilen 3 sayıyı toplayan ve ortalamasını alarak sonuçları ekrana yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.