C++ Programlama Diline Giriş

0

1-Merhaba C++:

Bütün programlama dillerinde olduğu gibi C++ dilinde de belirli bir yapı vardır ve kendisine özel bazı kurallar bulunmaktadır. İnceleyelim.

Programlama hakkında daha önceden hiç bir bilgiye sahip değilseniz, bu ilk örnek size karmaşık gelecektir. Ancak merak etmeyin zamanla kafanıza oturur mutlaka.

Her programlama dilinde olduğu gibi bizde ilk örneğimizi “Merhaba Dünya” ile yapalım. Öncelikle Visual Studio programımız aracılığıyla bir C++ uygulaması açıyoruz.

#intclude “stadfx.h”

#include <iostream>

 

int main () {

      std::cout << “Merhaba Dunya”;

     return 0;

}

Bu kodları yazdıktan sonra programımızı .cpp uzantısı ile kaydediyoruz. Böylece derleyici, programın bir C++ programı olduğunu algılamış oluyor. Ardından Ctrl-F5 kombinasyonu ile programımızı otomatik olarak çalıştırabiliyoruz.

Merhaba dünya programı, aslında çok basit bir programdır. Ve bütün C++ programlarının sahip olduğu temel bileşenleri içerisinde barındırır. Temel bileşenleri tek tek açıklayalım.


2- /*…*/ Ve //… İfadeleri:

Kod bloğumuzda görülen /*…*/ ve //… ifadeleri ile programımıza yorum ekleyebiliyoruz. Aralarındaki fark ise /*…*/ ifadeleri arasında çok satırdan oluşan yorumlar yapabiliyorken, //… ifadesi ile sadece tek satırdan oluşan yorumlar yapabiliyoruz. Unutulmamalıdır ki; yorum satırları, programın derlenmesi aşamasında hiçbir işleme tabi tutulmazlar. Yani derleyici yorum satırlarını görmezden gelir.


3-Yorum Satırları Kullanmanın Önemi:

10 bin satırlık bir program kodu yazdığınızı düşünün. 1 yıl sonra bu programı açtığınızda hangi kodu hangi amaçla kullandığınızı unutabilirsiniz. Veya bir iş yerinde patronunuzun sizden bir program yazmanızı istediğini düşünün. Programı yazıp patronunuza götürdünüz. Eğer programın belirli yerlerinde açıklayıcı yorum satırları yazmazsanız patronunuzun bu programı anlaması zorlaşacaktır. Bu nedenle gerektiği yerlerde yorum satırları yazıp o bölüm ile ilgili açıklayıcı bilgiler yazmak, programın okunabilirliğini ve anlaşılabilirliğini arttıracaktır.

➡ #include “stdafx.h”  : Programcıların daha hızlı çalışabilmesi ve daha önceden derlenmiş kütüphane dosyalarının programa eklenmesini sağlar.

➡ #include <iostream>  : Diez (#) işareti ile başlayan satırlar, önişlemci emir kodlarıdır. Bu önişlemci emir kodları, bir kaynak dosyasının programa dahil edilmesini sağlamaktadır. Bu dosyalara başlık dosyaları denir.

 Programımızın içerisinde bazı kodları kullanabilmek için bu başlık dosyalarının işlevlerine göre programa dahil etmek gerekir. “cout” ifadesini kullanabilmek için programa <isotream> (standart giriş-çıkış kütüphanesi) eklememiz  gerekir. Eklemediğimiz taktirde programımız “cout” ifadesini kullanmamıza izin vermeyecektir.

➡ int main() {}  : Her C++ programı bir main fonksiyonu bulundurmak zorundadır. Yani C++’ın ana fonksiyonudur. Main fonksiyonu, tüm C++ programlarının çalıştırılmaya başlandığı noktadır. Main’den önce gelen ifade fonksiyonun döndüreceği değerin türünü belirler ve bu örnekteki “int” ifadesi, fonksiyonun tamsayı bir değer döndüreceğini belirtir. Main’den hemen sonra gelen “()” parantez ifadeleri bir fonksiyon tanımlanırken yazılması zorunlu olan bir ifadedir. Açılıp kapanan süslü parantez “{}” ise  fonksiyonları açarken ve kaparken kullanılır. Eksikliğinde, programın derlenmesi esnasında hata ile karşılaşılır. 

➡ std::cout<< “Merhaba Dunya”;   :  “cout” ve “<<” ifadeleri kendilerinden sonra yazdığımız ifadeyi ekrana göstermeyi sağlar. Eğer yazdığımız ifade yazı dizisi ise tırnaklar “” içerisinde olmalıdır. Yazdığımız ifade sadece sayı ise “” ifadeleri kullanılmamalıdır.

Bu kod satırında görüldüğü gibi bütün C++ deyimleri noktalı virgül(;) ile bitmektedir. Bu ifadeyi kullanarak deyimin sonuna geldiğimizi programa bildirmiş oluruz.

cout’dan önce kullanılan “std::” ifadesi ile programımızdan cout ifadesini kullanabilmek için izin istiyoruz. Aklınıza şöyle bir soru gelebilir. Eğer ki bir program içerisinde 10 kere cout ile ekrana bir şey yazdırıyorsak, 10 kere std:: ifadesini mi kullanacağız? Tabi ki hayır. İleride örnekler verdiğimde daha kısa bir yapıyı göreceğiz.

➡ return 0;  : Görevi fonksiyonu bitirmektir. Programımızı çalıştırdığımız zaman yukarıdan aşağıya doğru bütün satırlar tek tek çalıştırılacaktır. Merhaba Dünya yazısını görmek üzereyken, hemen bir alt satıra inip “return 0” ifadesini çalıştıracağı için Merhaba Dünya yazısını göremeyeceğiz. Çünkü program “return 0” ifadesini görür görmez sonlandırılacaktır.

ÖRNEK

Merhaba Dünya yazısını alt alta yazınız.

#include “stdafx.h”

#include <iostream>

using namespace std;

int main() {

      cout << “Merhaba\nDunya”;

      system(“PAUSE”);

      return 0;

}

Bu örnekte görüldüğü gibi bir önceki örnekte kullandığımız temel bileşenlerin bir kısmını tekrar kullandık. Fakat ek olarak başka ifadeler de kullandık.

➡ using namespace std;   : “using namespace std;” ifadesi std isim alanının kullanımının programa dahil edildiğini söyler. Böylece “cout” ve “cin” gibi ifadelerden önce “std::” ifadesini kullanmaya gerek kalmaz. Örnektede görüldüğü gibi “cout” ifadesini direk yazdık. Bundan sonraki örneklerimizde de “using namespace std;” ifadesini direk yazacağız.

➡ cout << “Merhaba\nDunya”;   : “\ “ifadesi çıkış ifadesidir. Ve aşağıda vereceğim ifadelerden önce kullanılırsa program o kısmı yok sayar. Burada n harfi imlecin bir alt satıra ineceğini belirtir.

➡ system(“PAUSE”)  : En baştaki örneğimizde programımızı yazmıştık, ancak çalıştırdığımızda ekranda görememiştik. İşte buradaki ifade programımızın klavyeden bir tuşa basana kadar ekranda kalmasını sağlar. Bütün bunlardan sonra programımızı çalıştırdığımızda karşımıza şöyle bir çıktı gelecektir.

Merhaba

DunyaDevam etmek için bir tuşa basın . . .

   İlk örneğe system(“PAUSE”) ifadesini yazıp çalıştırdığımızda ekranda “Merhaba Dunya” çıktısını görürüz. Ancak bu programda görüldüğü gibi Merhaba ve Dunya kelimeleri alt alta yazılmıştır. İşte bunu sağlayan az önce de belirttiğim gibi \n ifadesidir. \n ifadesini bir çok şekilde kullanabiliriz. Örneğin; programımız içerisinde;

cout <<“Oku\nİzle\nOgren”;

yazdığımızı varsayalım. Bu durumda Oku, İzle ve Ogren kelimeleri aşağıdaki gibi alt alta gelecektir. Çünkü \n ifadesi, kendisinden sonraki kısmın bir alt satıra geçmesini sağlar.

Oku

İzle

OgrenDevam etmek için bir tuşa basın . . .

• \t ifadesi kendisinden sonra gelen ifadenin bir Tab boyutu kadar ileri gitmesini sağlar.

• \r ifadesinde imleç, yeni yazılan yazının sol başına konumlanmasını sağlar.

• \a ifadesi uyarı verilmesini sağlar. Kendi başımıza bir örnek yazıp araya \a ifadesini yazarsak bip sesini duyarız.

Bir alt satıra geçebilmek sadece \n ifadesi ile olmaz. Satır sonu anlamına gelen “endl”, yani end line ifadesi ile de bir alt satıra inebiliriz. Örneğin;

cout<<“C++<<endl<<“Programlama Dili”;

kodunu program içine yazdığımızı varsayalım.

C++

Programlama DiliDevam etmek için bir tuşa basın…

Bu durumda yukarıdaki yeşil yer gibi bir çıktı elde ederiz. Görüldüğü gibi \n ve endl ifadeleri aynı işlevi yapmaktadır. Tek farkları, \n ifadesini tırnaklar “” içerisinde yazarız.

İfadeler Açıklama
\n Yazıldığı kısımdan sonraki kısmın bir alt satırda gözükmesini sağlar.
\t Yazıldığı kısımdan sonraki kısmın bir Tab boyutu kadar ileri gitmesini sağlar.
\r İmlecin yeni yazılan yazının sol başına konumlanmasını sağlar.
\a Program çalışırken bu ifadeye gelince bip sesi duymanızı sağlar.
\\ Yazıldığı yere \ karakterini yazmanızı sağlar.
\” Yazıldığı yere ” karakterini yazmanızı sağlar.

4-Değişkenler:

Her programlama dilinde olduğu gibi C++ dilinde de program içerisinde üretilen değerleri geçici olarak saklamak amacı ile değişkenler kullanılır. Tüm değişkenler kullanılmadan önce kod kısmında mutlaka bildirilmelidir. (Programlar her ne kadar hızlı olsalar da dediğimizi anlayacak kadar zeki değillerdir.) İşte bu bildirimi yaparken değişkenlerin veri türünü belirlememiz gerekmektedir. İşe C++’daki bu veri türlerinden bahsederek başlayayım.

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

İşaretsiz: 0 ile 255 arasında

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

İşaretsiz: 0 ile 65535 arasında

int Tamsayı 4byte İşaretli: short ve long için değişir
long Uzun Tamsayı 4byte İşaretli: -2147483648 ile +2177483647 arasında

İşaretsiz: 0 ile 65535 arasında

bool True yada False 2byte Doğru ya da Yanlış
double Uzun Ondalıklı Sayı 8byte 1.7e +/- 308 (15 basamak)
float Ondalıklı Sayı 4byte 3.4e +/- 38 (7 basamak)

Tabloda da görüldüğü gibi int, long, short, tamsayı veri türleri, float ve double kesirli veri türlerini, char ise karakter veri türlerini, bool ise sonucu doğru yada yanlış olan veri türlerini ifade eder.


5-Değişken Tanımlama

Formül: (değişken tipi) (değişken adı);

Örneğin;

int yas;

float fiyat; 

char harf;

şeklinde tanımlamamızı yapıyoruz. Fakat gördüğünüz gibi örnek olsun diye verdiğim değişken tanımlamalarının hiçbirinde değer bulunmamaktadır. Değişkenlerimize başlangıç değeri de atayabiliyoruz.

Formül: (Değişken tipi) (değişken adı) = (sonuç)

Örneğin;

int yas=21; 

float fiyat=15.45;

char harf=a;

şeklinde değişkenlere başlangıç değeri verebiliyoruz.

Programımız içerisinde 2 tane int değişken tanımlayacağımızı varsayalım. Bu durumda da şöyle bir yol izlemeliyiz.

int sayi1, sayi2;

int sayi1=21, sayi2=45;   //başlangıç değeri alınmış hali

Bu şekilde hepsini bir arada yapabiliriz. Böylece gereksiz yere programımızı uzatmamış oluruz.


6-Değişken İsimlendirme Kuralları

• C++, büyük küçük harflere karşı duyarlıdır.

               Örneğin; char harf; ifadesi ile char HARF; ifadesi farklı değişkenleri ifade etmektedir. Bu yüzden büyük küçük yazımlarınıza dikkat etmelisiniz.

• Değişkenler adlandırılırken mutlaka bir harf ile başlamalıyız. 1, 2, 3 gibi nümerik ifadeler ve _ (alt çizgi) dışında özel karakterler kullanmalıyız.

ÖRNEK

int _sayi;        DOĞRU

int yas;            DOĞRU

char ??harf;    YANLIŞ

char &ad;        YANLIŞ

• Değişken ismi en fazla 255 karakter olmalıdır.

• Değişken ismi eğer 2 kelimeden oluşuyorsa boşluk yerine _ (alt çizgi) kullanılabilir.

ÖRNEK

int dogum tarihi;   YANLIŞ

int dogum_tarihi;   DOĞRU

int dogumtarihi;    DOĞRU

• Değişken ismi verirken C++ diline özel anahtar sözcükleri kullanmayınız. Eğer bunlardan birini kullanırsak hata ile karşılaşırız.

C++ Diline Özel Anahtar Sözcükler

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 protect
signed sizeof static static_cast struct switch template
this throw true try typedef typeid typname
union unsigned using virtual virtual void while

7-Değişken Türü

1.Yerel Değişkenler

2. Gobal Değişkenler

3. Static Değişkenler

değişken bildiriminin fonksiyon içinde veya dışında yapılası değişik sonuçlara neden olabilir. Bir değişkenin bildirimi fonksiyon içinde yapılırsa, bildirim sadece o fonksiyon için geçerlidir. Bildirimi fonksiyon içerisinde yapılan değişikliklere yerel değişkenler denir.

//…

int main(){

   int a=10;   /*main fonksiyonunun yerel değişkenidir. Başka bir fonksiyon içinde bu değişken değeri kullanılmaz*/

}

…//

Eğer değişkenin bildirimi tüm fonksiyonlar için geçerli olacaksa, değişkenin bildirimi fonksiyonların dışında yapılır. Bu değişkenlere global değişkenler denir.

//…

char harf=’A’;//global değişken

int main(){

   int sayi;//yerel değişken

   cout<<harf;   /*görüldüğü gibi main fonksiyonunun dışında global olarak tanımladığımız harf değişkenini, global olduğu için main fonksiyonunun içinde kullanabildik.*/

   system(“PAUSE”);

   return 0;

}

…//

Yerel olarak tanımlanmış bir değişken, bulunduğu fonksiyon çarpıştırılıp bittikten sonra kendisi için ayrılan bellek bölgesini boşaltır. Aynı fonksiyon yeniden yürütüldüğünde değişkenin değeri son değer ile aynı olmaz. Eğer biz fonksiyonun içinde bildirimini yaptığımız değişkenin değerinin, program çalıştığı sürece fonksiyon tekrar tekrar çağrıldığında değişmesini istiyorsak static değişken kullanmalıyız.

//…

int main(){

   static int sayi=5; //static değişken

}

…//


8-Sabitler

Programın çalışması sürecinde değişmeyecek olan değerlerin saklanması için kullanılırlar. “const” ile ifade edilirler. Şimdi dairenin alanını hesaplayan bir örnek yapalım. Örnekte kullanacağımız pi=3,14 değerini sabit olarak tanımlayalım.

#include”stdafx.h”

#include<iostream>

using namespace std;

int main(){

   double const pi=3.14;

   int r;

   cout <<“yarıçapı girin:”;

   cin>>r;

   cout <<“\nAlan=” <<pi*r*r;

   system(“PAUSE”);

   return 0;

}

Bu örnekte problemin çözümünde gerekli olan pi sayısı bir sabittir. Sabit olması nedeniyle tanımını const olarak yaptık. Program içerisinde pi değişkeninin değerini hiç bir şekilde değiştiremeyiz.

NOT:  (veri türü) const (değişken ismi) şeklinde (örneğin; double const pi=3.14) bir tanımlama yaparsak; program içerisinde bu değişkenin değerini değiştiremeyiz. Eğer const (veri türü) (değişken ismi) şeklinde (örneğin; const double pi=3.14) gibi bir tanımlama yaparsak, bu sefer de program içerisinde pi değişkeninin veri türünü değiştiremeyiz. Örneğin; double veri türünü int yapamayız.

ÖRNEK

Kullanıcılardan 2 sayı girmesini isteyin. Daha sonra bu sayıları toplayıp ekranda gösterin.

#include “stdafx.h”

#include<iostream>

using namespace std;

int main(){

   int sayi1,sayi2;

   cout<<“Birinci Sayıyı Giriniz:”;

   cin>>sayil;

   

   cout<<“\n İkinci Sayıyı Giriniz:”;

   cin>>sayi2;

 

 cout<<“\nGirilen İki Sayının Toplamı:”<<sayi1+sayil2;

   system(“PAUSED”)

   retrun 0;

}


9-Cin>>

Klavyeden bir değer girmemiz isteniyorsa cin>> ifadesi kullanılır. Örnekte (hemen başlıktan önceki örnek) kullanıcıdan 1.sayıyı girmesi isteniyor. Bu durumda program, kullanıcı klavyeden bir değer girene kadar bekliyor. Klavyeden bir sayı girdiğimizde bu sayıyı sayi1 tamsayı değerimize aktarıyor. Daha sonra bir sonraki adıma geçiyor ve kullanıcılardan 2.sayıyı girmesini istiyor. Kullanıcı klavyeden yeni bir sayı giriyor. Ve girilen bu değer de sayi2 tamsayı değerine aktarılıyor. Daha sonra girilen iki sayıyı sayi1+sayi2 hesaplanması ile toplatıyor ve program son buluyor.

Nurefşan Doğan
En Son 3 Yazısı Aşağıdadır . . . (Tüm Yazılarını Görüntüle)
Share

CEVAP VER

Please enter your comment!
Please enter your name here