C Dersi Bölüm 1. Bilgisayar Donanımı



Benzer belgeler
Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bilgisayarda Programlama. Temel Kavramlar

C DERSĐ Programlamaya Giriş. Çağıltay, Selbes, Tokdemir, Turhan Bölüm 1 Genel Kavramlar 2

Bilgisayar Programlama. 1.Hafta

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

PROGRAMLAMAYA GİRİŞ DERS 2

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

3. Bölüm Algoritmalar

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ALGORİTMA VE PROGRAMLAMA I

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

2. SAYI SİSTEMLERİ VE KODLAR

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Dr. Fatih AY Tel: fatihay@fatihay.net

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

C PROGRAMLAMA DİLİNE GİRİŞ

ALGORİTMA VE PROGRAMLAMA I

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

KASIRGA 4. GELİŞME RAPORU

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

C PROGRAMLAMA D İ L İ

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Dr. Fatih AY Tel: fatihay@fatihay.net

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

Temel Bilgisayar Programlama

BILGISAYAR ARITMETIGI

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Program Nedir?(1) Programlamaya Giriş

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

C PROGRAMLAMA DİLİ. Hedefler

SAYISAL DEVRELER. İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

ELN1001 BİLGİSAYAR PROGRAMLAMA I

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Bilgisayarların Gelişimi

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

1.1. Yazılım Geliştirme Süreci

Elektroniğe Giriş 1.1

ALGORİTMA VE PROGRAMLAMA I

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

PASCAL PROGRAMLAMA DİLİ YAPISI

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Algoritmalar ve Programlama. Algoritma

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Genel Programlama I

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

İşletim Sistemlerine Giriş

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Yrd. Doç. Dr. Caner ÖZCAN

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BÖLÜM 2: ALGORİTMALAR

Temel Bilgisayar Programlama

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001)

C Programlama Dilininin Basit Yapıları

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Temel Excel Kullanım Bilgisi

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Programlama Dilleri 1. Ders 4: Diziler

Kodlama ve Kodlar - (Coding and Codes) Sakarya Üniversitesi

ALGORİTMA VE PROGRAMLAMA I

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLGİSAYAR ORGANİZASYONU

Floating Point (Kayan Noktalı Sayılar)

Bilgisayar Sistemlerine Genel Bakış

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

BİL1001 Bilgisayar Bilimlerine Giriş 1

ALGORİTMA VE PROGRAMLAMA II

Transkript:

C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden oluşur. Bellek birimi, program ve veriyi tutar. Merkezi İşlem Birimi, bellekteki komutları sırasıyla işler. Girdi ve Çıktı birimi, Çeşitli veri giriş ve çıkış araçlarının kullanılmasını sağlar Veri yolları bütün birimlerin bağlantısını sağlar 2 1

Bellek Birimi Bellek, program kodlarını, verilerini ve değişkenleri Programları işlemek için gereken çeşitli tabloları Örneğin yığıt, geçici olarak saklanan adres ve verileri tutan bir çeşit tablodur. Kesme vektörleri tablosu da girdi çıktı birimlerinden gelen servis isteği durumunda servis adresini tutan tablolardır.. İşletim sistemi için gereken veri ve değişkenleri tutan birimdir. Veri yazmak veya okumak üzere birer baytlık milyarlarca veri alanına sıfırdan başlayan tamsayı adreslerle erişilir. Her adreste 0... 255 arası bir sayı saklayabilir. 3 Merkezi İşlem Birimi (CPU) Merkezi İşlem Birimi içinde Komut Çözücü: Bellekten komut okuyup bu komutu işlemek için gerekli sinyalleri MIB içindeki altbirimlere iletir Yazmaçlar: geçici olarak adres ve veri saklar, Aritmetik Mantık Birimi (ALU): Komut çözücünün emrinde yazmaçlardaki değerlerile aritmetik ve mantık işlemleri yapar. Adres ve veri yolları Komut çozücünün emrinde girdi çıktı birimi ve bellekle yazmaçlar arasında veri iletir. 4 2

Bilgisayar Donanımı : Girdi Çıktı Birimi (CPU) Girdi çıktı birimi sıfırdan başlayan adreslerle erişilebilen, ve her seferinde birer bayt veri taşınan port kapılarından oluşur. Sabit diskler, flaşdiskler, monitör maus ve klavye (konsol) birimleri, yazıcılar, okuyuculara giden/gelen veriler ve kodlar portlar üzerinden CPU denetiminde yazmaç ve belleğe aktarılır. 5 Bilgisayar Donanımı : Veri, Program Kodu ve Bilgi Veri (Data), kodlanma detaylarını bilmediğimiz sayılar yığınıdır. Yalnız başına bir işe yaramaz. Program kodu, verilerin nasıl işleneceğine ilişkin komutlar dizisidir. Kaynak program kodu metin (text) biçimindedir. Yürütülebilir makine program kodu CPUnun çözümleyeceği biçimdeki komutlar dizisidir. Bunlara yürütülebilir kod(executable code) da denir. 6 3

Bilgisayar Donanımı : Veri, Program Kodu ve Bilgi Bilgi, verilerin işlenmesi için gereken en üst düzeydeki kurallardır. Örneğin bugünkü hava koşullarından yarınki havanın tahmini için gerekli bilgiler. Bir şirket çalışanlarının çalışma saatleri ve iş tipine göre o hafta alacağı ücreti belirleyen bilgiler. Bilgi, program kodunun yazılmasında kullanılır. Veriler ise program tarafından okunup değerlendirilir. 7 ikili sayılar, BİT Bilgisayar belleği yalnızca iki durumdan birini tutabilen devrelerden oluşur. Bellek devresinde gerilim ya vardır ya da yoktur. Devrenin durumu gerilim varsa 1 yoksa 0 dır. Yalnızca bir devre ile 0 ve 1 sayılarını saklarız. Yalnızca bir devreyle saklanan veriye ikili basamak (binary digit) anlamına gelen bit adını veririz. Iki yazabilmek için ikinci bir basamak gerekir. En sağdan başlayarak sayarsak ilk bit birler bitidir. İkinci bit ikiler bitidir. 8 4

ikili sayılar, BAYT İki bitle en büyük sayı olarak 3 yazabiliriz. (2) (1) 1 1 = 2+1 = 3, Dört yazabilmek üzere üçüncü biti kullanırız. Üç bitle en yüksek 7 yazabiliriz. (4) (2) (1) 1 1 1 = 4+2+1= 7 Bu şekilde devam edersek, dördüncü bit 8, beşinci bit 16, altıncı bit 32, yedinci bit 64, sekizinci bit 128 yazmak için kullanılır. Bir Bayt = 8 bit bellek alanıdır. harfleri kodlamak için yeterli en küçük bellek alanıdır. 8 bit ile 0 ile 1+2+4+8+16+32+64+128=255 arasındaki işaretsiz tamsayıları yazabiliriz. 8 bit ile 128 ile 128 arasındaki işaretli tamsayıları yazabiliriz. 9 ikili sayılar ve Karakter veri tipi Bilgisayarda yazacağımız metinler ingiliz alfabesinde ise ASCII karakter standardını kullanırız. ASCII standardı 32 özel amaçlı karakterle (satır başı, sayfa başı gibi) 195 yazılabilir karakteri ($%(),.01 9 + AB Z ab z gibi) Kodlayan bir tabloyu tanımlar. Türkçe karakterleri de kullanmak için ANSİ, ya da UTF 8 gibi bir karakter kodlama tablosu kullanırız. Metin Düzenleyicilerde Bu kodlama tiplerini seçmek üzere seçenekler bulunur. Böylece her bir harf bir bayt alana kodlanmış olur. 10 5

Tamsayı veri tipleri Bilgisayar ile çözeceğimiz problemlerde kullanılan en büyük tamsayının on basamak (10 000 000 000) civarında olması yeterlidir. 4 bayt (32 bit) ile 2 147 483 648 ile 2 147 483 648 arasındaki sayıları kullanmamız mümkündür. C deki int tipi, sayının 32 bitlik olduğunu bildirir. Daha büyük sayılar kullanmak için 64 bitlik long int tipinde sayılar kullanırız. 11 Kayar noktalı sayı veri tipleri Problem çözerken yalnızca tamsayılar yetmez. Kesirli sayıları bilgisayarda gösterebilmek üzere floatıng poınt (kısaca float) sayı tipi kullanılır. float sayıların standardı 32 bittir. 8 biti 2-127 ile 2 127 arasında bir üstel çarpan için 24 biti 1 ile 2 arasında 8 basamaklı bir kesirli sayı yazmak için kullanılır. Böylece en büyük pozitif sayı 3.4 10 38, en küçük pozitif sayı 3.4 10 38 olabilir. double floating point (kısaca double) tipini daha büyük ve daha küçük sayıları göstermek için kullanırız. Pozitiflerin en büyüğü 1 10 300, en küçüğü 1 10 300 tür. 12 6

Merkezi İşlem Birimi (CPU) Komutları CPU komutları işlemciden işlemciye değişir. Motorola 68020 komutları İntel 80486 dan farklı. Çok basit yapıdadır. İkili sayı biçiminde kodlanmış bir komut sözcüğü ile gerekli işlenenleri tanıtan birkaç adres ya da değerden oluşur. Örneğin Z X+4 işlemi LOAD X ADD 4 STORE Z gibi bir komut dizisiyle yapılır. 13 Bilgisayar Yazılımı: Problem Çözümünü Anlatma Yolları Bilgisayarın bir problemi çözmesi için Bizim problemin nasıl çözüleceğini bilmemiz, Bunu da bilgisayarın anlayacağı komutlar ile ifade etmemiz gerekir. Çözüm yolunu bulmak sistem analizle yapılır. Çözüm yolunu bilgisayar komutlarına dönüştürmeye ise programlama, ya da kodlama denir. 14 7

Algoritma Algoritma bir işin gerçekleştirilmesi için yapılacakları adımlar halinde sırasıyla ve eksiksiz tanımlayan metindir. Algoritma, bir uygulayıcıya yöneliktir, Uygulayıcının yürüteceği komutlar kullanılarak Uygulayıcının anlayacağı biçimde yazılır. Örneğin sayıların ortalamasını bulma algoritması. Başla, Ortalaması alınacak sayıların sayısını n ye oku T değişkenine sıfır koy, iye nyi koy. i=0 oluncaya kadar Sayıyı sdeğişkenine oku syi T ye topla iden bir çıkar Tekrarla T sayısını nye böl, sonucu T de sakla T yi ortalama olarak bastır. İşi sonlandır 15 Sözde kodlama Algoritmanın uygulayıcıya yöneliktir dedik. Bilgisayarda genel amaçlı programlama dillerinde kodlama yapmak için algoritmada belli yapıların dışına çıkmamak gerekir. Sözde kodlama Algoritmanın belli standart ve sınırlı yapılarla genel amaçlı program kodlamaya yönelik yazılmasıdır. 16 8

Algoritma ve Sözde kod Sayıların ortalaması algoritması. Başla, Ortalaması alınacak sayıların sayısını n ye oku T değişkenine sıfır koy, i ye nyi koy. i=0 oluncaya kadar Sayıyı sdeğişkenine oku syi T ye topla idan bir çıkar Tekrarla T sayısını nye böl, sonucu T de sakla T yi ortalama olarak bastır. İşi sonlandır Sayıların Ortalaması Sözde kodu Start Read n T=0; i=n; While n>0 Read s T=T+s i=i 1; End while T=T/n Prınt T End 17 Algoritma ve Akış Şeması Sayıların ortalaması algoritması. Başla, Ortalaması alınacak sayıların sayısını n ye oku T değişkenine sıfır koy, i ye n yi koy. i =0 oluncaya kadar Sayıyı s değişkenine oku s yi T ye topla i den bir çıkar Tekrarla T sayısını n ye böl, sonucu T de sakla T yi ortalama olarak bastır. İşi sonlandır Sayıların Ortalaması Akış Şeması 1. Start 2. Read n 3. T=0; 4. i=n; 5. While n>0 1. Read s 2. T=T+s 3. i=i 1; 4. End while 6. T=T/n 7. Print T 8. End 18 9

Akış Şeması, Işlem ve Komut kutusu işlem (process): Yaptırılmak istenen işlemleri gösterir. kutunun içine işlemleri anlatan komutlar yazılır. Karar (decision): bir koşula bağlı olarak farklı işlemler yapılacaksa kullanılır. Bir girişi Doğru ve Yanlış için iki çıkışı vardır. 19 Akış Şeması, Veri ve Döküman kutusu Veri (Data) Tanımlanan işlemlerin kullanacağı verileri bulunduğu ortamdan okumak üzere kullanılır Döküman: Program sırasında çıktı olarak gosterilmek istenen veriler ve işlemler bu şekil ile tamamlanır. Bir girişi Doğru ve Yanlış için iki çıkışı vardır. 20 10

Akış Şeması, Bağlantı ve Başla/Bitir Bağlantı (Continuation) Bir sayfaya sığmayan ya da sayfa içinde uzağa atlayan okların bağlantısını kolayca göstermeye yarar. Başla/Bitir Akış şeması yapılarının başlangıç ve bitiş noktasını gösterir. 21 Algoritma ve Akış Şeması Sayıların ortalaması algoritması. Başla, Ortalaması alınacak sayıların sayısını n ye oku T değişkenine sıfır koy, i ye nyi koy. i =0 oluncaya kadar Sayıyı sdeğişkenine oku syi T ye topla i den bir çıkar Tekrarla T sayısını nye böl, sonucu T de sakla T yi ortalama olarak bastır. İşi sonlandır Sayıların Ortalaması Akış Şeması BAŞLA OKU n T=0 i=n i>0? OKU s T=T+s i=i-1 T=T/n YAZDIR T BİTİR 22 11

C nin gelişimi 1970 lerde Ken Thompsonun (ABD) Unix sistem dili için yazdığı B dili yetersiz kaldı. 1972 de Dennis M. Ritchie, C yi oluşturdu. 1978 de Dennis M. Ritchie ve Brian W. Kernighan ilk Ckitabını yazdı, C tanıtıldı. 1982 de ANSI C standardı oluşturuldu. Biz ANSI C kullanacağız. 1999 da C 99 standardına yükseltildi. 23 C Ön işlemcisi ve Derleyicisi C dili program bir dosyaya ANSI karakter kümesiyle yazılır. Bu amaçla herhangi bir Metin Düzenleyici (Text Editör) kullanılır. Yazılan bu metine kaynak kod denir. Kaynak kod C gramer hatalarından arındırılır. Kaynak kod C derleyicisine yollanır. Ön işlemci makroları ve eklenti dosyaları kaynak koda ekler. Derleyici kaynak koda karşılık gelen makine kodlarını OBJ (nesne) dosyasına yerleştirir. Bağlayıcı (Linker) OBJ kod içindeki kitaplık etiketlerine bakarak gereken kitaplık fonksiyonlarını makine koduna ekler. Oluşan yürütülebilir EXE kodu CPU tarafından çalıştırıldığında kaynak kodda anlatılan işleri yapar. 24 12

C hata ayıklama işlemi Programın derlenirken C kaynak kodundaki gramer ve yapı hataları ortaya çıkar Derleyicinin bulduğu ilk hatadan başlayarak hatalar birer birer düzeltilir. Bu evreye yazım hatası ayıklama evresi denir. Program işler duruma geldiğinde bir dizi deneme verisi ile sınanır. Mantıksal hatalar nedeniyle doğru sonuç çıkmazsa program elle izlenerek hata ayıklanır. Test verisiyle bulunan hatalar düzelince program kullanıma hazırdır. Ancak, test verilerinin bulamadığı hatalar kalmış olabilir. Kullanıcıya aktarılan program zaman zaman hatalı sonuç çıkarırsa hata izole edilir (hata veren en kısa test verisi oluşturulur) ve hataya sebep olan nedenler bulunarak düzeltilir. 25 C Derleyicisi Bu derste Dev C derleyicisi kullanacağız. Hafif (bellekte az yer kaplar) Hızlı (derlenen EXE hızlı çalışır) Kullanımı kolay (Tümleşik Geliştirme Ortamı var). UNIX, Linux, Windows gibi çoğu işletim sisteminde parasız (GNU ShareWare) olarak kullanılabilir. Diğer derleyiciler arasında Turbo C (Borland), Mikrosoft C, Mikrosoft Visual C derleyicilerini sayabiliriz. ANSI C standardına uyan bütün derleyiciler yazacağımız C kodlarını sorunsuz derleyebilir. 26 13