Fırat Eşki


Kodların Dünyası…


Ders 2 – C++ Değişkenler

Herkese merhaba C++ eğitim serisinin 2. dersi olan “C++ Değişkenler” dersine hoş geldiniz. Eğer programcılığa yeni giriş yaptıysanız, bu dersi iyi anlamak için öncelikle ilk dersimiz olan “Merhaba C++” dersini okumanızı öneririm.


 – İçerik Haritası –

⇒ Bu Derste Ne Öğreneceğiz?

⇒ Temel Veri Tipleri

⇒ Değişken Tanımlama

⇒ Değişken İsimlendirme Kuralları

⇒ Değişken Türleri

⇒ Yerel Değişkenler

⇒ Global Değişkenler

⇒ Static Değişkenler

⇒ Sabitler

⇒ Kullanıcıdan Değer Alma


 Bu Derste Ne Öğreneceğiz?

  • Bu derste oluşturacağımız programların hafızada geçici olarak nasıl veri saklayacağını öğreneceğiz.
  • C++ dilinde temel veri tiplerinin neler olduğunu öğreneceğiz.
  • Değişken tanımlama kurallarını öğreneceğiz.
  • Değişken türlerini öğreneceğiz.
  • Değişken isimlendirmeyi öğreneceğiz.
  • Değişkenlere nasıl değer atayabileceğimizi öğreneceğiz.
  • Kullanıcıdan değişkene nasıl değer alabileceğimizi öğreneceğiz.

 Temel Veri Tipleri

Her programlama dilindeki veri tipleri temel olarak: sayısal veriler, metin türündeki veriler ve mantıksal veriler gibi temel gruplara ayrılır diyebiliriz. Tabi bunların hafızada kapladığı yerlere ve kullanım alanlarına göre çeşitli türleri vardır. Her programlama türünde bunların değer aralıkları ve çeşitleri değişiklik gösterse de kullanım alanları aynıdır.

Aşağıdaki tabloda C++ dilinin temel veri tipleri gösterilmiştir:

İsim Tanım Boyut Değer Aralığı
Char Karakter 1 byte İşaretli: -128 ile 127 arasında

İşaretsiz: 0 ile 255 arasında

Short Kısa Tamsayı 2 byte İşaretli: -32768 ile 32767 arasında

işaretsiz: 0 ile 65535 arasında

Int Tamsayı 4 byte Short ve Long Değerlerini Kapsar
Long Uzun Tamsayı 4 byte İşaretli: -2147483648 ile 2177483647 arasında

işaretsiz 0 ile 4294967295 arasında

Double Uzun Ondalıklı Sayı 8 byte 1.7e +/- 308 (15 basamak)
Float Ondalıklı Sayı 4 byte 3.4e +/- 38 (7 basamak)
Bool True ya da False 2 byte Doğru ya da Yanlış durumlarını temsil eder.

Tablodan da anlayacağınız gibi veri tipleri kullanım alanlarına göre çeşitli boyutlara bölünmüştür. Böylece yapacağımız işlemlere göre değişken seçeriz ve gereksiz yere hafıza kullanımını önlemiş oluruz.

 Değişken Tanımlama

Yukarıdaki tabloda temel veri tiplerini ve bu tiplerin değer aralıklarını belirttik. Şimdi bu veri tiplerinin nasıl tanımlandığını göreceğiz.

Değişken tanımlamasının genel gösterimi: (Değişken Tipi)  (Değişken ismi);

Şimdi örnek olarak gösterecek olursak:

Üstteki örnekte görüldüğü gibi 3 tane farklı değişken bildirimi yaptık. Fakat henüz bu değişkenlerin sahip olduğu herhangi bir değer(value) mevcut değil. İsterseniz bu değişkenlerin tanımlamasını yaparken ilk değerlerini atayabiliriz. Şimdi değişkenleri tanımlarken nasıl ilk değer vereceğimizi görelim:

İlk değer atamalı değişkenin genel gösterimi: (Değişken Tipi) (Değişken İsmi) = (değeri);

Şimdi bunu örnek üzerinde gösterelim:

Yukarıda ki örnekte değişken tanımlamasını yapar yapmaz ilk değeri atadık. Bazı programlarda algoritmaya göre bazen ilk değerin verilmesi gerekirken bazen de gerekli değildir.

Örneğin matematiksel işlem uygulayacağımız bir değişkenin değerini atamadan işleme tabi tutarsanz program içerisinde hata oluşur. Bu nedenle gerek değişken tanımlanırken gerekse değişken kullanılmadan önce mutlaka değer ataması yapmalıyız.

Şimdi ise pratik yoldan birçok değişkenin tanımlamasını nasıl yapacağımıza bakalım.

Örneğin kullanıcıdan 5 tane tamsayı tipinde veri alacaksınız ve bunun için değişken tanımlamalısınız. Bu 5 tane değişkeni ayrı satırları tek tek yazmak yerine bunları tek satır üzerinden daha az kod yazarak yapabiliriz. Örnekte bunun nasıl yapıldığını görüyorsunuz.

Üstteki örnekte çoklu değişken tanımladık. Peki çoklu değişkeni tanımlarken ilk değer atamasını nasıl yapacağız? Onuda şu örnekte görelim:

Gördüğünüz gibi değişkenlerin nasıl tanımlandığı gördük. Şimdi ise değişken tanımlarken dikkat etmemiz gereken yazım kurallarına gelelim.

 Değişken İsimlendirme Kuralları

 C++, büyük ve küçük harflere karşı duyarlıdır. Böylece ‘Sayi’ ve ‘sayi’ isminde 2 farklı değişken oluşturabilirsiniz. Bunları kullanırken karıştırmamak için dikkatli olmalısınız.

  Değişkenler adlandırılırken mutlaka harf veya _ (alt çizgi) ile başlamalıyız. Kesinlikle sayı veya özel karakter ile isimlendirmeye başlayamayız.

  Değişken ismi en fazla 255 karakterden oluşabilir.

  Değişken ismi 2 kelimeden oluşuyorsa kelimeler arasına _ (alt çizgi) koyabiliriz.

  Değişken isimlerinde aşağıdaki tabloda belirtilen C++ dilinin özel anahtar kelimelerini kesinlikle kullanamayız.

C++ Dilinin Özel Anahtar Kelimeleri
asm auto bool break case catch char
class const const_cast continue default delete do
double dynamic_cast else enum explicit extern false
float for friend goto if inline int
long mutable namespace new operator private protected
signed sizeof static static_cast struct switch template
this throw true try typedef typeid typename
union unsigned using virtual void volatile while

 Değişken Türleri

Yerel Değişkenler

Global Değişkenler

Static Değişkenler


1- Yerel Değişkenler

Bir değişkenin tanımlandığı yerin önemi büyüktür. Değişken tanımlamasını fonksiyonun içinde tanımlarsanız o değişkene sadece o fonksiyonun içerisinden erişebilirsiniz. İşte fonksiyonun içerisinde tanımlanan bu değişkenlere yerel değişkenler diyoruz. Alttaki örnekte, gol_sayisi isminde main fonksiyonuna ait yerel değişken tanımlanmıştır:

2- Global Değişkenler

Eğer bütün fonksiyonlar içinden erişebileceğiniz değişken tanımlamak istiyorsanız, bu değişkeni bütün fonksiyonların dışına yazmalısınız. Fonksiyonların dışında tanımlanan bu değişkenlere Global Değişkenler diyoruz. Alttaki örnekte, gol_sayisi isminde global değişken tanımlanmıştır.

3- Static Değişkenler

Diyelim fonksiyon içinde değişken tanımladınız. Yani yerel değişken tanımladınız. Bu değişken fonksiyon her çağrıldığında hafızada yer tutar, fonksiyon bittiğinde ise hafızadan yok edilir. Global değişkenler ise program açıldığında hafızada yer tutar ve program kapanana kadar yok edilmezler.

Kısacası yerel değişkenlerde fonksiyon yeniden çağrıldığında değişkenin değeri son değer ile aynı olmaz. Eğer biz tanımladığımız yerel değişkenin değerinin fonksiyonun tekrar çağrıldığında değerinin yok edilmeden var olan değerde kalmasını istersek Static Değişkenleri kullanırız. Static değişkenin nasıl tanımlandığını aşağıdaki örnekten görebilirsiniz:

Aşağıdaki örnekte gol_at isminde fonksiyon kullandık. İlerleyen derslerde fonksiyonların kullanımını ve diğer özelliklerini detaylı işleyeceğiz.

Yukarıdaki örnekte gol_at isminde fonksiyon oluşturduk. Bu fonksiyon: gol isminde ilk değeri sıfır olan tamsayı türünde static bir değişken oluşturuyor. Daha sonra bu değişkenin değerini ++ operatörü ile 1 tane arttırıp gol değişkeninin değerini ekrana yazdırıyor. Main fonksiyonunda ise gol_at(); kodu ile fonksiyonu çağırdık ve bu işlemi 4 kere tekrar ettirdik. Yani fonksiyon içindeki kodları 4 kere işlettik.

Örnekte kullandığımız ++(arttırma) operatörünü sıradaki dersimiz olan “C++ Operatörler” dersinde göreceğiz.

Yukarıdaki kodları çalıştırınca bakalım nasıl sonuç alıyoruz:

Programın çıktısı bu şekildedir.

Eğer biz gol ismindeki değişkeni static olarak tanımlamasaydık ekrana yazdırılan değer her seferinde 1(bir) olacaktı çünkü değişkene ilk değer olarak 0(sıfır) değerini verdik ve ekrana yazdırmadan önce değeri 1(bir) tane arttırdık. Dolayısıyla Static değişken sayesinde değişken; fonksiyon her çağrıldığında yeniden oluşturulmak yerine sadece ilk seferde oluşturulup, sonrasında global değişkenler gibi değeri korunabiliyor. Bu örnekle birlikte static kavramının nasıl kullanıldığını ve mantığını anladık.

Fonksiyonu 4 kere yazmak yerine döngü kullanarak sadece 1 satır da yazabilir hatta oluşturduğumuz fonksiyondaki kodları döngü içine yazarak da aynı işlemi yapabilirdik. Ama döngülerin kullanımını daha öğrenmediğimiz için şuan amele usulü işlem yaptık.


 Sabitler

Sabitler: program içerisinde değerinin değiştirilemediği değişken türleridir. Örneğin, pi değişkenin değerini tutan değişkenimizi sabit olarak tanımlarız ve bu değeri istesek dahi değiştiremeyiz. Sabit değişken bildirimlerinde Const ifadesini kullanırız.

Sabit değişken bildirimi:

(Değişken Tipi) Const (Değişken İsmi) = (değeri); veya:

Const (Değişken Tipi) (Değişken İsmi) = (değeri); şeklindedir.

Aşağıda dairenin alanını hesaplayan örnek kod parçası mevcut. Burada pi sayısı sabit olarak tanımlanmıştır:

Yukarıdaki örnekte pi sayısnı sabit olarak tanımladık ve dairenin yarıçapını belirledik. Daha sonra bu belirlediğimiz değerler eşliğinde dairenin alanı hesaplanıp ekrana yazdırdık. Programın çıktısı şu şekildedir:

Sabit Değişken Kullanımı

Programın Çıktısı

Bu dersimizin son kısmında ise tanımladığımız değişkenlere kullanıcıdan nasıl değer alacağımızı öğreneceğiz.

 Kullanıcıdan Değer Alma

Değişkenlerin tanımlamasını ve değişkenlere değer atamasını öğrendik. Peki biz kullanıcının gireceği değerleri nasıl değişkenlere alacağız diyorsanız doğru adrestesiniz  🙂  Kullanıcıdan değer almak için iostream kütüphanesine ait Cout<< ifadesiyle aynı namespace altında bulunan Cin>> ifadesini kullanacağız. Program Cin>> ifadesinin olduğu yerde durur ve kullanıcıdan değer girilmesini bekler, kullanıcı değer girdikten sonra, değer değişkene atanır ve program işlemeye devam eder. Aşağıdaki örnekte kullanıcıdan 2 tane sayı alınıyor ve alınan bu sayılar toplanıp ekrana yazdırılıyor:

Yukarıdaki örneğin çıktısı aşağıdaki gibidir:

Program sizden değer girmenizi beklerken, değeri girip Enter tuşuna basıyorsunuz.

Kullanıcıdan Değişkene Değer Alma

Programın Çıktısı – Resmi daha kaliteli görüntülemek için üzerine tıklayabilirsiniz.

Tanımladığımız değişkenler tamsayı türünde olduğu için 12.8 gibi ondalıklı sayı girerseniz program hata verecektir. Eğer ondalıklı sayıları almak isterseniz Float veya Double tipindeki değişkenleri kullanabilirsiniz. Diğer bir nokta ise sayısal değişkene harf veya sayı dışında karakter girerseniz program yine hata verecektir. Kısacası tanımlanan değişken tipiyle; girilen veri tipleri aynı tipte olmalıdır.


C++ eğitim serisinin 2. dersi olan “C++ Değişkenler” dersinin sonuna geldik. Eğer anlamadığınız bir yer veya sormak istediğiniz sorular varsa iletişim bölümünden mutlaka bana iletiniz. Diğer derslerde görüşmek üzere kendinize iyi bakın…


Merhaba, ben Fırat Eşki bu da benim blogum. Bilgisayar ve teknoloji dünyasını yakından takip ediyorum. Küçük yaşta giriş yapmış olduğum kod dünyasına olan ilgim ve sevgim gün geçtikçe artarak devam ediyor.