Sayfalar

12/24/2010

Değişkenler ve Sabitler

(Variables and constants)

Programların kullanacakları verileri depolayabilecekleri araçlara ihtiyacı vardır. Değişkenler ve sabitler bu verileri sunmak ve üzerlerinde değişiklik yapabilmek için çeşitli yöntemler sunar.


Bu yazımda değişkenleri ve sabitlerin nasıl deklare edileceğini ve tanımlanacağını, bunlara nasıl değer atanacağını ve bu değerlerin nasıl kullanılacağını, bir değişkenin değerinin ekrana nasıl bastırılacağını anlatacağım.


Değişken Nedir?
C++'ta bir değişken tanımladığınızda derleyiciye bunun ne tür bir değişken olduğunu belirtmelisiniz: tam sayı, karakter ve benzeri. Bu bilgi derleyicinin ne kadar alan ayıracağını ve bu değişkene ne tür bir değer atanabileceğini belirler.


Hafızanın her birimi bir bit büyüklüğündedir. Oluşturduğunuz değişken iki bit boyutundaysa hafızadan iki birim alana ihtiyaç duyar. Değişkenin türü derleyiciye hafızadan ne kadar alan ayırması gerektiğini anlatır.


Bilgisayarlar değerleri göstermek için bitler ve baytlar kullandığından ötürü ve hafıza da bayt olarak ölçüldüğünden bu kavramları anlayıp bunlara aşina olmanız önemlidir. Bunu daha iyi anlamak için "C++ Anahtar Kelimeleri" sekmesine (Keywords) bakınız.


Tam Sayılar
Bir bilgisayarda her tür değişkenin değişmeksizin kaplayacağı alan bellidir. Tam sayı değişkeninin kapladığı alan bir bilgisayarda iki bayt iken başka birinde dört bayt olabilir (32bit - 64bit farkından dolayı olabilir) fakat bu tam sayı değişken aynı makinada her zaman aynı alanı kaplayacaktır.


Bir char değişkeni (karakterler için kullanılır) genellikle bir bayt uzunluğundadır. short değişkeni çoğu bilgisayarda iki bayttır, long dört bayttır. int (short veya long anahtar kelimeleri kullanılmaksızın) iki veya dört bayt olabilir.


Aşağıdaki programı kullanarak bilgisayarınızdaki değişkenlerin boyutlarını öğrenebilirsiniz:


1: #include
2:
3: int main()
4: {
5: cout << "Bir int degiskenin boyutu:\t\t" << sizeof(int) << " bayt.\n";
6: cout << "Bir short int degiskenin boyutu:\t" << sizeof(short) << " bayt.\n";
7: cout << "Bir long int degiskenin boyutu:\t" << sizeof(long) << " bayt.\n";
8: cout << "Bir char degiskenin boyutu:\t\t" << sizeof(char) << " bayt.\n";
9: cout << "Bir float degiskenin boyutu:\t\t" << sizeof(float) << " bayt.\n";
10: cout << "Bir double degiskenin boyutu:\t" << sizeof(double) << " bayt.\n";
11:
12: return 0;
13: }

Output: Bir int degiskenin boyutu: 2 bayt.
Bir short int degiskenin boyutu: 2 bayt.
Bir long degiskenin boyutu: 4 bayt.
Bir char degiskenin boyutu: 1 bayt.
Bir float degiskenin boyutu: 4 bayt.
Bir double degiskenin boyutu: 8 bayt.

NOT: Bilgisayarınızda gösterilen bayt değerleri farklılı olabilir.

Temel Değişken Türleri
C++ içerisinde tanımlanmış çeşitli değişkenler vardır. Bunlar tam sayı değişkenler, kayan noktalı değişkenler ve karakter değişkenlerdir.

Kayan noktalı değişkenler kesirli olarak ifade edilen değerlere - yani gerçek sayı değerlerine sahip olurlar. Karakter değişkenleri tek bir bayt büyüklüğünde olup 256 ASCII karakter ve simgesi ve genişletilmiş ASCII karakter setleri için kullanılırlar.


Değişken Türleri
Boyut ve Alabileceği Değerler
unsigned short int
2 bayt  0 ila 65,535
short int
2 bayt  -32,768 ila 32,767
unsigned long int
4 bayt  0 ila 4,294,967,295
long int
4 bayt  -2,147,483,648 ila 2,147,483,647
int (16 bit)
2 bayt  -32,768 ila 32,767
int (32 bit)
4 bayt  -2,147,483,648 ila 2,147,483,647
unsigned int (16 bit)
2 bayt  0 ila 65,535
unsigned int (32 bit)
2 bayt  0 ila 4,294,967,295
char
1 bayt  256 karakter değeri
float
 4 bayt  1.2e-38 ila 3.4e38
double
8 bayt  2.2e-308 ila 1.8e308


Değişken Tanımlama
Bir değişkeni önce tipini sonra bir boşluk koyup değişlen adını yazıp noktalı virgülle sonlandırmak suretiyle oluşturursunuz. Değişken adı herhangi bir harf-rakam kombinasyonu olabilir ancak başlangıç karakteri rakam olamaz, içerisinde boşluk olamaz. Örneğin: x, x1, ogreniadi, ogrenci_yasi, not, dogumTarihi. İyi tanımlanmış değişken adları değişkenlerin kullanım amacını yansıtır; adlandırmayı ne kadar iyi yaparsanız program akışınızın anlaşılması o kadar kolaylaşır.

Aşağıdaki ifade dogumTarihim adında bir tam sayı değişkeni tanımlar:

int dogumTarihim;

Genel programlama alışkanlığı adına J23qrsnf gibi korkunç adları asla veya amacını anlatmayan x1, x2, x3 gibi değişkenleri zorda kalmadıkça kullanmayın. Amacını anlatan değişlenler kullanamaya çalışın, örneğin dogumTarihim veya kacAdet gibi. Bu gibi adlar kodun üzerinden aylar geçtikten sonra geri dönüp baktığınızda o satırda ne yapmak üzere olduğunuzu anlatmakta fayda sağlayacaktır.

Aşağıda iki kod parçası vereceğim, bu kodların amacının ne olduğunu anlamaya çalışın:

Kod 1
main()
{
unsigned short x;
unsigned short y;
ULONG z;
z = x * y;
}

Kod 2
main ()
{
unsigned short Genislik;
unsigned short Uzunluk;
unsigned short Alan;
Alan = Genislik * Uzunluk;
}

Şimdi karar verin, hangi kod daha anlaşılır?


Büyük-Küçük Harf Duyarlılığı
C++ büyük-küçük harflere duyarlıdır. Yani dogumTarihim ile DogumTarihim farklı değişkenlerdir.

Adlandırma yaparken kullanılabilecek çeşitli standartlar mevcuttur (Camel, Hungarian...) ancak önemli olan bunu tüm programınız genelinde aynı şekilde kullanabilmektir. Bu tutarlılığı ne kadar iyi sağlarsanız programınızın okunurluğu o kadar artar.

Birden Fazla Değişkenin Aynı Anda Oluşturulması
unsigned int myAge, myWeight; // iki unsigned int değişken
long area, width, length; // üç long değişken

Değişkenlere Değer Atama
Önce değişkeni tanımlayıp daha sonra = operatörüyle değeri atayabilirsiniz;

unsigned short Width;
Width = 5;


ya da ikisini aynı anda yapabilirsiniz.
unsigned short Width = 5;

Hatta birden fazla değişkeni de bu şekilde tanımlayıp değer ataması yapabilirsiniz:
long genislik = 5, uzunluk = 7;

Karakter ataması da aşağıdaki şekilde yapılır.
char harfDegeri = 'A';

Burada dikkat edilecek husus tek tırnak (') simgesidir. Karakterler için tek tırnak, karakter dizileri için çift tırnak (") kullanılır. Bunu aklınızdan çıkarmayın.

Ayrıca C++'ın tanıdığı bazı özel karakterler vardır, bunlar biçimlendirme amaçlı kullanılırlar ve sola yatık bölü işaretinden sonra yazılarak kullanılırlar.

Bazıları aşağıdaki gibidir:


Karakter
Anlamı
\n
Yani satır
\t
Tab
\b
backspace
\"
çift tırnak
\'
tek tırnak
\?
soru işaret
\\
sola eğik çizgi

No comments:

Post a Comment