Bölüm 2
C++ Temelleri
Doç.Dr. Yıldıray Yalman
Copyright © 2003 Pearson Education, Inc.
Slide 1
Sunu Bölümleri

Değişkenler ve Atamalar (2.1)

Giriş ve Çıkış (2.2)

Veri Tipleri ve Deyimler/İfadeler (2.3)

Temel Akış Kontrolü (2.4)

Programlama Tarzı (2.5)
Slide 2
2.1
Değişkenler ve Atamalar


Değişkenleri yazı tahtasına benzetebiliriz,

Sayı yazılabilir,

Yazılan sayı değiştirilebilir,

Silinebilir.
C++ değişkenleri hafızada ayrılan yerlere verilen ismi
ifade eder.

Bir “değeri” ilgili değişkene yazabiliriz,

İlgili değişkenin depoladığı bu değeri değiştirebiliriz,

İlgili değişkenin hafızada bulunduğu yeri
değiştiremeyiz!
Şekil 2.1

Sürekli hafızada aynı yerde dururlar.
Slide 3
Tanımlayıcılar (Identifiers)


Değişkenlerin isimleri, tanımlayıcı olarak
adlandırılır
Değişken isimleri seçilirken


Hafıza tutulmak istenen veri ile ilişkili isimler
seçmekte fayda vardır
Bir değişkenin ilk karakteri:



Bir harf ya da
Alt tire (_) olmak zorundadır.
Diğer karakterler ise



harfler
sayılar
_ olabilir.
Slide 4
Anahtar Kelimeler


Rezerve edilen kelimeler olarak ta ifade
edilebilir.
C++ dili tarafından kullanılan kimi anahtar
kelimeler değişken tanımlayıcısı olarak
kullanılamaz.




int,
main,
long,
for, vb…
Slide 5
Değişken tanımlama (Part 1)

Kullanılmadan önce, değişkenler tanımlanmalıdır.

Tanımlanan değişkenin tipi mutlaka ifade edilmelidir.
Örnek:

int sayi;
double pi_sayisi, agirlik;
int, integer (tamsayı) kelimesinin kısaltılmış halidir.



3, 102, 3211, -456, gibi tamsayıları hafızada tutabilir.
sayi değişkeni tamsayı tipindedir.
double, reel sayıların hafızada tutulabilmesini sağlar.


1.34, 4.0, -345.6, 3.14 gibi sayıları hafızada tutabilir.
pi_sayisi, agirlik değişkenleri double tipindedir.
Slide 6
Değişken Tanımlama (Part 2)

Bir programda değişken tanımlamak için 2 lokasyon
söz konusudur
Değişkenin kullanımından hemen önce  Programın başında
int main()
{
…
int toplam;
toplam = 5 + 7;
…
return 0;
}
int main()
{
int toplam;
…
toplam = 5 + 7;
…
return 0;
}
Slide 7
Değişken Tanımlama (Part 3)

Değişken Tanımlamada söz dizimi (syntax):


Tip_adı Değişken_1 , Değişken_2, . . . ;
Örnekler:




double ortalama, agirlik, toplam_skor;
double gunes_uzaklik;
int yas, ogr_sayisi;
int final_notu;
Slide 8
Değişkenlere Değer Atama

Değer atama işlemi değişkenin değerini değiştirir

toplam_agirlik = kamyon + yuk;




Kamyon ve yuk degiskenlerinde bulunan sayıların toplamı
toplam_agirlik değişkenin bulunduğu belleğe yazılır.
Bu tip atamaların/işlemlerin yapılmasının ardından denklem
mutlaka ; ile bitirilmelidir.
Bir değişkenin değerinin değiştirilmesi sadece =
operatörünün kullanımı ile gerçekleştirilebilir.
= operatörünün sağında



Sabitler
 yas=21;
Değişkenler  sonuc = sayi;
Mat. İşlemler  alan = pi * r * r;
olabilir.
Slide 9
Değer Atama

C++ dilinde = operatorünün kullanımına dikkat!!!

Aşağıdaki ifade klasik cebir işlemleri açısından doğru
olamaz…
sayi = sayi + 3;

C++ dilinde ise, yukarıdaki ifade yeni sayi değişkeni,
eski sayi değişkenin 3 fazlasıdır anlamına gelmektedir.
Slide 10
Değişkenlere İlk Değer Atama

Bir değişkenin tanımlanmış olması, ona bir değerin
atandığı anlamına gelmez.



Tanımlanan bir değişkene değer atanması işlemine ilk değer
atama (initializing) denir.
Değişkenlere ilk değer = (assignment) operatörü ile
atanır.
double pi;
// değişkeni tanımlama
pi= 3.14;
// değişkene ilk değer atama
Tanımlama ve ilk değer atama birlikte yapılabilir:


Yöntem 1
double pi = 3.14, alan = 0.0 , yaricap;
Yöntem 2
double pi(3.14), alan(0.0), yaricap;
Slide 11
Bölüm 2.1 den akılda kalanlar

Aşağıdakileri yapabilir misiniz?



Değerleri 0 olan iki tamsayı tanımlayınız (metre ve
santimetre isminde).
Biri tamsayı diğeri reel sayı barındıracak iki değişken
tanımlayınız.
Aşağıdaki durumlarda en uygun değişken ismi sizce ne
olurdu?



Otomobil hızını kullanacağınız değişken?
Evin kirası?
Sınavda alınan en yüksek not?
Slide 12
Giriş ve Çıkış

Bir veri akışı (data stream) veri dizisini ifade eder ve



2.2
Tipik olarak sayı veya karakterlerin bir formudur
Girdi akışı programda kullanılmak üzere klavye ya da bir
dosyadan alınan verileri ifade eder.
Çıktı akışı programın ürettiği sonuçları monitör ya da bir
dosyada sunmayı ifade eder.
Slide 13
cout ile çıkış



cout bir çıktı akışı olup kendisine gelen veriyi
monitöre yansıtır
<< ise sağında yazılan veriyi cout komutuna iletir.
Örnek:
cout << “Macta atilan gol sayisi=“ << gol ;

Bu komut monitöre iki bilgiyi gönderir.

Macta atilan gol sayisi=
gol değişkeninde bulunan sayi.

Arada kullanılan << (insertion) operatörüne dikkat!!

Slide 14
Cout kullanım örnekleri

Aşağıdaki komutların sonucu sizce nasıl olur?
cout << “Macta atilan gol sayisi=“ ;
cout << gol ;

Aritmetik işlemleri de yapabilirsiniz:
cout << “Cevre =” << 2*(a+b);


Lütfen Çift Tırnak kullanınız  “ornek”
 İki tane tek tırnak yanyana yazılınca çift tırnak olmaz  '‘
Cout ve << arasında boşluk olması önemli değildir.
Slide 15
Include

Include ifadesi programınızda kullanacağınız
kütüphaneleri kullanabilme imkanı sağlar.

cin ve cout komutlarını kullanabilmek için iostream
kütüphanesinin programa dahil edilmesi gerekir.:
#include <iostream>

Standart isim uzayını rahat şekilde kullanabilmek için
using namespace std;
ifadesinin programda yazılması gerekir.
Slide 16
Kaçış Sekansları


Özel bir takım işlemlerin yapılabilmesini sağlayan
anahtar ifadelerdir.
kaçış karakteri: \


Yeni bir satır için
\n  cout << "\n";
ya da
cout << endl;
Diğerleri:
\t
\\
\"
-- Bir tab boşluk bırakır
-- ekrana \ ifadesini yazar
-- çift tırnak yazılmasını sağlar
Slide 17
Reel Sayılarda Formatlı Çıkış

Reel sayılar (double) farklı şekillerde ifade edilebilir
double fiyat = 78.5;
cout << “Fiyat = " << fiyat << endl;

Ekran görünümü aşağıdakilerden biri olabilir:
Fiyat = 78.5
Fiyat = 78.500000
Fiyat = 7.850000e01
Slide 18
Virgül Sonrasının Organizasyonu

cout çıkışların organize edilmesine müsaade eden bazı
parametrelere sahiptir.

Örnek:
cout.setf(ios::fixed); // virgülden sonra 6 hane
cout.setf(ios::showpoint); // sıfırların görünmesini sağlar
cout.precision(2); // virgülden sonra 2 hane
cout << “Fiyat = "
<< fiyat << endl;
Slide 19
cin kullanımı




cin klavyeden veri alınmasını sağlayan bir komuttur.
Girilen bilgini değişkene aktarılması >> sayesinde
gerçekleşir.
Örnek:
cout << “Kutuda bulunan kitap sayisi: \n";
cout << " ve birim fiyati giriniz: ";
cin >> kitap;
cin >> fiyat;
Bu program nasıl çalışır?
Slide 20
cin ile veri alma


Birden fazla değişkene aralarda boşluk bırakarak
veriler alınabilir.
Enter tuşu basılana kadar bekler


Düzeltme yapmanıza imkan tanır.
Örnek:
cin >> v1 >> v2 >> v3;

Şu şekilde verilerin girişi yapılabilir:
34 45 12 <enter>
Slide 21
Giriş ve Çıkışın Dizayn Edilmesi

Kullanıcıya yapması gerekenler mutlaka belirtin

cout size bu konuda yardımcı olacaktır.
cout << “Kac yasindasiniz?: ";
cin >> yas;

Elde edilen sonuçlar formatlı şekilde kullanıcıya
sunulabilir.
cout << yas
<< " yasinda oldugunuzu belirttiniz."
<< endl;
Slide 22
Bölüm 2.2’den akılda kalanlar

Aşağıdakiler yapabilir misiniz?




Sayi değişkenine kullanıcıdan değer alınmasını
sağlayan kodu yazınız.
Sayi değişkeninin ekrana yazılmasını sağlayınız.
Yeni bir satırda başlayacak şekilde aynı program
içerisinde Sayi değişkenini tekrar yazdırabilir
misiniz?
Virgülden sonra 4 hane olacak şekilde bir reel sayı
değişkenini ekrana yazdırabilir misiniz?
Slide 23
2.3
Veri Tipleri

Değişken tanımlama teknikleri açısından 2 ve 2.0
sayıları aynı sayılar değildir!!!




2 int tipinde bir tamsayı iken
2.0 double tipinde bir reel sayıdır.
int tipindeki değişkenler tam sayıları bünyesinde
tutabilir.
double tipindeki değişkenler ise tamsayılar ile birlikte
virgülden sonraki hassasiyet sınırına bağlı olarak
ondalık sayıları da bünyesinde barındırabilir.
Slide 24
Integer Sabitler


int denildiğinde sadece tamsayılar aklınıza gelmeli
Örneğin:
34 45 1 89 -25
Slide 25
Double Sabitler

double tipindeki sayılar iki şekilde yazılabilir

Basit form aşağıdaki şekildedir:


Örneğin:
34.1 23.0034
1.0 89.9
Floating Point Notasyonu (Bilimsel Notasyon)

Örneğin: 3.41e1 
3.67e17 
5.89e-6 
34.1
367000000000000000.0
0.00000589
Slide 26
Diğer Sayı Tipleri

Farklı sayılar, farklı bellek gereksinimi duyarlar



Virgülden sonraki hassasiyet arttıkça, hafızada
ihtiyaç duyulan «byte» miktarı da artar.
Çok büyük sayılar, hafızada daha fazla alana ihtiyaç
duyarlar
Çok küçük sayılar da, hafızada daha fazla alana
ihtiyaç duyarlar
Şekil 2.2
Slide 27
Tamsayı (Integer) tipleri

long veya long int (genellikle 4 byte)

Birbirine eşdeğer iki şekilde tanımlanabilir (-231…231-1)
long toplam;
long int toplam;
unsigned long int toplam (0…232-1)

short veya short int (genellikle 2 byte)

Birbirine eşdeğer iki şekilde tanımlanabilir (-215…215-1)
short sayi;
short int sayi;
Slide 28
Reel sayı tipleri

long double (genellikle 10 byte)

19 dijitlik reel sayıları bünyesinde barındırabilir
long double sayi;

float (genellikle 4 byte)

7 dijitlik reel sayıları bünyesinde barındırabilir
float not_so_big_number;
Slide 29
Karakter (char) veri tipi


Bilgisayarlar karakterleri de işleme tabi tutarlar
char



İngilizcesi ile character kelimesinin kısa
versiyonudur.
Klavyeden yazılabilen herhangi bir tek karakteri
ifade eder.
Char tipinde bir değişken tanımlaman için:
char harf;
Slide 30
char sabitler

Karakter değişkenlere değer ataması yapılırken
tek tırnak kullanılır.
char letter = 'a';

String tipinde değişken tanımı yapıldığında ise,
tek karakter dahi olsa çift tırnak kullanılmalıdır.


"a"  bir karakter içeren string
'a'  karakter tipinde bir veri
Slide 31
Bir karakterin klavyeden alınması




cin boşlukları ve satır atlamalarını dikkate almaz.
Aşağıdaki program parçası klavyeden girilen 2
karakteri, aralarındaki boşlukların sayısına aldırmadan
okur
char veri1, veri2;
cin >> veri1 >> veri2;
Kullanıcılar genellikle girmiş oldukları veriler arasına
boşluk bırakırlar
A B
Aralarında boşluk bırakılmasa da sonuç değişmez
AB
Şekil 2.3
Slide 32
bool veri tipi

boolean veri tipi C++’ın getirdiği yeni bir veri
tipidir.


Boolean true (1) veya false (0) değerini alabilir
Bool tipinde değişken tanımlanması:
bool is_bittimi;
Slide 33
Veri tiplerine dikkat!!!
Derleyici yapılan hataya müsaade etse de ekrana
int tipinde olan 2 sayısını yazacaktır.
Slide 34
int  double (part 1)

Derleyici, yukarıdaki işleme izin verse de
ekrana 2.00 değil, 2 olarak yazacaktır
Slide 35
int  double (part 2)

Değişken tanımlamayı unutursak?, yanlış
değişken ismi kullanırsak?
Slide 36
char   int

Her ne kadar önerilmese de, aşağıdaki şekilde bir
kullanım hatalı değildir!
int deger= 'A';
Bu ifade ‘A’ karakterinin ASCII kod tablosundaki sayı
karşılığını depolar. (65)
Slide 37
bool   int
Slide 38
Aritmetik İşlemler

Aritmetik operatörler:





+
*
/
ekleme (addition)
çıkarma (subtraction)
çarpma (multiplication)
bölme (division)
Örneğin:
agirlik = tane_agirlik * kac_tane;
Slide 39
İşlem sonuçları


Aritmetik operatörler farklı veri tiplerine sahip
değişkenlerle birlikte kullanılabilir.
Sonuç değişkenlerin tipine bağlıdır.



Değişkenler int ise, sonuç double olur mu?
Lütfen şaşırmayalım!!!!! int olur…
Değişkenlerden birisi double ise, sonuç double
olur.
Slide 40
Double değişkenlerin bölünmesi
Slide 41
Integer değişkenlerin bölünmesi
Slide 42
Şekil 2.1
(1/2)
Geri
İleri
Slide 43
Şekil 2.1
(2 /2)
Geri
İleri
Slide 44
Şekil 2.2
Geri
İleri
Slide 45
Şekil 2.3
Geri
İleri
Slide 46
Download

13-17 Ekim-2