C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Benzer belgeler
C++ Dersi: Nesne Tabanlı Programlama

BİLGİSAYAR ORGANİZASYONU

Bölüm 1. Bilgisayarlar ve C++ Programlama. Doç.Dr. Yıldıray Yalman. Kaynak: Problem Solving with C++, Walter Savitch Slide 1

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Bilgisayarların Gelişimi

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

Yazılım Mühendisliğine Giriş 2018 GÜZ

BM-311 Bilgisayar Mimarisi

Yrd. Doç. Dr. İlhan AYDIN Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Bilgisayar Programlama Dilleri

5. PROGRAMLA DİLLERİ. 5.1 Giriş

PROGRAMLAMA TEMELLERİ

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

İşletim Sistemlerine Giriş

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

4. Bölüm Programlamaya Giriş

Yordamsal Tabanlı Programlama

Bilgisayar Programlama. 1.Hafta

Bilişim Teknolojileri

Bilgi Çağının Güçlü Araçları: Bilgisayarlar

Ana Bellek (RAM) İşlemci (CPU) Depolama

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

Object-Oriented Oriented Design (OOD) Procedure Based Programlama. OOD Ana Ozellikleri

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Windows Programlama Güz Dönemi

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

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

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BM-311 Bilgisayar Mimarisi

1 PROGRAMLAMAYA GİRİŞ

Bilişim Teknolojilerine Giriş

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

MİKROİŞLEMCİLER 1 Ders 1

Donanımlar Hafta 1 Donanım

Program Nedir?(1) Programlamaya Giriş

Genel Programlama I

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

BLM1011 Bilgisayar Bilimlerine Giriş I

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

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

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Lecture 7. Assembler language nedir? Language in 3 seviyesi. Language 3 seviyesi. Nicin onu ogreniriz?

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Ünite-3 Bilgisayar Yazılımı.

PROGRAMLAMAYA GİRİŞ DERS 2

Bölüm 1 Bilgisayar ve C Programlamaya Giriş

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

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

BİLGİSAYAR PROGRAMLAMA I (Java)

Bilgisayar Donanımı. Temel Birimler ve Çevre Birimler. Öğr.Gör.Günay TEMÜR / KAYNAŞLI MESLEK YÜKSEOKULU

Mikrobilgisayar Sistemleri ve Assembler

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

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

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

Bilgisayar Mimarisi Nedir?

BİLGİSAYAR KULLANMA KURSU

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Bilgisayara Giriş. Bilgisayarlar ilk geliştirilmeye başlandıklarından bugüne kadar geçen süre içerisinde oldukça değişmişlerdir.

DONANIM Bahar Dönemi TEMEL BİLİŞİM TEKNOLOJİLERİ

BİLGİSAYAR MİMARİSİ. İkili Kodlama ve Mantık Devreleri. Özer Çelik Matematik-Bilgisayar Bölümü

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

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

Bilgisayar Sistemlerine Genel Bakış

Temel bilgisayar ve Java bilgileri

Bahar. BM 211 Programlama Dilleri 3 1

Temel Bilgi Teknolojileri -1

Hafta 1 Programlamaya Giriş

MAT 233 B ILG ISAYAR PROGRAMLAMA I

1. PROGRAMLAMAYA GİRİŞ

Ünite-2 Bilgisayar Organizasyonu.

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Bilgisayar Mimarisi ve Organizasyonu Giriş

GÖRSEL PROGRAMLAMA - I

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

Bölüm 4. Sistem Bileşenleri. Bilgisayarı. Discovering. Keşfediyorum Computers Living in a Digital World Dijital Dünyada Yaşamak

Bilgisayar Mühendisliğine Giriş

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

1. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yazılım Mühendisliğine Giriş 2018 GÜZ

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.

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ı

BLM1011 Bilgisayar Bilimlerine Giriş I

İşletim Sistemleri (Operating Systems)

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

THE ORIGINS INTRODUCTION TO COMPUTER SCIENCES BY Z. CIHAN TAYSI

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

Hafta 1 Programlamaya Giriş

Java Temel Özellikleri

BİL1001 Bilgisayar Bilimlerine Giriş 1

Assembly Language Programming

Transkript:

C++ Programming: Program Design Including Data Structures, Third Edition Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Bölüm 1 : Amaçlar Farklı tipteki bilgisayarların öğrenilmesi Bir bilgisayar sisteminin yazılım ve donanım bileşenleri hakkında bilgi edinme Bir bilgisayar dilini öğrenme Programlama dillerinin gelişiminin öğrenilmesi Yüksek düzeyli ( high-level) programlama dillerini hatırlamak C++ Programming: From Problem Analysis to Program Design, Third Edition 2

Bölüm 1: Amaçlar (devam) Derleyici nedir? Ne iş yapar? C++ Programı ile uygulama geliştirmek ve nasıl çalıştığını araştırmak Algoritma nedir? Ve problem çözme teknikleri nelerdir? Yapısal tasarım ve nesneye yönelik tasarım metodolojileri hakkında bilgi sahibi olmak Standard C++ ve ANSI/ISO Standard C++ hakkında bilgi sahibi olmak C++ Programming: From Problem Analysis to Program Design, Third Edition 3

Bilgisayarların Sınıflandırmaları Mainframe bilgisayarlar Çok fazla sayıda insanın aynı anda işlem yapabildiği çok büyük kapasiteye sahip bilgisayarlar; pahalıdır. Bankalar, uluslararası marketler, sigorta şirketleri gibi aynı anda pek çok kişinin aynı datayı kullandığı sistemlerdir Orta büyüklükte bilgisayarlar (Midsize computers) Mikro bilgisayarlar (kişisel bilgisayarlar ) C++ Programming: From Problem Analysis to Program Design, Third Edition 4

CPU (Central Processing Unit) Merkezi İşleme Birimi CU (Control Unit- Kontrol Birimi ): Komutları getirir ve çözer Ana belleğin (main memery) içindeki ve dışındaki bilgi (information flow) akışını kontrol eder. CPU bileşenlerinin içinde gerçekleşen işlemleri kontrol eder PC (Program counter-program Sayacı ): Çalıştırılacak olan sonraki komutu işaret eder. C++ Programming: From Problem Analysis to Program Design, Third Edition 5

CPU (Central Processing Unit) (merkezi İşleme Birimi ) IR (instruction register-komut yazmacı) register: verilerin saklandığı bellek: anlık olarak çalıştırılmış olan komutu tutar ALU (arithmetic logic unit- aritmetik lojik birimi ): aritmetik ve mantıksal işlemleri gerçekleştirir. C++ Programming: From Problem Analysis to Program Design, Third Edition 6

Main Memory- Ana Bellek RAM (Random Access Memory) Doğrudan CPU ya bağlıdır. Tüm programlar çalıştırılmadan önce mutlaka ana belleğe yüklenmelidir (load) Tüm veriler (data) işlenmeden önce (manipulated) ana belleğe getirilmelidir. Bilgisayar kapatıldığında ana bellekteki her şey kaybolur. C++ Programming: From Problem Analysis to Program Design, Third Edition 8

İkinci Bellek -Secondary Storage İkinci Bellek : Bilgiyi sürekli olarak (permanently) depolayan aygıttır (device) İkinci bellek örnekleri: Hard disks Floppy disks Zip disks CD-ROMs Tapes Flash drives C++ Programming: From Problem Analysis to Program Design, Third Edition 10

Giriş/Çıkış Aygıtları (Input/Output Devices) Giriş aygıtları bilgisayarlara programları ve verileri beslerler ve Keyboard,Mouse,İkinci Bellek (Secondary storage) aygıtlarını içerirler. Çıktı aygıtları (Output devices) sonuçları görüntüler ve Monitor, Printer, İkinci Bellek (Secondary storage) aygıtlarını içerirler C++ Programming: From Problem Analysis to Program Design, Third Edition 11

Yazılım -Software Yazılım belli işleri gerçekleştiren programlardır. Sistem programları işletim sistemleri gibi bilgisayarın kontrolünü gerçekleştirir. Uygulama programları (Application programs) spesifik, belirlenmiş bir işi (specific task) gerçekleştirir Kelime işlemciler (Word processors), Çalışma tabloları (Spreadsheets), Oyunlar.. gibi C++ Programming: From Problem Analysis to Program Design, Third Edition 12

Bir Bilgisayarın Dili Dijital sinyaller 0 ve 1 lerin bir dizilişidir. Makine Dili (Machine language): Bilgisayarın dilidir. İkili dijit -Binary digit (bit): Dijit 0 veya 1 İkili Kod -Binary code: 0 ve 1 lerin bir dizilişidir (A sequence of 0s and 1s) Bayt- Byte: 8 bitin bir dizilişidir ( A sequence of eight bits) C++ Programming: From Problem Analysis to Program Design, Third Edition 13

15

Kodlama Şemaları ASCII (American Standard Code for Information Interchange) ASCI data seti 128 karakterden oluşmaktadır. A harfi 1000001 şeklinde kodlanır (66th character) 3 rakamı 0110011 şeklinde kodlanır Bilgisayarlar genellikle yedi-bit ASCII kodlama yaparlar. C++ Programming: From Problem Analysis to Program Design, Third Edition 16

17

Kodlama Şemaları EBCDIC IBM tarafından kullanılmaktadır 256 karakterlidir characters Unicode 65536 karakterlidir Bir karakterin depolanması için iki bayt gereklidir. C++ Programming: From Problem Analysis to Program Design, Third Edition 18

19

20

Unicode Tables 21

Unicode Tables 22

Programlama Dili Örneği İlk bilgisayarlar makine dilinde kodlandı wages = rates * hours işleminin makine dilindeki karşılığı 100100 010001 //Load 100110 010010 //Multiply 100010 010011 //Store C++ Programming: From Problem Analysis to Program Design, Third Edition 23

Assembly Dili Assembly dili komutları bellek düzeyinde komutlardır. Assembler: Assembly dilinde yazılmış bir programı makine diline dönüştürür. C++ Programming: From Problem Analysis to Program Design, Third Edition 24

Assembly dilinin komutlarının kullanılması ile wages = rates hours eşitliği aşağıdaki gösterime dönüşür. LOAD rate MULT hour STOR wages

Yüksek düzeyli Diller (High-Level Languages) Basic, FORTRAN, COBOL, Pascal, C++, C, ve Java dilleri yüksek düzeyli dillerdir. Derleyici (Compiler): yüksek düzeyli bir dili makine diline dönüştürür wages = rate hours eşitliği C++ dilinde aşağıdaki şekilde yazılabilir: wages = rate * hours; C++ Programming: From Problem Analysis to Program Design, Third Edition 26

C++ Programı #include <iostream> using namespace std; int main() { cout << «İlk C++ programi." << endl; cout << "2 ve 3 sayilarinin toplami = " << 5 << endl; cout << "7 + 8 = " << 7 + 8 << endl; return 0; } Programın çalışması: İlk C++ programi. 2 ve 3 sayilarinin toplami= 5 7 + 8 = 15 C++ Programming: From Problem Analysis to Program Design, Third Edition 27

Bir C++ Programının Çalıştırılması C++ gibi yüksek düzeyde yazılmış bir programı çalıştırmak için C++ da kaynak programın oluşturulması gerekir. Bu, bir editör ile gerçekleşir. C++ programında deyimler # sembolü ile başlarsa, bunlar özişlemci direktifleri (preprocessor directives) olarak adlandırılır ve bu tür deyimler önişlemci (preprocessor) bir program tarafından işleme girerler. adı verilen Derleyici (compiler) programın kurallara uygunluğunu kontrol eder ve makine diline (object program) dönüştürür. C++ Programming: From Problem Analysis to Program Design, Third Edition 28

Bir C++ Programın Çalıştırılması Linker (Bağlayıcı) Nesne (object) programı diğer programlarla birleştirir; böylece çalıştırılabilir koda (executable code) dönüşüm sürecine hazırlanılmıştır. Loader (Yükleyici) Çalıştırılabilir kodu (executable code) ana belleğe (main memory) yükler. Son adım programın çalıştırılmasıdır. C++ Programming: From Problem Analysis to Program Design, Third Edition 29

Problem Çözümü Programlama bir problem çözme sürecidir. Problem çözme teknikleri: Problemin analiz edilmesi Problem gereksinimlerinin özetlenmesi Problemin çözümünün gerçekleştirilmesi için tasarım adımları (algoritma) Algoritma: Adım adım problem çözme sürecidir Çözüme sonlu bir zaman aralığında ulaşılır C++ Programming: From Problem Analysis to Program Design, Third Edition 31

Problem Çözme Süreci Adım 1 - Problemin analiz edilmesi Problemin ve gereksinimlerinin özetlenmesi Problemin çözümünde adım adım tasarım (algoritma) Adım 2 Algoritmanın implementasyonu - Algoritmanın kodlanması - Algoritmanın çalışmasının doğrulanması (verify) Adım 3 Sürerliliğin sağlanması (Maintenance) Problem alanı değiştiğinde programın da buna uygun değiştirilmesi C++ Programming: From Problem Analysis to Program Design, Third Edition 32

Yapısal Programlama (Structured Programming) Yapısal tasarım(structured design): Problemin daha küçük alt problemlere bölünmesidir. Yapısal Programlama (Structured programming) Yapısal tasarımın implementasyonudur Yapısal tasarım aşağıdaki şekillerde de adlandırılabilir: Yukarıdan aşağıya tasarım (Top-down design) Adım adım ilerleme (Stepwise refinement) Modüler programlama (Modular programming) C++ Programming: From Problem Analysis to Program Design, Third Edition 34

Nesneye Yönelik Programlama (Object-Oriented Programming) Bileşenleri nesneler olarak adlandırılır. Olası işlemler önceden belirlenmiş olan, probleme özel veriler (data) üzerinde gerçekleşir. Her nesne (object), veriler (data) ve bu verilerin işlendiği operasyonlardan oluşur. Herhangi bir nesne (object) data ve operasyonları tek bir birim içerisinde birleştirir. C++ Programming: From Problem Analysis to Program Design, Third Edition 35

Nesneye Yönelik Programlama (Object-Oriented Programming) OOD (Nesneye Yönelik Tasarım) gerçekleştiren herhangi bir programlama dili nesneye yönelik programlama dili (OOP) olarak adlandırılır. Verilerin bilgisayar belleğinde tutulması ve operasyonların (metotların) gerçekleştirilmesi yapısal programlama işleyişine göre farklıdır. C++ Programming: From Problem Analysis to Program Design, Third Edition 36

ANSI/ISO STANDARD C++ C++ dili C dilinden geliştirilmiştir C++ dili Bjarne Stroustrup tarafından 1980 li yılların başlarında Bell Laboratuvarlarında geliştirilmiştir İlk yıllarda C++ programlarının bir derleyiciden diğerine aktarılması her zaman mümkün değildi. 1998 yılının ortalarında, ANSI/ISO C++ dili standartı ile taşınabilirlik sağlandı C++ Programming: From Problem Analysis to Program Design, Third Edition 37