ASP.NET C# C/C++ Genel HTML/CSS Java JS/Ajax PHP XML Forum

C++ Ders 2: Değişkenler ve Veri Türleri

C++ Ders 2: Değişkenler ve Veri Türleri

Merhaba arkadaşlar,

Önceki dersimizde "Merhaba Dünya" uygulamasını yazdık beraber. Fakat bununla beraber aklınızda bir soru oluştur. Sadece ekrana "Merhaba Dünya" yazdırmak için satırlarca kod yazdık, bunu derledik ve sonra çalıştırdık. Halbuki bunu elinizle 5 saniyede yazabilirdiniz. Fakat programlama sadece bununla sınırlı değil. İyi bir program yazdığınızda bir çok işinizi daha rahat, güvenilir ve hızlı bir şekilde gerçekleştirebilirsiniz. Fakat iyi bir program yazmadan önce değişkenler hakkında bilgi sahibi olmalısınız.

Şimdi aklınızda 5 sayısını tutun, daha sonra 2 sayısını da tutun. Şu anda hafızanızda iki farklı sayı var Şimdi sizden ilk tuttuğunuz sayıya 1 eklemenizi istiyorum. Daha sonra aklınızdaki sayılar 6(5+1) ve 2 olacaktır. Şimdi ise bu değerleri birbirinden çıkarın ve sonuç olarak 4'ü elde edin.

Siz bu işlemleri tamamen aklınızdan yaptınız. Aynı işlemler C++ ile aşağıdaki gibi yapılabilirdi:

a = 5;
b = 2;
a = a + 1;
sonuc = a - b;

Açıkca gördüğünüz gibi çok basit bir işlemdi, çünkü çok basit iki sayı kullandık. Fakat düşünün ki bilgisayarınız milyonlarca sayıyı aklında tutuyor ve bunların hepsiyle birden matematiksel işlemler yapabiliyor.

Kesin elde edilmiş bir değer bir değişkene atayarak bunu hafızanın bir kısmında saklayabiliriz.

Her değişken bir tanımlayıcıya ihtiyaç duyar, diğer değişkenlerden ayırt edilmek için. Örneğin, önceki kodda değişken tanımlayıcılarımız a,b ve sonuc'du. Bu değişkenleri istediğimiz şekilde daha uzun biçimlerde tanımlayabilirdik. Fakat değişken tanımlayıcılarınında bir kuralları var. Şimdi onlara biraz göz atalım.

Tanımlayıcılar
Doğru bir tanımlayıcı bir veya daha fazla harf, rakam veya alttan tire(_) karakterini içerir. Boşluk veya diğer noktalama işaretleri tanımlayıcının bir parçası olamaz. Sadece harfler, rakamlar ve alttan tire geçerli karakterlerdendir. Ayrıca değişken tanımlayıcıları her zaman harf ile başlamak zorundadırlar. Ayrıca alttan tire(_) ile de başlayabilirler fakat bu tanımlamalarda değişken derleyici programın bir değişkeni ile çakışabilir bu nedenle alttan tire ile başlayarak değişken tanımlamak pek önerilmemektedir. Hiç bir şekilde rakamla başlayamaz.

Ayrıca dikkat etmeniz gereken bir kural daha var ki hep dikkatlerden kaçar. Derleyicinin veya C++'ın kendi tanımlayıcılarını kullanmamaya dikkat edin. Bunlar zaten kullanılmış tanımlayıcılardır. Bu tanımlayıcılar:
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

Çok Önemli: C++ harf duyarlı bir dildir. Bu küçük harflerle yazılmış bir değişken tanımlayıcınız büyük harflerle yazılmış olandan farklıdır. Önceki örnekte sonuc ile bize 4 sonucunu verecekken Sesult ile bize herhangi bir sonuç vermez çünkü böyle bir değişken tanımlı değil.

Temel veri türlü
Programla yaparken bazı değişkenleri bilgisayarın hafızasında saklamamız gerekebilir ve bilgisayar bizim ne tür bir veriyi saklamak istediğimizi öğrenmelidir ki hafızasında ona göre bir yer açsın. Çünkü, basit bir rakamın veya bir harfin veya büyük bir sayının hafızada tutacağı yerler çok farklıdır.

Aşağıdaki tabloda C++'da yer alan temel veri türleri ve bunların aralıklarını göreceksiniz:

AdAçıklamaBoyutAralık
char Karakter veya küçük tamsayı 1byte işaretli: -128 de 127 ye
işaretsiz: 0 dan 255 e
short int (short) Kısa tamsayı 2bytes işaretli: -32768 de 32767 ye
işaretsiz: 0 dan 65535 e
int Tamsayı 4bytes işaretli: -2147483648 den 2147483647 ye
işaretsiz: 0 dan 4294967295 e
long int (long) Uzun tamsayı 4bytes işaretli: -2147483648 den 2147483647 ye
işaretsiz: 0 dan 4294967295 e
bool Boolean - Bu sadece TRUE veya FALSE olabilir 1byte true veya false
float Ondalıklı sayılar 4bytes +/- 3.4e +/- 38 (~7 basamak)
double Hassas ondalıklı sayılar 8bytes +/- 1.7e +/- 308 (~15 basamak)
long double Uzun hassas ondalıklı sayılar 8bytes +/- 1.7e +/- 308 (~15 karakter)
wchar_t Geniş karakter 2 veya 4 bytes 1 geniş karakter

Değişlerin tanımlanması
C++'da değişken kullanmak istiyorsak öncelikle bu değişkenin türünü tanımlamamız gerekmektedir. Örnek:

int a;
float ondaliklisayi;

Bunlar iki tane geçerli değişken tanımlamasıdır. İlk a tanımlayıcısı ile bir tamsayı değişkeni tanımlamaktadır. İkincisi ise ondaliklisayi tanımlayıcısı ile bir rasyonel tamsayı değişkeni tanımlamaktadır.

Aynı türde birden fazla değişken tanımlamak isterseniz değişken türünü yazdıktan sonra diğer değişken adlarını virgülle ayırarak aynı satırda tanımlamayı yapabilirsiniz.

int a, b, c;

Bu şekilde a, b ve c değişkenlerinin birer tamsayı olduğunu tanımladınız. Aşağıdaki çalışma şekliyle aynı şekilde çalışır:

int a;
int b;
int c;

Tamsayı değişkenlerde işaretli ve işaretsizin anlamını merak edenler vardır. Yukarıdaki tabloda anlaşılmamış olabilir. İşaretli dediğimiz türlerde tanımlanan değişkenler negatif(eksi) değerler alabilir. Eğer veri türünü belirlerken işaretli veya işaretsiz olduğunuz belirlemezsek bir çok derleyici program varsayılan olarak işaretli olarak kabul eder ve o şekilde işleme sokar belirlediğini veri türünü.

shot int ve long int veri türleri yerine daha kısa olması amacıyla sadece short ve long kullanabilirsiniz:

short Yil;
short int Yil;

Şimdi değişken tanımlama bir program yazılırken nasıl görünüyormuş bir bakalım:

// değişkenlerle işlemler

#include <iostream>
using namespace std;

int main ()
{
  // değişkenleri tanımlama
  int a, b;
  int sonuc;

  // islemler:
  a = 5;
  b = 2;
  a = a + 1;
  sonuc= a - b;

  // sonuc'u ekrana basalım:
  cout << sonuc;

  // programı sonlandıralım;
  return 0;
}
4

Değişkenlerin tanımlanması
Değişkenleri biraz daha farklı biçimlerde tanımlayabiliriz. Bir değişkeni tanımladığımız onun herhangi bir değerli olmaz. Fakat değişkeni tanımladığınız anda ona bir de değer vermek isteyebilirsiniz. C++'da bunu yapabilmeniz için iki yöntem var:

tur tanimlayici = deger; buna örnek olarak int a = 0; veya
tur tanimlayici(deger); buna örnek olaraksa int a(0); verilebilir. Şimdi bunlarla ilgili bir örnek verelim hemen:

#include <iostream>
using namespace std;

int main ()
{
  int a=5;               // değer = 5
  int b(2);              // değer = 2
  int sonuc;            // değer tanımlanmamış

  a = a + 3;
  sonuc= a - b;
  cout << sonuc;

  return 0;
}
6

Katarlara giriş
Değişkenler nümerik olmayan verileri de saklayabilirler ki bunlar katar olarak tanımlanan bir birden fazla alfanümerik karakterin yanyana gelmesiyle oluşmuş dizelerdir. Hemen basit bir örnek yapalım:

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

int main ()
{
  string katar = "ilk cümlem";
  cout << katar;
  return 0;
}
ilk cümlem

Değişkenler ve veri türleri ile benim anlatacaklarım bu kadar. Saat sabah 6:10. Bu nedenle hatalarım olabilir. Lütfen kusuruma bakmayın.
Umarım faydalı olur, kolay gelsin




C++ Ders 1: Bir programın yapısı

C++ Ders 1: Bir programın yapısı

Merhaba arkadaşlar,

Hep beraber C++ dilini öğrenelim dedim ve kendim öğrenirken sizlere de yazmak istedim. Umarım faydalı olur. Bu dersimizde C++'ın genel olarak yapısını inceleyeceğiz. Bende Sizinle beraber öğreniyorum bu dili.. Şimdiden hayırlı olsun, fakat ders paylaşım sıklığı hakkında size net bir bilgi ne yazık ki veremiyorum. Bazen gecikmeler yaşanabilir. Başlayalım..

Bir programlama dilini öğrenmenin en iyi yolu bir program yazmaktır. İşte burada ilk programımızı yazalım:

// C++ ile yazdığımız ilk programımız

#include 
using namespace std;

int main()
{
	cout<<"Merhaba Dünya!";
	return 0;
}
Merhaba Dünya!

İlk sütun(soldaki) ilk programımızın kaynak kodunu göstermektedir. İkincisi ise(sağdaki) programımız derlenip çalıştırıldıktan sonraki sonucu göstermektedir.

Bir programı düzenleyip derlemek bilgisayarınızın sistemine göre değişiklik gösterebilir. Kullandığınız geliştirme arayüzüne veya onun sürümüne bağlı olarak değişiklik gösterebilir.

Yukarıdaki program bir programlama dilini öğrenmeye yeni başlayanlar için alışılmış bir yazıyı yani "Merhaba Dünya!" yazısının ekrana basılmasını sağlar. Bu C++ ile yazılabilecek en basit programdır fakat bu program bile bütün C++ programlarında kullanılan temel bileşenlere sahip. Şimdi satır satır yazdığımız kodları inceleyelim:

// C++ ile yazdığımız ilk programımız

Bu bir yorum satırıdır. Çift slaş(//) işareti ile başlayan satırlar yorum olarak algılanır ve programın çalışmasında hiç bir etkisi yoktur. Programlamayı yaparken programlarımızın, fonksiyonlarımızın ne işe yaradıklarını bu satırlar ile rahatlıkça anlayabiliriz.

#include

Diyez işareti(#) ile başlayan satırlar önişlemci için talimatları içerir. Bunlar ifadelerden oluşan basit kod satırları değildir ama derleyicinin önişlemcisi için birer göstergedir. #include talimatı önişlemciye iostream standar dosyasını eklemesini söyler. Bu dosya(iostream) basit ve standart giriş-çıkış kütüphanelerinin tanımlandığı dosyadır ve bunu dosyalarımıza ekleriz çünkü programımızda kullanacağımız bir takım işlemler bu dosya da tanımlanır.

using namespace std;

C++ kütüphanesi bütün elemanları namespace denilen ve std adında tanımlanmıştır. Bu satır çok sık kullanılır ve bu derslerde de birçok kaynak kodda kullanılacaktır.

int main()

Bu satır ana fonksiyonun tanımlandığı yerin başlangıcıdır. Ana fonksiyon C++ programlarında işleyişi yöneten fonksiyon diyebiliriz. Program çalıştırıldığın bu fonksiyon dikkate alınır. Bundan başka farklı bir isimle önce yada sonra başka bir fonksiyon yazılması sorun değil. Önemli olan main() fonksiyonunun tanımlanıp tanımlanmadığıdır. Her C++ programı main() fonksiyonuna sahip olmalıdır. main kelimesini bir çift parantez takip eder. Bunun sebebi fonksiyonların tanımından kaynaklanmaktadır. Parantezlerden sonra küme parantezi dediğimiz işaretleri görürüz({}). Fonksiyonlar bu iki işaret arasında tanımlanır. 

cout<<"Merhaba Dünya!";

Bu satır C++'daki kod demecidir. Kod demeci tek satırlık veya bir kaç satırlık ifadelerden oluşabilir.

cout ekrana çıktı almamızı sağlayan bir komuttur. Sayfanın başında eklediğimiz iostream dosyasında tanımlanmıştır.

Dikkat edin kod demeci noktalı virgül(;) ile bitiyor. C++ programlarımızda bütün ifadelerimizin sonuna bu işareti koymalıyız. Bu derleyiciye o satırın, kodlama ifadesinin sonu olduğunu belirtiyor ve söz dizimi(syntax) hatalarının genellik çoğunluğu bu işaretin unutlmasından kaynaklanmaktadır.

return 0;

return ifadesi ana fonksiyonun bitmesini sağlar. Return belki farklı bir sayısal ifade ilede bitebilirdi ama biz sıfır ile bitirdi.

C++ programımızda her kodlama ifademizi alt alta yazmak zorunda değiliz. Yani:

// C++ ile yazdığımız ilk programımız

#include 
using namespace std;

int main()
{
	cout<<"Merhaba Dünya!";
	return 0;
}

Yerine

int main() { cout<<"Merhaba Dünya!"; return 0; }

Şeklinde de yazabilirdir. Bu program iki şekilde de birebir aynı şekilde çalışacaktır.

C++'da ifadeler arasında ayrım noktalı virgül(;) ile yapılmaktadır, bu sayede her ifadenin ayrı bir işlemi gerçekleştirdiğini derleyiciye bildirmiş oluyoruz. Programımızda kullandığımız her ifadeyi ayrı satıra veya hepsini bir satıra yazabiliriz. Fakat daha sonra dönüp kontrol edeceğiniz zaman tek satır olarak yazdıklarınız büyük bir sıkıntı oluşturabilir. Fakat ayrı ayrı yazmak hem şematik hem de incelemesi daha kolay bir hale getirir kodlarınız.

Şimdi ilk programımıza bir satır daha ekleyelim:

// C++ ile yazdığımız ilk programımız

#include 
using namespace std;

int main()
{
	cout<<"Merhaba Dünya!";
	cout<<"Bu ilk C++ programımız";
	return 0;
}
Merhaba Dünya! Bu ilk C++ programımız

Bu işlemde iki tane cout kullandık ve iki ayrı satırda. Tekrar etmek gerekirse farklı satırları ayırmak için boşluk kullanmamız okunabilirliği muhteşem arttırdı. Yani main fonksiyonumuz şu şekilde de yazılabilirdi:

int main(){ cout<<"Merhaba Dünya!"; cout<<"Bu ilk C++ programımız"; return 0; }

Ayrıca daha anlaşılabilir olduğunu düşünürsek kodlarımızı daha fazla satırlara da ayırabiliriz:

// C++ ile yazdığımız ilk programımız

#include 
using namespace std;

int main()
{
	cout<<
		"Merhaba Dünya!";
	cout
		<<"Bu ilk C++ programımız";
	return 0;
}

Ve sonuç önceki örnek ile birebir aynı olacaktır.

Önişlemci talimatları(# ile başlayanlar) bu kuralın dışındadır. Ve asla noktalı virgül(;) ile bitmezler.

Yorumlar

Yorumlar derleyicinin görmezden geldiği satırlardır. Siz kod bloğunuz hakkında bilgi vermekten başka hiçbir işe yaramazlar. Programcıya sadece bilgi vermek için yine programcı tarafından eklenir. C++ iki farklı yorum satırını desteklemektedir:

// Tek satırlı yorum
/* Çok satırlı yorum */

İlk satırdaki çift slaş(//) hazırlanmış olan yorum satırı sadece tek satır için geçerli olur. İkincisinde ise /* işareti ile */ işareti arasında yer alan bütün yazılar yorum olarak algılanır.

Şimdi en son hazırladığımız programımıza yorum satırlarını ekleyelim:

/* C++ ile yazdığımız ilk programımız
	artık birden fazla yorum satırı ile beraber */

#include 
using namespace std;

int main()
{
	cout<<"Merhaba Dünya!"; // Merhaba Dünya! yazdırır
	cout<<"Bu ilk C++ programımız"; // Bu ilk C++ programımız yazdırır
	return 0;
}
Merhaba Dünya! Bu ilk C++ programımız

İlk dersimiz bu kadar arkadaşlar. Herkese iyi günler dilerim, kolay gelsin.











RSSTwitter

En son yazılanlardan ilk senin haberin olsun


Valid HTML 5 Valid CSS!

Güncel Programlama Makaleleri by TR Kodlama © 2009 is licensed under a Creative Commons Alıntı-TicariOlmayan 3.0 Unported License.