Üye
Selam yoldaşlar, ben FackCapital (BKZ: Anti Kapitalist). Bugün C++ Bible dokümantasyonunun üçüncü bölümü olan Değişkenler ve Değişkenlere Değer Atama bölümü ile karşınızdayım. Tavsiyem ilk iki bölümü eğer okumadıysanız, bu bölüme geçmeyin.
Veri
Uzaktan veya yakından eminim hepiniz verileri duymuşsunuzdur. Peki veri nedir? Bir bilgisayar tarafından işlenen veya depolanan bilgilere veri denir. Aslında cihazınızda ki resimler, müzikler, belgeler vb. her şey birer veridir. Şu unutulmamalıdır ki veriler tek başlarına hiçbir anlam ifade etmezler. Veriler bilgisayarlar tarafından toplanılıp, analiz edilip sonra da düzenlenip kullanıcıya sunulduktan sonra bir anlam kazanır. Verileri, bilgilerden ayıran en önemli husus az öncede dediğimiz gibi verilerin tek başlarına bir anlamı olmamasıdır. Veriler işlenmeye muhtaçtır. Bilgi ise ham verinin işlenmesi sonucu oluşur. Bir bilgisayar programı, verilere birçok yerden erişim sağlayabilir: bir dosyadan, bir ağ üzerinden, kullanıcıdan veya verileri doğrudan kendisi tanımlayan programcıdan. Örneğin konsola "Selamün Aleyküm, Dünya!" yazdıran bir programcı konsola yazdırılacak olan "Selamün Aleyküm, Dünya!" ifadesini önceden tanımlamıştır. Bilgisayarda ki veriler depolanmak veya işlenmek için göründüğünden farklı bir şekilde depolanır, bu nedenle de sıradan bir kullanıcı tarafından okunabilir değildir. Az önce bahsettiğimiz "Selamün Aleyküm, Dünya!" ifadesi bilgisayarda bu şekilde depolanmaz, daha verimli bir şekilde depolanması için Binary (İkili) sistemde depolanır. Binary (İkili) sisteme daha sonraki bölümlerde daha sonra değineceğiz.
RAM (Random Access Memory)
Tüm bilgisayarlar RAM (Random Access Memory) olarak adlandırılan programınızın verileri geçici olarak depoladığı bir belleğe sahiptir. Burada şu ifadeye dikkat etmenizi istiyorum geçici olarak depolanan veri, peki nedir bu geçici olarak depolanan veri? Geçici veriler kısaca, program veya bilgisayar çalıştırıldığı sırada bellekte depolanan veridir; bilgisayar veya program kapatıldığında kaybolur.
Evet verileri ve verilerin depolandığı belleği kısaca anladığımıza göre şimdi değişkenlere geçme vakti gelmiştir diye düşünüyorum.
Değişkenler
Bir değişken oluşturduğumuz zaman bellekte bir yer ayırtmış oluruz. Değişkene atadığımız her değer bellekte ayırtılan bu yerde depolanmış olur. Örneğin int veri türünde bir X değeri tanımlamış olduğumuz zaman bellekte X değişkeni için yer ayırtılır ve X değişkeninin değeri burada depolanır. Unutmayın, değişken sadece bellekte ayırtılan konuma verilen isimdir. Örneğin ben X adında bir değişken tanımlıyorum ve bu değişkene 15 değerini veriyorum:
Burada int'in ne olduğuna falan birazdan değineceğim ama C++ programlama dilinde bir değişken bu şekilde tanımlanır. Kısa bir hatırlatma yapalım bir önceki dersimizde bir değişken adlandırılırken dikkat edilmesi konulara da değinmiştik aynı kurallar burada da geçerli. Değişken isimlendirirken büyük küçük harflerden, sayılardan ve alt çizgiden yararlanabilirsiniz ancak bir değişken asla bir sayı ile başlayamaz. Ben burada değişkenimin ismini X olarak verdim ama siz bir program yazarken bu tarz anlaşılmaz isimler vermeyin ben örnek olsun diye verdim. Burada int değişkenin veri tipi, X değişkenin ismi ve 15 ise X değişkenine verilen değer. Yani tekrar edelim biz burada şuan bellekte 15 değerini X adı altında saklıyoruz.
Scope of Variables (Değişkenlerin Kapsamı)
Tüm değişkenlerin kapsama alanı ve depolama sınıfı olarak 2 adet özniteliği vardır. Kapsama alanı kısaca bir değişkenin geçerli olduğu alandır. Genellikle Local veya Global değişkenleri bilmeyen insanlar programlarında Global değişkenleri kullanırlar. Peki nedir bu global değişkenler? Tüm fonksiyonların dışında tanımlanan değişkenlere Global Variables (Global Değişkenler) denir. Bu tür değişkenler tanımlandıktan sonra programın her yerinde kullanılır. Genellikle Global değişkenler programın başlarında tanımlanır. Global değişkenleri fonksiyonların dışında tanımlarız, programların her yerinden erişebiliriz veya güncelleyebiliriz.
Global değişkenlere değindik şimdi de isterseniz yerel (Local) değişkenlere değinelim. Local Variables (Yerel Değişkenler), bir fonksiyonun veya bir bloğun gövdesi içinde bildirilir. Ve sadece bildirildiği blok içinde kullanılır.
Eğer aynı isimde yerel değişken ve global değişken tanımlarsak ne olur isterseniz gelin birde buna bakalım. Cevaplayalım, derleyici yerel değişkene öncelik verilecektir. Çünkü örneğin derleyici bir değişken gördüğü zaman ilk olarak bu bildirilen değişken fonksiyon içinde mi belirtilmiş buna bakar. Eğer fonksiyonun içinde bulamazsa genel programa bakar.
Kısa bir not: Global değişkenleri kullanmanızı pek tavsiye etmem çünkü programın herhangi bir yerinden erişilebilir olacağı için kompleks kodlar yazdığınız zaman olası bir hatayı bulmanız zorlaşacaktır.
Data Types (Veri Tipleri)
Değişkenlerin bellekte bir yer ayırdığını ve bu yerde çeşitli değerler depoladığını öğrendik. Aslında bu üzerinde durulması gereken biraz ayrıntılı bir konu ama ileriki bölümlerde buna da değineceğiz. Bir veri tipi kısaca değişkene ne tür bir veri depolayacağını söyler. Örneğin az önce int veri tipinde bir değişken tanımlamıştık. Bu değişken sadece tam sayıları depolayabilir çünkü veri tipi integer (Tam Sayı). Tabii ki C++ programlama dilinde sadece int veri tipi yok.
Primitive Data Types (İlkel Veri Tipleri)
Tek Satırda Birden Çok Değişken Tanımlama
C++ programlama dili tek bir satırda birden çok değişken tanımlamamıza izin verir. Aşağıda ki kodu bir inceleyelim isterseniz:
Bu kod şu kodla aynıdır:
Yeni programcılar tek bir satırda birden fazla değişken tanımlarken bazı hatalar yapmaktadır. Bu hataların çoğu ciddi değildir çünkü derleyici tarafından yakalanıp programcıya bildirilir. Örneğin tek satırda birden fazla değişken tanımlarken tanımladığı her değişken için bir veri tipi yazar.
Şahsi tavsiyem derleyici tek bir satırda birden fazla değişken tanımlamanıza izin verse bile bundan kaçınmanız yönünde olacaktır.
Değişken Adlandırma Kuralları
Bir değişkene "=" operatörünü kullanarak (Operatör konusuna daha sonra değineceğim) değer atayabilirsiniz.
Peki bir değişkene birden fazla kez atama yaparsak ne olur gelin isterseniz birde buna bakalım.
Unutmayın bir değişken sadece bir değeri tutabilir, bu yüzden sonradan 15 değerini atadığımız zaman eski 10 değerini yok etti. Yeni programcılar sık sık "=" operatörü ile "==" operatörünü karıştırıyor. "=" Operatörü bir ifadede değer atamak için kullanılırken "==" operatörü eşitlik kontrol etmek için kullanılır.
Atamanın ciddi bir dezavantajı vardır, bir değişkene değer atayabilmek için ilk olarak bir değişken tanımlamanız daha sonra ise bu değişkene bir değer atamanız gerekir. Yani en az 2 ifade girmeniz gerekir ama tek bir ifade de işimizi halladebilecekken neden iki ifade satırı ile uğraşalım ki? Bunun iki yolunu size göstereyim:
Evet, bu bölümde C++ programlama dilinde değişkenlere, verilere ve belleğe kısaca değindik. Umarım sizin içinde bilgilendirici bir bölüm olmuştur. Bir sonraki bölümde görüşmek üzere...
Bölüm 1: Bir C++ Programının Yapısı ve İfadeler [C++ Bible]
Bölüm 2: Yorum Satırları ve Okunabilir Kod Yazma Sanatı [C++ Bible]
Veri
Uzaktan veya yakından eminim hepiniz verileri duymuşsunuzdur. Peki veri nedir? Bir bilgisayar tarafından işlenen veya depolanan bilgilere veri denir. Aslında cihazınızda ki resimler, müzikler, belgeler vb. her şey birer veridir. Şu unutulmamalıdır ki veriler tek başlarına hiçbir anlam ifade etmezler. Veriler bilgisayarlar tarafından toplanılıp, analiz edilip sonra da düzenlenip kullanıcıya sunulduktan sonra bir anlam kazanır. Verileri, bilgilerden ayıran en önemli husus az öncede dediğimiz gibi verilerin tek başlarına bir anlamı olmamasıdır. Veriler işlenmeye muhtaçtır. Bilgi ise ham verinin işlenmesi sonucu oluşur. Bir bilgisayar programı, verilere birçok yerden erişim sağlayabilir: bir dosyadan, bir ağ üzerinden, kullanıcıdan veya verileri doğrudan kendisi tanımlayan programcıdan. Örneğin konsola "Selamün Aleyküm, Dünya!" yazdıran bir programcı konsola yazdırılacak olan "Selamün Aleyküm, Dünya!" ifadesini önceden tanımlamıştır. Bilgisayarda ki veriler depolanmak veya işlenmek için göründüğünden farklı bir şekilde depolanır, bu nedenle de sıradan bir kullanıcı tarafından okunabilir değildir. Az önce bahsettiğimiz "Selamün Aleyküm, Dünya!" ifadesi bilgisayarda bu şekilde depolanmaz, daha verimli bir şekilde depolanması için Binary (İkili) sistemde depolanır. Binary (İkili) sisteme daha sonraki bölümlerde daha sonra değineceğiz.
RAM (Random Access Memory)
Tüm bilgisayarlar RAM (Random Access Memory) olarak adlandırılan programınızın verileri geçici olarak depoladığı bir belleğe sahiptir. Burada şu ifadeye dikkat etmenizi istiyorum geçici olarak depolanan veri, peki nedir bu geçici olarak depolanan veri? Geçici veriler kısaca, program veya bilgisayar çalıştırıldığı sırada bellekte depolanan veridir; bilgisayar veya program kapatıldığında kaybolur.
Evet verileri ve verilerin depolandığı belleği kısaca anladığımıza göre şimdi değişkenlere geçme vakti gelmiştir diye düşünüyorum.
Değişkenler
Bir değişken oluşturduğumuz zaman bellekte bir yer ayırtmış oluruz. Değişkene atadığımız her değer bellekte ayırtılan bu yerde depolanmış olur. Örneğin int veri türünde bir X değeri tanımlamış olduğumuz zaman bellekte X değişkeni için yer ayırtılır ve X değişkeninin değeri burada depolanır. Unutmayın, değişken sadece bellekte ayırtılan konuma verilen isimdir. Örneğin ben X adında bir değişken tanımlıyorum ve bu değişkene 15 değerini veriyorum:
C++:
int X = 15;
Scope of Variables (Değişkenlerin Kapsamı)
Tüm değişkenlerin kapsama alanı ve depolama sınıfı olarak 2 adet özniteliği vardır. Kapsama alanı kısaca bir değişkenin geçerli olduğu alandır. Genellikle Local veya Global değişkenleri bilmeyen insanlar programlarında Global değişkenleri kullanırlar. Peki nedir bu global değişkenler? Tüm fonksiyonların dışında tanımlanan değişkenlere Global Variables (Global Değişkenler) denir. Bu tür değişkenler tanımlandıktan sonra programın her yerinde kullanılır. Genellikle Global değişkenler programın başlarında tanımlanır. Global değişkenleri fonksiyonların dışında tanımlarız, programların her yerinden erişebiliriz veya güncelleyebiliriz.
C++:
#include<iostream>
using namespace std;
// Global Değişken
int X = 5;
// main Fonksiyonu
int main()
{
int X = 2;
cout << X << endl;
}
C++:
#include<iostream>
using namespace std;
void fonksiyon(){
// Local Variable
int age = 15;
cout << age;
}
int main()
{
cout << "Age is: ";
fonksiyon();
}
C++:
#include<iostream>
using namespace std;
// Global Değişken
int X = 5;
// main Fonksiyonu
int main()
{
cout << X << endl;
}
Data Types (Veri Tipleri)
Değişkenlerin bellekte bir yer ayırdığını ve bu yerde çeşitli değerler depoladığını öğrendik. Aslında bu üzerinde durulması gereken biraz ayrıntılı bir konu ama ileriki bölümlerde buna da değineceğiz. Bir veri tipi kısaca değişkene ne tür bir veri depolayacağını söyler. Örneğin az önce int veri tipinde bir değişken tanımlamıştık. Bu değişken sadece tam sayıları depolayabilir çünkü veri tipi integer (Tam Sayı). Tabii ki C++ programlama dilinde sadece int veri tipi yok.
Primitive Data Types (İlkel Veri Tipleri)
- Integer Data Type
- Float Data Type
- Double Data Type
- Char Data Type
- Bool Data Type
- Void Data Type
Tek Satırda Birden Çok Değişken Tanımlama
C++ programlama dili tek bir satırda birden çok değişken tanımlamamıza izin verir. Aşağıda ki kodu bir inceleyelim isterseniz:
C++:
int a;
int b;
C++:
int a, b;
C++:
int a, int b; // yanlış
int a, b; // doğru
Değişken Adlandırma Kuralları
- Bir değişken isminde sadece harfleri, sayıları ve alt çizgiyi barındırabilir. Özel karakter veya Türkçe karakter kullanmayın.
- Bir değişken ismi sayı ile başlayamaz.
- Değişken isimleri büyük harf ile başlamamalıdır (Öneri).
- Bir değişken ismi alt çizgi "_" ile başlayabilir ama bu kullanım pek tavsiye edilmez.
- Değişken isimlendirirken C++ programlama dilinde yer alan anahtar kelimelerden biri kullanılamaz. Örneğin burada int bir anahtar kelimedir ve bunu değişkeninize isim olarak vermezsiniz.
- Değişkenlere anlamlı isimler vermeye çalışınız (Öneri)
Bir değişkene "=" operatörünü kullanarak (Operatör konusuna daha sonra değineceğim) değer atayabilirsiniz.
C++:
// X adında bir değişken tanımlıyoruz
int X;
// Değişkene bir değer atıyoruz
X = 10
artık X değişkeninin değeri 10
C++:
// X adında bir değişken tanımlıyoruz
int X;
// Değişkene bir değer atıyoruz
X = 10;
cout << X;
// 10 Çıktısını verecek
// Değişkene tekrar bir değer atıyoruz
X = 15;
cout << X;
// 15 Çıktısını verecek
Atamanın ciddi bir dezavantajı vardır, bir değişkene değer atayabilmek için ilk olarak bir değişken tanımlamanız daha sonra ise bu değişkene bir değer atamanız gerekir. Yani en az 2 ifade girmeniz gerekir ama tek bir ifade de işimizi halladebilecekken neden iki ifade satırı ile uğraşalım ki? Bunun iki yolunu size göstereyim:
C++:
#include <iostream>
using namespace std;
int main()
{
// İlk yol
int x(6);
// İkinci yol
int y = 6;
cout << x;
cout << y;
}
Evet, bu bölümde C++ programlama dilinde değişkenlere, verilere ve belleğe kısaca değindik. Umarım sizin içinde bilgilendirici bir bölüm olmuştur. Bir sonraki bölümde görüşmek üzere...