IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

1Beğeni(ler)
  • 1 Post By SeckiN

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 13 Temmuz 2013, 16:26   #1
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
C++ Özet (sıfırdan)




Bu döküman bir çok C++ dökümanından özetlenmiştir.

A) GİRİŞ:

Algoritma

C/C++ dilini ve komutlarını öğrenmek, programlamaya başlamak için şarttır ama algoritma oluşturamadığımız sürece bir program oluşturmazsınız.
Algoritma, mantıktır. Yani neyi, nasıl yapacağınızı belirtir. Algoritma türetmek için geliştirilmiş bir metot yok.
Her program için o metodu sizin bulmanız gerekiyor. Basit bir örnek üzerinden düşünelim. Bir markete gittiniz,
kasada ki görevliye aldığınız ürünü gösterdiniz, parayı uzattınız, paranın üstünü aldınız. Günlük hayatta gayet normal olan bu durumu
biraz değiştirelim. Karşınızda insan değil, elektronik bir kasiyer olsun. Ona göre bir algoritma geliştirirsek,
1-) Ürüne bak;
2-) Ürün Fiyatını bul;
3-) Parayı al;
4-) Alınan paradan ürün fiyatını çıkar;
5-) Kalan parayı ver.
gibi.

Temel Bilgiler:

Yorum Satırı

Kod satırını önemli veya unutmamazın gereken şeyleri bir nevi not almak için iki tane slah ( // ) kullanılır.
Böylece program bunları kod olarak algılamaz fakat siz not olarak görebilirsiniz.

Artırma-Azaltma
Form: Açıklama:
i++ İşlem sonrası arttırma
++i İşlem öncesi arttırma Genellikle döngülerde kullanılırlar.
i-- İşlem sonrası azaltma
--i İşlem öncesi azaltma

int --> tamsayı
float ve double --> ondalıklı sayı
char --> karakter

using namespace std;Bu bir isim uzayıdır. Tanımlamada kullanılır, gerekli bir koddur.

main( ){} Bu bizim ana fonksiyonumuzdur. Programda mutlaka olmalıdır.

cout << "..."; ekrana yazı yazdırmaya yarayan koddur.
Kullanım şekli:
cout << "Merhaba Dünya";

cin >> ... ; program bizden bir ifade girmemizi bekler/ister.
Kullanım şekli:
cin >> x; (x program içinde atadığımız değerdir. a, b, y gibi bir şey de olabilir.)

endl; ve "\\n" bir alt satıra inmek için yazılan kodlardır.
Kullanım şekli:

cout << "Merhaba Dunya" << endl << "Benim adim CyberEnes";

cout << "Merhaba Dunya \\n" << "Benim adim CyberEnes";
veya
cout << "Merhaba Dunya \\n Benim adim CyberEnes;

Dikkat:
Her çıkıştan (<<) sonra noktalı virgül kullanılmaz. Sadece en sonda kod bitince kullanılır.

getch();
return 0; Bu iki kod programın işlemler bittikten sonra ekranda kalmasını sağlar.


B) BAZI YAPILAR:

if-else Böyledir-değildir manasına gelir. if içerisindeki koşul sağlanıyorsa if’in süslü parantezindeki kodlar;
koşul sağlanmıyorsa else içerisindeki süslü parantezdeki kodlar devreye girer/işlenir.

Kullanım Şekli:

if( kosul ) {
komut(lar)
}
else {
komut(lar)
}

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <conio.h> #include <iostream> using namespace std; main( ) { int sayi; cout << "Lutfen bir tam sayi giriniz:"; cin >> sayi; if ( sayi % 2 == 1) { //sayının 2 ye göre modu (ikiye bölündüğünde kalan) cout<< "Sayi Tek" ; // 1 ise tek 0 ise çifttir. } else cout<< "Sayi Cift" ; getch(); return 0; }

break "Kırmak" anlamına gelir. Programın herhangi bir yerinde bu komutu kullandığımız zaman kodlar sonlanır.

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> using namespace std; main(){ int x; for(x=0;x<=15;x++){ cout<< x << endl; if(x==9) //x = 9 olduğunda program durur. break; } getch(); }

contiune "Devam et" anlamına gelir. İşlem yapmadan döngüyü devam ettirmek gibi durumlarda kullanılır.

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<iostream> using namespace std; main( ) { int x; for( x = 0; x <= 20; x++ ) { // x=0 olduğu için 0 yazar. Eğer x=1 yazarsak // program 1 den başlar. if( x>10 && x<16) // x 10’dan büyük ve 16’dan küçük olduğunda yazdırmadan atlayacak. continue; cout << x << "\\n"; } getch( ); return 0; }

goto Programda bir yerden bir yere atlamada/geçmede kullanılır.

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> main( void ) { int i = 0; baslangic_noktasi: cout<< "Merhaba Dünya\\n" ; // i degerini arttiriyoruz. i++; // i degeri kontrol ediliyor. Sayet 10’dan kucukse, // en basa donuyor. if( i<10 ) goto baslangic_noktasi; getch(); return 0; }

class

Kullanım Şekli:

class sinifadi {
private: //private içinde bulunan kod özeldir. sınıf dışından ulaşılamaz
fonksiyon ve degiskenler

public:
fonksiyon ve degiskenler

}nesnelistesi;

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> using namespace std; float pi=3.14; class kure { //private kullanmadan direk public yazabiliriz. public: float r; float hacim(){ return 4*r*r*r*pi/3; } float alan(){ return r*r*4*pi; } }test; main(){ // r=3 de hacim ve alan ayni :)) cout << "Yaricap giriniz: "; cin >> test.r; cout << "r= " << test.r << endl; cout << "Kurenin hacmi: " << test.hacim() << endl; cout << "Kurenin alani: " << test.alan(); getch(); return 0; }

switch - case Yapı olarak if-else ’ye benzer ama farklılıkları vardır.
switch - case yapısında, aralık değeri girmezsiniz. Direkt olarak ifadelerin bir şeylere eşit olup olmadığına bakarsınız.
Diğer farksa, switch - case yapılarında, illa ki uygun koşulun sağlanmasıyla yapının kesilmek zorunda olmayışıdır.
’break’ komutu kullanmadığınız takdirde, diğer şartların içindeki işlemleri de yapma imkanınız olabilir.
switch case en tepeden başlayarak şartları tek tek kontrol eder. Uygun şart yakalanırsa,
bundan sonra ki ifadeleri kontrol etmeden doğru kabul eder. Ve şayet siz break koymamışsanız, eşitlik uygun olsun olmasın,
alt tarafta kalan case’lere ait komutlarda çalıştırılacaktır.


Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> using namespace std; main() { int not; cout<<"Lutfen notu giriniz> "; cin >> not; switch( not / 10 ) { case 10: case 9: cout<<"NOT: A\\n"; break; case 8: cout<<"NOT: B\\n"; break; case 7: cout<<"NOT: C\\n"; break; case 6: cout<<"NOT: D\\n"; break; case 5: case 4: case 3: case 2: case 1: case 0: cout<<"NOT: F\\n"; break; default: cout<<"HATA: Bilinmeyen bir deger girdiniz!\\n"; } getch(); return 0; }

C) DÖNGÜLER:

While

while (kosul) {

kod(lar)

}

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> using namespace std; main(){ // Bu program ekrana 10 kez merhaba dunya yazacaktır. int i = 0; while(i++ < 10){ cout<< "merhaba dunya \\n"; } getch(); return 0; }

Do-While Bu döngüye koşulun doğru olup olmadığına bakılmaksızın bir kez girilir.

do {
komut(lar)
}
while( koşul );

Örn:
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <conio.h> #include <iostream> using namespace std; main() { int x=3; do{ cout << "Selam\\n"; x++; }while( x<10); getch(); return 0; }

Yukarıdaki örnekte x=10 deseydik döngü ne olursa olsun 1 defa çalışacağı
için ekrana 1 kez Selam yazacaktı. Şimdi ise 7 kez Selam yazar.

For

for( deger_atama ; koşul ; artırma/azaltma ) {

kod(lar)

}

Örn:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <conio.h> #include <iostream> using namespace std; main() { //tekrar ekrana merhaba dunya yazsın int x; for(x=0;x<=5;x++){ //x<=5 dediğimiz için ekrana 6 tane yazar, sadece < deseydik 5 kez yazacaktı cout << "merhaba dunya" << endl; } getch(); }

D)FONKSİYONLAR:

Her seferinde aynı işlemi yapan kodu yazmak oldukça zahmetli olurdu. Fonksiyonlar, bu soruna yönelik yaratılmıştır.
Sadece bir kereye mahsus yapılacak işlem tanımlanır. Ardından dilediğiniz kadar, bu fonksiyonu çağırırsınız.


main( ) fonksiyonu
main( ) fonksiyonu içersinde yer almayan kodlar çalışmaz.C programlama dilinde, bir kodun çalışması
main( ) fonksiyonun içersinde olup olmamasına bağlıdır. Bir nevi başlangıç noktası olarak düşünebiliriz.
Her programda sadece bir tane main( ) fonksiyonu bulunur. Başka fonksiyonların, kütüphanelerin,
kod parçalarının çalıştırılması main( ) içersinde direkt veya dolaylı refere edilmesiyle alakalıdır.

Fonksiyon Oluşturma

Kendinize ait fonksiyonlar oluşturabilirsiniz. Oluşturacağınız fonksiyonlar,
vereceğiniz işlemi yapmakla görevlidir ve çağrıldıkça tekrar tekrar çalışır.

Bir örnek ile açıklayalım:

Aşağıdaki programın bir zorluğu yok fakat çok uzun.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> using namespace std; main( ) { cout<< " /\\\\ \\n" ; cout<< " / \\\\ \\n" ; cout<< " / \\\\ \\n" ; cout<< " / \\\\\\n" ; cout<< "----------\\n"; cout<< "| |\\n" ; cout<< "| |\\n" ; cout<< "| |\\n" ; cout<< "----------\\n"; getch(); return 0; }

Fonksiyon kullanarak ve bunu kısaltabiliriz. Birden çok kat çizdiğimizi düşünürsek fonksiyon kullanmadan bu
işlemi yapmak gerçekten çok uzun olurdu.


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> #include <conio.h> using namespace std; // Evin catisini cizen fonksiyon. void catiyi_ciz( void ) //parantez içindeki void ler boş anlamındadır. Kullanmamız şart değildir. { cout<< " /\\\\ \\n" ; cout<< " / \\\\ \\n" ; cout<< " / \\\\ \\n" ; cout<< " / \\\\\\n" ; cout<< "----------\\n"; } // Evin katini cizen fonksiyon. void kat_ciz( void ) { cout<< "| |\\n" ; cout<< "| |\\n" ; cout<< "| |\\n" ; cout<< "----------\\n"; } // Programin calismasini saglayan ana fonksiyon. main( ) { catiyi_ciz( ); kat_ciz( ); kat_ciz( ); kat_ciz( ); getch(); return 0; }

Antiparantez: Benim şimdiye kadar fonksiyonlar anladığım bu kadar olduğu için kendimde bilmeden
ileri gitmek istemedim.

E)ÖNİŞLEMCİ KOMUTLARI:

Önişlemci komutlarının amacı, bir şeyi başka bir şekilde ifade etmektir.
Bir program yazdığınızı düşünün... Bu programda, PI değerini birçok yerde kullanmanız gerekiyor.
Siz de PI değeri olması gereken her yere, 3.14 yazıyorsunuz. Oldukça sıkıcı bir iş.
İleride PI’yi, 3.141592653 olarak değiştirmek isterseniz daha da sıkıcı hâle dönüşebilir.

#define

#define komutu, adından da anlaşılabileceği gibi tanımlama işlemleri için kullanılır.
Bunun için #define yazıp bir boşluk bıraktıkan sonra, önce kullanacağımız bir isim verilir,
ardından da yerine geçeceği değer.

Kısaca:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<iostream> #define PI 3.14159 //artık PI değeri 3.14159’dur. #define ekrana_yazdir cout #define deger_al cin

#undef

Bazı durumlarda, #define komutuyla tanımladığımız şeyleri, iptal etmek isteriz.
Tanımlamayı iptal etmek için, #undef komutu kullanılır.
Örneğin #undef PI yazdığınız da, o noktadan itibaren PI tanımsız olacaktır.
#define ile oluşturduğunuz sembolleri belirli noktalardan sonra geçerliliğini iptal
etmek veya yeniden tanımlamak için #undef komutunu kullanabilirsiniz.


#ifdef ve #ifndef

Önişlemci komutlarında bir sembol veya simgenin daha önce tanıtılıp tanıtılmadığını kontrol etmek isteyebiliriz.
Tanıtılmışsa, şöyle yapılsın; yok tanıtılmadıysa, böyle olsun gibi farklı durumlarda ne olacağını belirten yapılar
gerekebilir. Bu açığı kapatmak için #ifdef (if defined - şayet tanımlandıysa) veya
#ifndef (if not defined - şayet tanımlanmadıysa) operatörleri kullanılır.

Kısa bir örnekle ile açıklayacak olursak:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h> #include <iostream> #include <conio.h> using namespace std; main( void ){ int yaricap; float alan; cout<< "Cemberin yari capini giriniz: " ; cin >> yaricap; // Şu noktaya kadar tanımlı bir PI değeri bulunmuyor. // #ifndef opertörü bu durumu kontrol ediyor. // Eğer tanımsızsa, PI’nin tanımlanması sağlanıyor. #ifndef PI #define PI 3.14 #endif alan = PI * yaricap * yaricap; cout << "Cember alani: " << alan ; getch(); return 0; }

#if, #else, #endif, #elif

Bazen bir değerin tanımlanıp, tanımlanmadığını bilmek yetmez. Bazı değerler, bayrak (flag) olarak kullanılır.
Yani eğer doğruysa, böyle yapılması lâzım, aksi hâlde böyle olacak gibi... Bazı programlar, önişlemci komutlarından yararlanır.
Değişken yerine, önişlemcileri kullanarak tanımlanan simgeler, bu programlarda flag görevi görür.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h> #include <iostream> #include <conio.h> #define HASSASLIK_DERECESI 2 //buradaki 2 degerini degistirirsek #elif komutları ona göre isler. using namespace std; main( void ){ int yaricap; float alan; cout<< "Cemberin yari capini giriniz> " ; cin >> yaricap ; // Hassaslık derecesi, pi sayısının virgülden kaç // basamak sonrasının hesaba katılacağını belirtir. // Eğer hassaslık derecesi bunlara uymuyorsa, alan // değeri -1 yapılır. #if ( HASSASLIK_DERECESI == 0 ) alan = 3 * yaricap * yaricap; #elif ( HASSASLIK_DERECESI == 1 ) alan = 3.1 * yaricap * yaricap; #elif ( HASSASLIK_DERECESI == 2 ) alan = 3.14 * yaricap * yaricap; #elif ( HASSASLIK_DERECESI == 3 ) alan = 3.141 * yaricap * yaricap; #elif ( HASSASLIK_DERECESI == 4 ) alan = 3.1415 * yaricap * yaricap; #elif ( HASSASLIK_DERECESI == 5 ) alan = 3.14159 * yaricap * yaricap; #else //hassasiyet 5den buyuk olursa alan -1 olur. alan = -1; #endif cout<< "Cember alani: "<< alan ; getch(); return 0; }

#include

#include komutu, programımıza bir başlık dosyasının dahil edileceğini belirtir.
Bu başlık dosyası, standart giriş çıkış işlemlerini içeren bir kütüphane olabileceği gibi,
kendimize ait fonksiyonların bulunduğu bir dosya da olabilir.



Alıntı

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
sıfırdan, Özet


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Sıfırdan Burce Fıkra 0 07 Nisan 2012 23:10
Sıfırdan basbeLasi Fıkra 1 14 Ekim 2008 17:32