Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BM-103 Programlamaya Giriş Güz 2016 (9. Sunu)

Benzer bir sunumlar


... konulu sunumlar: "BM-103 Programlamaya Giriş Güz 2016 (9. Sunu)"— Sunum transkripti:

1 BM-103 Programlamaya Giriş Güz 2016 (9. Sunu)
(Yrd. Doç. Dr. Deniz Dal)

2 C’nin ve C++`ın Tarihçesi
C++ dili C dilinden o da BCPL ve B dilleri üzerinden gelişti. BCPL 1967 yılında Martin Richards tarafından işletim sistemi ve derleyici yazmak amacıyla geliştirildi. Ken Thompson Bell Laboratuvarlarında BCPL’den faydalanarak B dilini geliştirdi ve bu dili UNIX işletim sisteminin ilk versiyonlarını yazmak için kullandı. C dili B dili üzerinden gelişti ve Bell Laboratuvarlarında Dennis Ritchie tarafından 1972 yılında yazıldı. C dili ilk başlarda UNIX işletim sisteminin yazılım dili olarak geniş kabul gördü. C++ ise Bjarne Stroustrup tarafından, 1980`li yılların başında, Bell Laboratuvarlarında, C dilinin bir uzantısı olarak birçok ek özelliği bünyesinde barındıran bir programlama dili olarak geliştirildi. Bu özelliklerin en önemlisi ise bu dilin bir “object-oriented programming” yani “nesne tabanlı programlama” dili olmasından kaynaklanır.

3 C++ Standart Kütüphanesi (Standard Library)
Her bir C++ programı “sınıflar” (classes) ve “fonksiyonlar” (functions) denen kısımlardan oluşur. İhtiyacımız olan her programı sıfırdan kendimiz yazabileceğimiz gibi “C++ Standart Kütüphanesi” denen ve bünyesinde çok zengin bir sınıf ve fonksiyon kümesi barındıran kütüphaneyi de kullanabiliriz. (!Avoid reinventing the wheel. Reuse reuse reuse.!)

4 Bir C++ Programı Yazım Aşamaları
Tipik bir C++ programı bilgisayar tarafından çalıştırılabilmeden önce 6 aşamadan geçer: Yazma ve Düzeltme (Editing) Önişleme (Preprocessing) Derleme (Compiling) Birleştirme (Linking) Yükleme (Loading) Çalıştırma (Executing) Test Etme (Testing) Hata Ayıklama (Debugging) Microsoft Visual Studio 2015 programı bu 8 aşamanın tamamında bize yardımcı olacak araçlara sahiptir. (IDE: Integrated Development Environment) (Tümleşik/Bütünleşik/Entegre Geliştirme Ortamı) İki Açık Kaynak IDE: Eclipse ve Netbeans

5 Bir C++ Programı Yazım Aşamaları (devam)
Yazma ve Düzeltme (Editing): Programcı bir editör yardımı ile C++ programını yazar ve gerekli düzenlemeleri yapar. Bir C++ programı “.cpp” uzantılıdır. Önişleme ve Derleme (Preprocessing and Compilation): Compiler ya da derleyici bir C++ programını makine dilini çevirir. (machine language code - object code) Preprocessor (önişlemci) derleyiciden önce çağrılır ve bazı manipulasyonlar gercekleştirir. (Açıklayıcı bilgileri (comments) programdan çıkarır, bazı dosyaları mevcut programa iliştirir.) Birleştirme (Linking): Bir C++ programı tipik olarak başka yerlerde tanımlı fonksiyonlara referanslar içerir. (Mesela standart kütüphanedeki fonksiyonlar) Derleyicinin oluşturduğu “makine kodu” bu olmayan fonksiyonların yerini sonradan tamamlanmak üzere boş bırakır. “Linker” dediğimiz birleştirici ana makine kodu ile fonksiyonlara ait makine kodlarını birleştirir ve bilgisayar tarafından çalıştırılabilecek “executable image” denen programı oluşturur. Yükleme (Loading): !!!BİR BİLGİSAYAR PROGRAMI ÇALIŞTIRILMADAN ÖNCE, MUHAKKAK BELLEĞE YERLEŞTİRİLMELİDİR.!!! İşletim sisteminin “Loader” (yükleyici) adlı bileşeni “executable image” halindeki programı sabit diskten alarak belleğe transfer eder ve programın başlangıç adresini CPU’ya bildirir. Çalıştırma (Executing): Son olarak, bilgisayar CPU`nun kontrolu altında bellekteki programı birerli komutlar halinde peşpeşe çalıştırır.

6 Bir C++ Programı Yazım Aşamaları (devam)
Genellikle programlar ilk deneme esnasında çalışmazlar. Az önce açıklanan 6 aşamanın herhangi birinden kaynaklanan bir sorun buna sebep olmuş olabilir. Sebep araştırılır, belki yeniden başa dönülür ve her işlem yeniden tekrarlanır. Programlar genellikle kullanıcıdan giriş isterler ve çalıştırma sona erdiğinde bir çıkış verirler. C++ programlama dilinde girişler genellikle “cin - see in - siin” (standard input stream) sayesinde klavyeden alınırlar. Bilgi ise genellikle “cout - see out – siaut” (standard output stream) sayesinde bilgisayar ekranına yönlendirilir.

7 C++ ile Programlamaya Giriş (Basit Bir Program – Ekrana Tek Satır Yazı Yazdırma)
Herhangi bir bilgisayar programlama dilini öğrenmeye genel olarak ekrana “Hello World” (Merhaba Dünya) yazdırılarak başlanır. //IlkOrnek.cpp //C++ ile Yazdığımız İlk Program #include <iostream>//cout Kullanımı İçin Gerekli using namespace std;//Standart Kütüphane int main() { cout<<"Hello World\n"; return 0;//Programı Sonlandır }

8 Örnek Programa Ait Açıklamalar
1 ve 2 nolu satırda yazdıklarımızın programın işleyişine hiçbir katkısı yoktur. Bunlar “comment” adını verdiğimiz ve programın anlaşılmasına yardımcı olabileceğini düşündüğümüz açıklamalardır. “//” karakteri “bir satırlık açıklama” olarak adlandırılır, çünkü açıklama o satır sona erdiğinde biter. Eğer birden fazla satıra comment yazmak istersek, yazacaklarımızı “/*” ve “*/” karakterleri arasına koyarız.

9 Örnek Programa Ait Açıklamalar (Devam)
3 nolu satır “preprocessor directive” yani “önişleme talimatı” dır. “#” karakteri ile başlayan her satır program derlenmeye başlanmadan önce “C++ önişleyicisi” tarafından işlenir. Bizim örneğimizde bu satır önişlemciye standart kütüphaneden “iostream” adlı başlık (header) dosyasını eklemesini söyler. Bu dosya “C++ Standart Kütüphanesinden” bizim için giriş/çıkış işlemlerini kolaylaştıracak fonksiyonları içerir. (cout ve cin kullanılabilir artık) 4 nolu satır muhakkak eklenmelidir ve amacı detaylı olarak daha sonraki derslerde işlenecektir.

10 Örnek Programa Ait Açıklamalar (Devam)
6 nolu satır her C++ programında olması MUHAKKAK bir satırdır. “main” kelimesinden sonraki parantezler bu bloğun bir fonksiyon olduğunu söyler bize. Bir C++ programı bir ya da daha fazla fonksiyondan oluşur ama MUHAKKAK bir “main” fonksiyonu olmalıdır. Program çalışmaya “main” fonksiyonundaki ilk satırı işleterek başlar. “main” kelimesinin solundaki “int” bize bu fonksiyonun bir integer rakam geri döndürdüğünü söyler. “{“ sol köşeli parantezi ve ona karşı gelen “}” sağ köşeli parantezi bir fonksiyonun gövdesini tanımlar. (7 ve 10 nolu satırlar) 8 nolu satır ekrana, “string” adını verdiğimiz tırnak işaretleri içindeki karakter dizisini yazdırır. Bu satırın tamamı (en sondaki noktalı virgül “;” işareti de dahil) deyim (statement) olarak adlandırılır. “<<“ karakteri “araya akış sokma operatörü” olarak tanımlanır. Bu operatörün sağındaki bilgi solundaki “cout” a (ki genelde ekranı temsil eder) atanır. Tırnak işaretleri içinde kullanılan “\” (backslash) karakteri “kaçış karakteri” olarak adlandırılır ve bu özel bir karakterin ekrana yazdırılmak üzere olduğuna işaret eder. Bir karakter dizisi içinde “\” a rastlanıldığında, bir sonraki karakter backslash ile birleştirilir ve bu “kaçış sırası” olur. Bizim örneğimizde “\n” yeni bir satıra git anlamı taşır. 9 nolu satır her “main” fonksiyonunun sonuna MUHAKKAK eklenmelidir ve herşey yolunda gitti ise programın sona ermesine sebep olur.

11 Yaygın “Kaçış Sıraları”
\n : Newline (İmleci yeni bir satırın en başına götürür.) \t : Yatay tab (İmleci bir sonraki tab durağına götürür.) \r : Carriage return (İmleci mevcut satırın başına götürür.) \\ : Backslash (Ters Bölü) karakterini ekrana yazar. \" : Çift tırnak işaretini ekrana yazar.

12 Ekrana Birden Fazla Satır Yazı Yazdırma (“Kaçış Sırası” Kullanarak)
//IkinciOrnek.cpp //Tek Bir Deyimle Ekrana Birkaç Satır Yazı Yazdırma #include <iostream>//cout Kullanımı İçin Gerekli using namespace std;//Standart Kütüphane int main() { cout<<"Welcome\nto\n\nC++\n"; return 0;//Programı Sonlandır }

13 Klavyeden Girilen İki Sayıyı Toplayan Program
//UcuncuOrnek.cpp //Kullanıcıdan Aldığı 2 Tamsayıyı Toplayan Program #include <iostream>//cout ve cin Kullanımları İçin Gerekli using namespace std;//Standart Kütüphane int main() { //Değişken Deklarasyonu int sayi1,//Birinci Sayı sayi2,//İkinci Sayı toplam;//Girilen 2 Sayının Toplamını Saklayan Değişken cout<<"Birinci Sayiyi Giriniz:";//Ekrana Mesaj Yaz cin>>sayi1;//Girilen Sayıyı sayi1 e Ata cout<<"Ikinci Sayiyi Giriniz:";//Ekrana Mesaj Yaz cin>>sayi2;//Girilen Sayıyı sayi2 ye Ata toplam=sayi1+sayi2;//Girilen 2 Sayıyı Topla cout<<"Girilen 2 Sayinin Toplami:"<<toplam<<endl;//Ekrana Toplamı Yazdır return 0;//Programı Sonlandır }

14 Örnek Kodun Açıklaması
8 nolu satır ile integer veri tipinde 3 adet değişken (sayi1, sayi2, toplam) tanımlanır. (Değişken deklarasyonu) Bir değişken bilgisayarın belleğinde bulunur ve program tarafından depolama amaçlı kullanılır. Deklarasyonun başındaki “int” anahtar kelimesi tanımlanan değişkenin tipinin integer olduğunu gösterir. 12 ve 14 nolu satırlardaki “cin” operatörü klavyeden bilgi girişi için kullanılır. cin operatörü klavyeden whitespace, newline (ENTER) ya da tab karakterini görünce okumayı sonlandırır. 16 nolu satırdaki “endl” manipülatör olarak adlandırılır ve yeni bir satırın başına gitmek için kullanılır.

15 Değişkenler (Variables)
Her bir C++ değişkeni içerisinde saklayacağı bilginin tipini belirleyen bir VERİ TİPİNE ve bir İSME sahiptir. Değişkenlere MUHAKKAK kullanım maksatlarına uygun bir isim verilmelidir. Bütün değişken isimleri bir harfle başlar ve devamında başka harfler, rakamlar ve alt çizgiler içerebilir. Değişkenler adlandırılırken noktalama işaretleri ve boşluk kullanılmaz. Değişkenler isimlendirilirken en fazla kullanılan notasyonlardan birisi deve notasyonudur (camel notation). Bu notasyon, değişken ismi birden fazla kelime içeriyorsa ilk kelime hariç sonraki kelimelerin ilk karakterlerinin büyük harfle yazıldığı bir notasyondur. enKucukSayi, bankaHesapNo gibi. C++’da değişkenler kullanılmadan önce muhakkak tanımlanmalıdırlar yani deklare edilmelidirler. Değişkenlere değer atanması deklarasyon anında da yapılabilir daha sonra da.

16 C++’ ta Tanımlı Temel Veri Tipleri (SAKLAMA KAPLARINI DÜŞÜNÜN)
Veri Tipi Açıklama Boyut Aralık bool true ya da false bilgisi saklamak için 1 byte true veya false char Yalnız bir karakter saklamak için karakter short int Kısa tamsayı saklamak için 2 byte signed: to unsigned: 0 to 65535 int Tamsayı saklamak için 4 byte signed: to unsigned: 0 to float Ondalıklı sayı saklamak için ~7 digits double Çift hassasiyetli ondalıklı sayı saklamak için 8 byte ~15 digits

17 Değişken Deklarasyonu ve Değer Atama Örnekleri
bool buyukMu; //Deklarasyon bool test=false; //Deklarasyon ve İlk Değer Atama char kullaniciGirisi='y'; unsigned short int kardesSayisi; signed int sicaklik; int sicaklik; float ortalama=2.345; double piSayisi=3.1418; double hesapBakiyesi= ;

18 Aritmetik Operatörler
Toplama Operatörü; ; örneğin a+3 Çıkarma Operatörü; ; örneğin a-3 Çarpma Operatörü; * ; örneğin a*3 Bölme Operatörü; / ; örneğin a/3 Mod Alma Operatörü; % ; örneğin a%3 Tamsayı Bölme: 7/4= /5=3 Modülüs: 7%4= %5=2

19 UYGULAMA Kullanıcıdan klavye yoluyla alacağı 3 tam sayının aritmetik ortalamasını bularak ekrana yansıtacak bir C++ konsol uygulaması yazınız.


"BM-103 Programlamaya Giriş Güz 2016 (9. Sunu)" indir ppt

Benzer bir sunumlar


Google Reklamları