14 MART 2017
SALI
19.49
C++ Değişkenler ve Değişken Türleri

Değişkenler, her dil için var olması gereken ve aslında depolanan verilerdir. Bilgisayarlarımız aynı beynimiz gibi çalışır. Aklımıza tuttuklarımız gibi bilgisayarlarda söylediklerimizi hafızalarına kaydedebilirler. Basitçe bir örnek verelim ve bu örneği C++ dilinde bilgisayarımıza yaptıralım.

 

Aklımızdan 2 adet sayı tutalım.
Birinci Sayımız: 10
İkinci Sayımız: 5

Bu sayıları toplayalım (10+5 = 15) ve çıkan sonucu ikinci sayımıza göre mod alalım (15%5 = 0).

Bu işlemi bilgisayarımız aracılığıyla kolayca yapabiliriz. Öncelikle yapmamız gerekenlere şöyle bir göz atalım;

sayi1 = 10;
sayi2 = 5;
sonuc = (sayi1+sayi2)%5

Gördüğünüz üzere basit bir matematik işlemine dökmüş olduk olayı. Peki bu işlemi C++ dilinde yapmak istersek kod yapımız nasıl olacaktır;

#include <iostream>
using namespace std;

int main() {
	int sayi1, sayi2, sonuc;
	sayi1 = 10;
	sayi2 = 5;
	sonuc = (sayi1+sayi2)%5;
	cout << sonuc;
}

Şimdi bu yapımıza bir göz atalım;

int sayi1, sayi2, sonuc;

Bu satırımızda int ile tabir edilen alan konu başlığımızda da yer verdiğimiz değişken türüdür. İngilizce integer olarak adlandırılan ve tam sayı anlamına gelen bu ifade ile sayi1, sayi2 ve sonuc değişkenlerimin bir tam sayı içerdiğini bilgisayarıma söylüyorum. Bilgisayarımda kendini bu değişken türüne göre hazırlıyor. Bu satırı atladığımız taktirde ne yazık ki hata ile karşılaşacağız. Çünkü bilgisayarımız hafızasında ne tutmasını gerektiğini bilemeyecek.

sayi1 = 10;
sayi2 = 5;

İlk satırımızda integer olarak belirttiğimiz sayi1 ve sayi2 değişkenlerimizin neye eşit olduğunu bilgisayarımıza bu satırda söylemekteyiz. İlk satırda "Bak şimdi iki tane tam sayı değerini sana söyleyeceğim" diyerek uyardığımız bilgisayarımıza bu satırda "Sana söyleyeceğim iki tam sayı değerlerini sakın unutma" diyerek bir hatırlatmada bulunuyoruz ve değişkenlerimize sayı değerlerini aktarıyoruz.

sonuc = (sayi1+sayi2)%5

Bu alan tamamıyla matematik! Evet, ilk satırda belirttiğimiz ve tam sayı olacağını bildirdiğimiz sonuc değişkenimize bir şeyler atıyoruz. Bu atadığımız bir şeyler aslında bilgisayarımıza önceki satırlarımızda aklında tutmasını söylediğimiz sayi1 ve sayi2 değişkenleri ile ilgili ufak bir işlem. (Eğer bilginiz yoksa mod almak için bilgisayar dilinde % işareti kullanılır.)

cout << sonuc;

Bu satır aslında aklınızı karıştırmış olabilir. "Ee biz sonuc değişkenine bir atama yaptık ve sonucu bulduk. Neden bu satırı yazıyoruz ki?" gibi bir sitemle karşılaşıyorsak basitçe açıklayalım. Sizler hafızanızdaki her şeyi her an söylemekte misiniz? Elbette ki hayır. Aynı şekilde sonuc ile başlayan satırımızda bilgisayarımıza sonuc değişkeninin kaça eşit olduğunu bildirdik lakin bu konu ile ilgili herhangi bir şeyi bize söylemesini istemedik. Bilgisayarımız sonucu buldu ve hafızasına yazdı. Bizler ondan sonucun ne olduğunu öğrenmek istiyorsak giriş dersinde ekrana yazdırmak için kullandığımız cout kavramını burada da kullanabiliriz. sonuc değişkeninin bu sayede ekrana yazdırmış olduk.

İşlemlerimizi tamamladık:

Sonuç olarak ekrandaki çıktıya baktığımızda bizlere "0" sonucunu yazdıracak. Anlaşıldığı üzere 15'in 5'e bölümünden kalanın 0 olduğu ortada. Şimdi belirttiğimiz sayi1 ve sayi2 değişkenlerine farklı değerler atayarak ortaya çıkan sonucu değerlendirebilirsiniz.

Değişkenler ile ilgili önemli bir nokta!

C++ dili büyük/küçük harf duyarlı bir dildir. Yani sayi1 = Sayi1 diyemeyiz! Bu nedenle değişken oluştururken buna oldukça dikkat etmelisiniz!

Değişken Türleri (Veri Tipleri - Data Types)

Veri tipleri tanımlayıcıların türlerini ve hafızada kaplayacakları alanları belirtmek için kullanılmaktadır.

 int 

integer : tamsayı
Bellek: 2 Byte
Tamsayıları içerir.

int a,b,c;
int sayi;
int sayi=5;

 string 

string : metinler
Yazı değerlerini içermektedir.

string merhaba;
string merhaba="Merhaba Dünya!";

Not: string kullanılırken std::string merhaba = "Merhaba Dünya!"; gibi bir yapı oluşturulmalı veya girişte string kütüphanesini çağırmak amacıyla #include ifadesine yer verilmelidir.

 float 

float : gerçel sayı
Bellek: 4 Byte
Hassasiyet: 7-8 basamaktır.
3.4E-38 ile 3.4E+38 aralığında değer alır.

float notOrtalamasi;
float e = 2.71;
float pi = 3.14;

 double 

double : gerçel sayı
Bellek: 8 Byte
Hassasiyet: 15-16 basamaktır.
1.7E-308 ile 1.7E308 aralığında değer alır.

double notOrtalamasi;
double e = 2.71828;
double pi = 3.14;

 bool 

boolean : iki olasılıklı değere sahiptir: Doğru/Yanlış (true-false olarak döner)

bool x;
bool y = true;
bool z = false;

Uzunluk Bildiriciler

 short 

short: kısa
 Uyarı: yalnızca int sayı tipi ile uygulanır! 
Bellek: 16 Bit
Signed (işaretli) ve Insigned (işaretsiz) tipine göre değişkenlik gösterir;
signed: -32768 ile +32767 arasında değer alır, unsigned: 0 ile 65535 arasında değer alır.

 long 

long: uzun
 Uyarı: int, float ve double sayı tipleri ile uygulanabilir! 
Bellek: 32 Bit

Signed (işaretli) ve Insigned (işaretsiz) tipine göre değişkenlik gösterir;
signed: -2147483648 ile +2147483647 arasında değer alır, unsigned: 0 ile 4294967295 arasında değer alır.

İşaret Bildiriciler

 signed 

signed: işaretli
Negatif ve Pozitif değerleri içerir.

4 bitlik bir tamsayı değerini ele alıyoruz. 2= 16 farklı değer alabilir.

signed int
bits value
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1

 unsigned 

signed: işaretli
Pozitif değerleri içerir.

unsigned int
bits value
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

Değişken ve Değişken Türleri ile ilgili Örnekler

Örnek:

#include <iostream>
using namespace std;

int main() {
	int x,y,sonuc;
	x = 6;
	y = 3;
	sonuc = x/y;
	
	cout << "x'in y'ye bolumu: " << sonuc;
}

Çıktısı:

2

Örnek:

#include <iostream>
#include <string>
using namespace std;

int main() {
	string kullanici = "Mert Topuz";
	int yas = 20;
	double boy = 1.75;
	cout << "Hosgeldin " << kullanici << endl;
	cout << yas << " yasindasin." << endl;
	cout << boy << " boyundasin.";
}

Çıktısı:

Hosgeldin Mert Topuz
20 yasindasin.
1.75 boyundasin.
YORUMLAR 5
1
Ogun Basar
06 MART 2020 - 03.00
Harika temiz anlatim yapiyorsunuz elinize saglik.
CEVAPLA
0
Mert Topuz
07 MART 2020 - 17.10
Değerli düşünceleriniz için çok teşekkürler :)
3
fatma kocakurşun
04 ARALIK 2019 - 22.00
hocalarımdan hiçbir halt anlamamıştım ve örnekleri yaparken tam anlamıyla mantığı kavramadığım için zevk alamıyordum.Şu an aydınlanma yaşadım sade ve dolu içeriğiniz sayesinde,teşekkür ederim.
CEVAPLA
0
Mert TOPUZ
07 ARALIK 2019 - 11.27
Bu güzel yorumunuz için sonsuz teşekkürler, elimden geldiğince yardımcı olmaya çalışıyorum ve bu tarz dönüşler beni motive ediyor. Sizlere iyi çalışmalar dilerim, beklediğiniz farklı konu anlatımları olursa bana ulaşmayı unutmayın.
2
Aydın Muhammed Yavuz KÜÇÜKATEŞ
03 AĞUSTOS 2019 - 13.57
Ben derslerinizi çok beğendim genelde dinleyerek öğrenmeyi seven birisiyim sesli anlatımlı derslerinizin olduğu bir siteniz var mı yoksa ne zaman yapmayı düşünüyorsunuz bu konuda beni bilgilendirirseniz çok sevinirim. Halihazırda udemy'den takip ettiğin dersler var sizi de orada görmek dileği ile, hoşçakalın. Aydın Muhammed Yavuz KÜÇÜKATEŞ
CEVAPLA
1
Mert Topuz
04 AĞUSTOS 2019 - 22.45
Merhabalar, değerli görüşünüz için teşekkür ederim. Günümüzde sizinde bahsettiğiniz gibi Udemy tarzı platformlarda eğitim videoları çekerek eğitim setlerini uygulamalı bir şekilde daha verimli hazırlayabiliyorlar. Lakin elimizde yazılı kaynakların olması, geri dönüp bakma aşamasında çok daha faydalı oluyor. Dediğiniz gibi videolu anlatımlar bu yazılı kaynakların yanına eklenebilir. Böyle bir girişimim henüz yayınlanmış bir şekilde mevcut değil fakat ilerleyen zamanlarda düşünebileceğim bir iş. Tekrar teşekkür ederim, iyi çalışmalar.
2
Hasan Kılınç
03 ŞUBAT 2019 - 12.40
kardeşim hocamdan güzel anlatıyorsun tebrik ederim valla helal olsun sayende millet bişeyler öğreniyor :)
CEVAPLA
1
Mert Topuz
04 ŞUBAT 2019 - 20.08
Teşekkür ederim, birilerine faydamız oluyorsa ne mutlu :)
3
sahil yurtseven
19 ARALIK 2018 - 17.23
sevgili mert topuz kardesimiz cok değerli ve tam programlamaci bilgileri vermsin anlatimin cok guzel tebrik ediyorum seni. bu siteyi c++ oğrenmek icin kaydettim
CEVAPLA
1
Mert Topuz
28 ARALIK 2018 - 12.32
Değerli yorumun için teşekkür ederim :) Umarım senin için faydalı bir kaynak olur
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et