BL 112 Programlamaya Giri C GENEL KAVRAMLAR rt
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 İşlemci (CPU): Merkezli işlem birimi Kontrol Ünitesi (Control Unit) Yazmaçlar (Registers) Bellek (RAM): Geçici hafıza birimi Veri Yolları (Bus) Girdi Çıktı Aritmetik / Mantıksal Ünite (Arimetic/Logic Unit) Ön Bellek (Cache Memory): Sabit Disk (Hard Disk): Sürekli Hafıza
İşletim Sistemi � İş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ın. Yönetimi Kabuk (Shell) Çekirdek (Kernel)
Ç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 (relocatable object module) 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 (Fatal Errors): 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: vb. Script, Java. Script, HTML
C- Derleyicileri �Microsoft ve Borland �Tümleşik Geliştirme Ortamları (Integrated Development Environment) �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, Zilog Z 80, �Bunlar 8 bit’ti ve 64 K bellek adresleyebiliyordu � 1978, Intel, 8086: 16 bit ve 1 M 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. � 1 Kilo Byte (KB) = 1024 byte � 1 Mega Byte (MB) = 1024 KB � 1 Giga Byte (GB) = 1024 MB � 1 Tera Byte (TB) = 1024 GB �…
Bilgiyi Saklama: Karakterler, yazı � Bilgisayarda karakterler ASCII (American Standard Code for Information Interchange ) 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 = 0 � 11111 = 255 �Negatiflik? �İkiye Tümleme Gösterimi (Two’s Complement Notation) � 8 bit kullanarak İkiyi Tümleme gösterimine göre en büyük ve en küçük sayılar � 1000 0000 = -128 � 01111 = 127 �Örn: 8 bit kullanarak İki’ye tümleme Gösterimiyle: � 23 = 00010111 �-12 = 11110100
Bilgi Saklama: Kesirli Sayılar �Kesirli sayılar için özel formatlar kullanılır. �Kayan Noktalı Gösterim Ö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 3. 25= 0 1 1 0 1
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 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. 5. Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve alan kodunu tuşla. 6. Telefon numarasını tuşla. 7. Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git. 8. Telefon konuşmasını gerçekleştir. 9. Telefonu kapat. 10. Bitiş. 1. 2. 3. 4. (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 (basic operation) kaç en iyi durumda (best case), ortalama durumda (average case) ve en kötü durumda (worst case) 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) �Ö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. Algoritma 1. 2. 3. 4. 5. 6. 7. 8. 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-akisdiyagrami-ornekleri-temeller” kaynağından yararlanılmıştır.
- Slides: 20