Would you like to react to this message? Create an account in a few clicks or log in to continue.


 
AnasayfaAnasayfa  PortalliPortalli  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yap  

 

 C++ İle Programlamaya Baslama Dersleri

Aşağa gitmek 
YazarMesaj
YohAsakura
Seviyeli Üye
Seviyeli Üye
YohAsakura


Mesaj Sayısı : 194
Yaş : 31
Şehir : Dobbie Willage
Kayıt tarihi : 04/08/06

C++ İle Programlamaya Baslama Dersleri Empty
MesajKonu: C++ İle Programlamaya Baslama Dersleri   C++ İle Programlamaya Baslama Dersleri Icon_minitimeÇarş. 9 Ağus. - 14:49

Ders-1)
İLK PROGRAMİMİZ....
Code:

// ilk1.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <iostream.h>

int main()
{
cout << "Bu benim ilk programım";
return 0;
}


Şimdi Yazdığımız programı inceleyelim:
"//" işaretini açıklama satırlarında kullanıyoruz. C++ derleyicisi bu notasyonla başlayan satırı okumaz. Bununla birlikte daha uzun cümlelerimiz olursa bunları da " /* */ " notasyonunun içinde yazıcağız. Bu özellik de C den bize kalma. Demiştik zaten C `nin tüm özelliklerini C++ içerir. Fakat biz genelde " // " yi kullanacağız.

#include <iostream.h> : Bu bizim C++ da bulunan kütüphane dosyamızı çağırmaya yarıyor. Ben size şöyle tarif edeyim. iostream.h kütüphanesindeki hazır olan " cout " fonksiyonunu çağırıyor. Yani buda bizim fazla kod yazmamıza engel oluyor. .h ile biten dosyalar kütüphane dosyalarıdır. Bunu şuna da benzetebiliriz. Farz edelim ki elimizde bir alet çantası var içinden tornavidayı çağırdığımızda vida sıkacağızdır. Bu da ona benziyor. C++ da ki hazır kütüphanelerde bir çok hazır fonksiyonlar vardır. İlerde Bu hazır fonksiyonlar işimizi görmemeye başlayınca kendi kütüphanemizi yapmaya başlayacağız. Tabi bu seviyeye geldiğimizde olayı hemen hemen kavramış olacağız, tabi neden olmasın öyle değil mi?

Daha sonraki satır her C++ programında mutlaka bulunması gereken bir satırdır. Her C++ programında main() fonksiyonu olmak zorundadır; bu fonksiyonumuzun önünde ise o fonksiyonun dönderdiği değişkenin veri tipi olmalıdır. Tabi ki C++ fonksiyonlar ve onların dönderdikleri değerler konusunu da ileride işleyeceğiz.

Bir sonraki satırda ise; C++ fonksiyonlar ve kod blokları " { } " parantezleri arasında bulunmalıdır. main de bir fonksiyon ise onun içindeki kodlar doğal olarak { } parantezleri arasındadır.

Program derlenip çalıştırıldığında ise ( Turbo C++ 3.1 kullanıyorsanız ctrl+f9 kısa yoluyla programı çalıştırabilirsiniz (Run) ) karşımıza "Bu benim ilk programım" yazısı çıkacaktır. İşte bu yazıyı ekrana veren komut da iostream.h kütüphanesindeki cout fonksiyonudur.

Önemli bir nokta ise C++ dilinde her satır ifadenin sonuna " ; " koymak zorundayız. Bundan farklı olarak #include satırlarının ve bir kaç farklı satırın arkasına " ; " gelmez. Bunları ileride göreceğiz.

Return 0 : programımızın (aynı zamanda main fonksiyonumuzun) çıkış noktasıdır. Eğer return ile 0 değeri dönderirsek programımızın güvenle çıktığını işletim sistemine bildirmiş oluruz. Bu sayede güvenle programımızın çalıştığını göreceğiz.

Şimdi size bir örnek daha vereceğim bununla da aynı çıktıyı elde edeceğiz. Arasındaki farkları eminim basit olarak sizlerde göreceksinizdir...

Code

// ilk2.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <stdio.h>
main()
{
printf("Selam bu benim ilk programım.\n");
return 0;
}

Evet şimdi burada çok fark varmış gibi gözüküyor aslında ama öyle değil. Sadece kütüphanemiz stdio.h oldu ve ekrana yazdır fonksiyonumuzda printf oldu. Bu özellik C den kalma. Bunlar diğer program ile aynı işlevi görüyor. Buradaki fark " \n " notasyonu. Bu noptasyon bir sonraki satıra geçmek için kullanılır. Bu notasyonlara Escape dizileri denir. Tablo olarak bunları size veriyorum. Son yazdığımız ilk2.cpp de yerlerine koyarsanız çalışacaktır.
Dizi:.................Adi:
\a ...................Alarm
\b ...................Bir karekter geri(Backspace)
\f ................... Formu itekle
\n ...................Yeni satir(yukarda kullandigimiz(newline))
\r ................... Return
\t ...................Yatay bosluk
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм

--------------------------------------------------------------------------------
Bu mesaj en son " 24-10-2005 " tarihinde saat 06:50 AM itibariyle mafia tarafından düzenlenmiştir....


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

Sponsored Links





24-10-2005, 06:38 AM #2
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-2)egiskenler ve Veri Tipleri

--------------------------------------------------------------------------------

Degiskenler ve Veri Tipleri
Şimdi bize yine çok lazım olacak bir özellik de değişken tanımlamak ve atama yapmaktır. Bunu bir örnek üzerinde anlatmak istiyorum. Örneğimiz;


Code:

// degisken.cpp
// Burda değişken tanımlamayı göreceğiz.
// Aynı zamanda verilen bir sayıyı kendisi ile carpma 2.2=4 gibi

#include <iostream.h>
#include <stdio.h> // kütüphane dosyamız
main()
{
int i; // Değişken tanımlama
cout << "Bir sayı giriniz: ";
cin >> i;
i=i*i;
cout << "sonuc: " << i ;
return 0;
}



Burada bundan önce yaptığımız programlardan farklı olarak int i kullandık, yani değişken tanımladık.

Değişken Nasıl Tanımlanır?

Değişkenleri tanımlamak için aşağıdaki şema kullanılır.

[Veri Tipi] [Değişken Adı];

Örneğin
int sayi;

Şimdi degisken.cpp örneğindeki int i; kısmını anlamışsınızdır. Burada değişkenlere değinmek istiyorum. Biz yukarda İçinde sayı tutan bir değişkeni tanımladık. Benzer olarak aşağıdaki tanımlamalar da vardır.

char c;

int i;

float f;

double d;

unsigned int ui;

Burada [Veri Tipi] [Değişken Adı]; bu kalıba göre tanımlama yaptığımız için önce Veri Tiplerini inceleyelim.
1) İnt tip.


Integer = Tamsayı

Tamsayıları içerir. Bellekte 2 Byte tutar. DOS'ta ve Win3.1'de 16 bit uzunlugunda ama Windows9x, WinNT, Win200 ve WinXP 32 bit uzunluğundadır.

Değer aralıkları Short ve long için değişir.

Örnek: 5, -20, 1 gibi.
2) Sort tip.

Tam sayıları içerir. 16 bit uzunluğundadır.

signed: -32768 ile +32767 arasinda değer alır, unsigned: 0 ile 65535 arasinda değer alır.

3) Long tip.

Tam sayılar içerir. 32 bit uzunluğundadır.

signed: -2147483648 ile +2177483647 arasinda değer alır, unsigned: 0 ile 65535 arasinda değer alır.

4) Gerçel Tipler (Float, Double, Long double)

Gerçel sayıları içerirler.

float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır.

double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet 15-16 basamaktır.

long double : doublenin tipinin daha genişidir.1.2E-4932 ile 1.2E-4932 aralığında değer alır. Hassasiyet 19-20 basamak.

5) Char Tip

Char : Karakter

Alfanumerik karakterleri içerir. Ve ya 8 bit uzunluğunda tamsayı.

signed: -128 ile 127 arasinda değer alır, unsigned: 0 ile 255 arasında değer alır.

Örneğin: ' 0,1,2,3,4,5,6,7,... ' , ' *,-,+,... ' , 'a,b,c,....,A,B,C,D,,,,, '

6) Bool tip.

true(dogru) = 1 veya false(yanlis) = 0 değerini alır. Eski derleyiciler bu türü desteklemeyebilir. Yeni ANSI C++ standardında eklenmiştir. Bu soyut matematik gördüyseniz. "p V q" ya benzer ( matematikçiyiz, konuşturalım azıcık). Değer aralığı ise ya 1 dir (doğru) yada 0 dır (yanlış).

7) Enum tip.

enum sıralanmış değerleri tutar. Short int ile aynı değeri taşır.

Başta Fazla Detaya inip sizi bunaltmak istemiyorum. Çünkü C++ dili başlarda karmaşık gelen bir dildir. Bu da zaten kendisini yüksek seviyeli bir dil yapıyor. Ben size Bu dilin temel özelliklerini anlatarak basit programlar yapmayı göstereceğim.

Bu temel bilgileri aldıktan sonra programlamaya geçebiliriz. Derleyici Olarak ben Turbo C++ 3.1 i tavsiye ederim. Şu an bununla başlar iseniz işiniz daha kolay olacaktır (bence). İlerde Borland a geçeceğiz.

Değişken tanımlama konusunda bir konuya daha değinmek istiyorum. Değişkenlere değer atama ve aynı anda bir çok değişken tanımlamamız C++ da mümkündür.
char c = 'c';

int i = 5;

Daha sonradan değer atama:

char c;

int i;

c = 'c ';

i = 5;

Bir de aynı anda bir çok değişken tanımlayalım.
Sayfa başına dön Aşağa gitmek
http://wapistan.forumup.com
YohAsakura
Seviyeli Üye
Seviyeli Üye
YohAsakura


Mesaj Sayısı : 194
Yaş : 31
Şehir : Dobbie Willage
Kayıt tarihi : 04/08/06

C++ İle Programlamaya Baslama Dersleri Empty
MesajKonu: Geri: C++ İle Programlamaya Baslama Dersleri   C++ İle Programlamaya Baslama Dersleri Icon_minitimeÇarş. 9 Ağus. - 14:49

Örneğin:

int x , y , z;

x = y = z = 5;

x,y,z' nın değeri 5 oldu

__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм

--------------------------------------------------------------------------------
Bu mesaj en son " 24-10-2005 " tarihinde saat 06:50 AM itibariyle mafia tarafından düzenlenmiştir....


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:47 AM #3
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-3):If Komutu

--------------------------------------------------------------------------------

If Komutu
if komutu anlaşılması ve yazılımı en basit olanıdır. if komutu, bir grup komutun koşullu olarak yürütülmesi amacıyla kullanılır. Buna bir örnek verecek olursak; düşünün ki bir sınav yapılıyor ve 50 ve üzeri alanlar geçecek. Bunun için if i kullanırsak not 50 ye eşit veya büyükse (büyük eşit) geçer not olacak.


Code:

http://not.cpp
// 50 ve 50 den yukarsı geçiyor.
#include <iostream.h>

main()
{
int not;
cout << "Notu yazınız:" ;
cin >> not;

if ( not >= 50 )
cout << "Geçtiniz!" ;

}



Sanırım bu örnekte ne dediğimi anlamış olacaksınız.

Code:

if ( not >= 50 )
cout << "Geçtiniz!";

if (ifade)
{
Komut;
Komut;
...
}




Burda görüldüğü gibi if (ifade) ve sonraki komutlarda { } bloğunun içine yazılır. Şimdi if`e bir de şu açıdan yaklaşalım. if in kelime anlamı "eğer" dir. Mantık şudur: eğer belirtilen parametre doğruysa, if komutu, if ten sonra gelen bloktaki fonksiyonları gerçekleştirir. Doğru değilse, if den sonraki bloğu yok sayar. Burada bir detaya daha inmek istiyorum. Ne demiştik, mantık işlemlerinde olay ya doğrudur (1) ya da yanlıştır (0). Şimdi yukarıdaki if in genel kullanım şekline tekrar bakalım. Bunu, eğer parametre doğru ise kullanabiliriz. Bir de bunun tersini düşünelim. Bit bazında işlemlerde sanırım ( ! ) bunu görmüştük. Her bir biti ters çevirir.


Code:

if (!ifade)
{
komut (yanlış (0));
Komut (yanlış (0));
....
}




Derdimi anlamış olduğunuzu ümit ediyorum. Ama bence buranın üstünde biraz daha duralım. Çünkü bunu anlarsak diğerlerinde zorlanmayız. Son yaptığımızda ifadeyi tersine çevirdik.

Code:

http://pozitif.cpp
// Bunada açıklama yaptırmayın: ) ( yapamadımda)
#include <iostream.h>
main()
{
int x;
cout << "Bir sayı girin:" ;
cin>> x;
if ( x > 0 )
cout << "Pozitif" ;
}



Bir örnek daha:

Code:

http://gecti.cpp
// Buna açıklama yapmıycam!
#include <iostream.h>
main()
{
int not;
cout << "Notunuzu giriniz:";
cin >> not;
if ( not> 50)
cout << "Geçtiniz!" ;
if (not < 50)
cout << "Kaldınız!" ;
if ( not==50)
cout << "zar zor geçtin: )";
}
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм

--------------------------------------------------------------------------------
Bu mesaj en son " 24-10-2005 " tarihinde saat 06:49 AM itibariyle mafia tarafından düzenlenmiştir....


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:49 AM #4
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-4):If-else Komutları

--------------------------------------------------------------------------------

If-else Komutları
if-else komutu iki işlemden hangisinin uygulanacağına karar verir. Else kısmı seçimlidir, gerekmiyorsa kullanılmayabilir. Yazılım kuralı ile şöyledir;


Code:

if ( ifade)
komut1;
else
komut2;





daha genel şekliyle

Code:

if ( ifade )
{
komut1;
komut2;
...
}
else
{
komut1;
komut2;
...
}




Veya lojik olarak baktığımızda sanırım daha iyi anlayacaksınız

Code:

if (ifade)
blok_dogru (1);
else
blok_yanlis (0);





Şimdi örneklerle bunu pekiştirmeye çalışalım.
Örnek-1)

Code:

http://tekcift.cpp
//sayı tekmi çiftmi onu görüceğiz
#include <iostream.h>
main()
{
int sayi;
cout<< "Bir sayı giriniz:";
cin >> sayi;
if (sayi %2==1 )
cout <<"tek";
else
cout << "çift" ;
}





Örnek-2)

Code:

http://ifelse.cpp
#include <iostream.h>
main()
{
int not;
cout<< "Notu giriniz:";
cin >> not;
if (not >= 50)
cout << "Geçti!";
else
cout << "Kaldı!";
}





if kısmından anlatmaya başlayacağım. Eğer notumuz 50 ye eşit veya 50 den büyük ise geçiyoruz aksi halde kalıyoruz.

Bir de bir if-else in altında bir tane daha if-else kullanalım.

Code:

http://sinav.cpp
// alt alta if-else
#include <iostream.h>
main()
{
int not;
cout<< "Not`u giriniz:";
cin >> not;
if (not >= 50)
cout << "Geçtiniz!";
else
{
cout <<"Bütten alınan not:";
cin >>not;
if( not>=60 )
cout << "Geçtiniz!";
else
cout <<"Kaldınız!";

}
}




Burada da şunu inceledik: diyelim ki sınava girdik ve notumuzu öğrendik, notu giriyoruz 50 nin altındaysa kalıyoruz. ve bütünleme sınavına giriyoruz. Bütte de geçer not en az 60.
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:51 AM #5
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-5):Switch-case Komutları

--------------------------------------------------------------------------------

Switch-case Komutları

Switch-case Komutları
Switch Case deyimi işlev bakımından if deyimine çok benzemektedir. Çok sayıda if işlem blokları kullandığımızda programın okunurluğu azalacak ve programı izlemek zorlaşacaktır. Programımızın bir değerini bir çok değerle karşılaştırmak gerektiğinde switch komutunu kullanacağız. Switch seçeneği ile değişkenin durumuna göre bir çok durum içersinden bir tanesi gerçekleştirilir. İstersek de if deyimi ile switch case' yi birlikte kullanabiliriz. Switch in yaptığı iş kısaca, ifadenin değerini sırayla sabitlerle karşılaştırarak ve her satırı işlemektir.


Code:


switch( Kontrol Değişkeni )
{
case Sabit1 : komut1;
case Sabit2 : komut2;
.
.
.
default : Komutson;
}





Buna en basit örneğimizi verelim

Code:

http://switch.cpp
// switch-case yi öğreniyoruz.

#include <iostream.h>

main()
{
int i;
cout<< " 1 ile 4 arası sir sayı giriniz:";
cin>>i;
switch(i)
{

case 1 :cout<<"1 Girdiniz"; break;
case 2 :cout<<"2 Girdiniz"; break;
case 3 :cout<<"3 Girdiniz"; break;
case 4 :cout<<"4 Girdiniz"; break;

default:cout<<"1 ile 4 ten farklı";
}
}





Burada gördüğümüz gibi i değişkenine bağlı olarak program işliyor. Case'lerinin aldığı değere göre kendinden sonra gelen komutları işliyorlar. Burada daha önce görmediğimiz break komutunu gördük. Buna ilerde daha detaylı olarak değineceğim. Fakat biraz bahsetmek istiyorum. Programımızda değişkene 1 değerini verdiğimizi farz edelim. Case 1 adlı satırı geçip ondan sonraki komut dizisini işleme soktuk. Bu işlemin tamamlanması için break komutu kullanılıyor. Yazılımda break komutu goto gibi işlev görür ve derleyiciye switch komutundan çıkması için talimat verir. Sorunu ortadan kaldırmak için her durum için break deyimi eklemeliyiz (tavsiye). Ne demiştik; bir çok karşılaştırma olduğunda switch'e ihtiyaç duyuyoruz. Karşılaştırmaların hiç biri olmadığı anda da ortaya default tan sonraki satırın işlenmesi kalıyor. Sanırım bu örnekte basit olarak anlamış olacağız.

Daha karmaşık bir örnek verecek olursak:

Code:

http://ucgen.cpp
// Program gireceğimiz ölçülere göre üçgenin Alan, Yükseklik ve Tabanını bulur
// switch-case örneğimiz.

#include <iostream.h>

int main()
{
char secenek;
float alan, yukseklik, taban;

cout << "Program gireceğimiz ölçülere göre üçgen'in Alan,
Yükseklik ve Tabanını bulur!\n" << endl
<< " A ---> Alan : Bulmak için yükseklik ve tabanı gireceğiz:" << endl
<< " h ---> Yükseklik : Bulmak için alan ve tabanı gireceğiz:" << endl
<< " t ---> Taban : Bulmak için alan ve yüksekliği gireceğiz:" << endl
<< endl << endl;
cout<< "Seçeneğiniz? ---> A, h, t :";
cin>> secenek;

switch(secenek)
{
case 'a':

case 'A':
{
cout<< endl <<endl <<"Yükseklik: ";
cin>> yukseklik;
cout<<endl << "Taban: ";
cin >> taban;

alan = 0.5 * taban * yukseklik;

cout<<endl << endl << "Alanı: " << alan << endl;

break;
}

case 'h':
case 'H':
{
cout<< endl << endl <<"Alanı: ";
cin>> alan;
cout<<endl << "Tanabı: ";
cin >> taban;

yukseklik = 2.0 * alan / taban;

cout << endl << endl << "Yükselik: " << yukseklik << endl;
break;
}

case 't':
case 'T':
{
cout << endl <<endl <<"Alanı: ";
cin >> alan;
cout << endl << "Yüksekliği: ";
cin >> yukseklik;

taban = 2.0 * yukseklik / alan;

cout << endl << endl <<"Tabanı: " << taban << endl;
break;
}
}
return 0;
}
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:53 AM #6
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-6):While Döngüsü

--------------------------------------------------------------------------------

While Döngüsü

İçlerinde anlatımı ve anlaşılması en kolay olan döngüdür. While döngüsü, döngü sayısının belli olmadığı zamanlarda kullanılır.


Code:

while ( koşul )
Komut;





While döngüsü, içinde bulunan ifade doğru olduğu sürece altındaki komut veya komut bloğu yürütülür. Eğer yanlış ise kontrol bir sonraki komut veya komut bloğuna geçer.
While döngüsü daha genel şekliyle:
while ( ifade )
{
komut;
komut;
komut;
.
.
.
}
Burada bir şeye dikkat etmenizi istiyorum. Çoklu komutlar kullandığımızda " { } "parantezleri gereklidir.
Sayfa başına dön Aşağa gitmek
http://wapistan.forumup.com
YohAsakura
Seviyeli Üye
Seviyeli Üye
YohAsakura


Mesaj Sayısı : 194
Yaş : 31
Şehir : Dobbie Willage
Kayıt tarihi : 04/08/06

C++ İle Programlamaya Baslama Dersleri Empty
MesajKonu: Geri: C++ İle Programlamaya Baslama Dersleri   C++ İle Programlamaya Baslama Dersleri Icon_minitimeÇarş. 9 Ağus. - 14:49

Code:

// while1.cpp
// while döngüsünü kullandık
// girdiğimiz sayıdan 100 e kadar olan sayıları topladık

#include <iostream.h>

main()
{
int x, y;
y= 0;
cout<< " Bir Sayı Giriniz ( Sayı 100 den küçük olucak ) : ";
cin>>x;
while (x< 101)
{
y =y+x;
x =x+1;
}
cout<< "Toplam= "<< y;
}





Burada önce x ve y yi tanımladık. y=0 değerini verdik. Sonra klavyeden girilen değerin x olduğunu yazdık. while (x< 101) işte burada ifademiz x< 101. Şimdi bu koşul sağlanıncaya kadar döngümüz devam edecek. While' den sonraki bloğa geçtiğimizde ise. y` ye x i ekliyoruz ve x in değerini her seferinde 1 arttırıyoruz. Sanırım bu basit örnekte döngünün basit yapısını ve mantığını anlamış oldunuz.

Döngünün verilen ifade veya koşula göre sağlanması döngülerin en önemli konusudur. Eğer bir döngüden çıkılmazsa o döngü sonsuza gider. Buna da "sonsuz döngü" denir. Döngüler konusunda en çok rastlayacağımız hata da budur.Şimdi buna bir örnek verelim. Fakat, şimdiden uyarıyorum, sonsuz döngü yapıldığında bilgisayarınız kilitlenebilir. Onun için buna şimdiden hazır olun. Zaten bir sefer denediğimizde ne demek istediğimi anlayacaksınızdır.

Code:

http://sonsuz.cpp
//while döngüsü ile sonsuz bir döngü yaptık

#include <iostream.h>

main()
{
int x=1;
while(x)

cout<< "x= "<< x++<< endl;
}





Burada neden sonsuz bir döngü oldu? Evet işte x ifadesini koşula bağlamadık. Şayet while(x<10) demiş olsaydık. 1,2,3,4,5,6,7,8,9 a kadar x sayısı sıralanacaktı.


Code:

http://klavye.cpp
//while döngüsü ile klavyeden girilen sayı

#include <iostream.h>

main()
{
int x, y = 0;

while (y< 20)
{
cin>>x;
y = y+x;
}
cout<< "Toplam= "<< y ;
}





Bu programda da klavyeden girilen sayıların toplamı 20' den büyük olunca program Toplam olarak söylüyor. Sanırım basit While yapısını anladınız. Şimdi birazda karmaşık programcıklar yapalım.

1. Örnek: Girilen altı not'un ortalamasını alıyor.

Code:

#include <iostream.h>

int main()
{
int toplam,
sayac,
not,
ortalama;

toplam = 0;
sayac = 1;

while ( sayac <= 6 )
{
cout << "Notu giriniz: ";
cin >>not;
toplam = toplam + not;
sayac = sayac + 1;
}

ortalama = toplam / 6;
cout << "Sınıf ortalaması = " << ortalama << endl;

return 0;

}





Bu örneğimizde yine toplam, sayac, not, ortalama gibi değişkenleri tanımladık. ( toplam =0 ; ve sayac = 1; ) de değişkenlere ilk değerlerini atadık. While döngüsünün içinde sayac değişkenimizi altı defa işlemesini söyledik. Sonra alttaki toplam ve sayac bölümlerinde ise toplam a not' u ekliyoruz, her seferinde de sayac değerini bir arttırıyoruz ve sayac değeri 6' ya gelince while döngümüz duruyor. Program sonra toplamı alıp altıya böler bu sayede ortalamayı alır, sonrada çıktısını gerçekleştirir.

2. Örnek:


Code:

http://faktoriyel.cpp
// while ile faktoriyel hesaplama

#include <iostream.h>
int main()
{
int sayi;
long int faktoriyel=1;
cout << "Bir sayı giriniz: ";
cin >> sayi;
cout << sayi << " `in Faktöriyeli: ";
while (sayi > 1)
faktoriyel *= sayi--;

cout << faktoriyel << endl;
return 0;
}





Burda while (sayi>1) şeklinde koşulumuzu belirttik. Bir altında ise faktoriyel *= sayi--; evet burda da daha önce gördüğümüz gibi eşitleme operatörü olan ( *= ) i kullandık. Yani faktoriyel'e faktoriyel*sayi-- nin değeri atanır. Matematiğini düşünürseniz; 7 sayısının faktöriyeli 7 *= 7-- gibi. yani 7 ye devamlı 7-- oda 6 demektir. 6 ile carpımı eklenir, bu 6-- ile devam eder. En basit anlatımı bu Sonrada tüm while döngüsü bittikten sonrada faktoriyel' in sonucu çıktı olarak ekrana gelir. Bu örnekte negatif sayıların faktöriyelini de 1'e eşit tutuyor. Dikkat ediniz. Negatif sayıların faktöriyeli alınmaz şartını koymadık. Şayet siz koymak isterseniz bir if else bloğu yerleştirmelisiniz if(sayi>=0) faktoriyel al yoksa faktoriyel alma gibi.

3. Örnek:

Code:

// maas.cpp
// while if-else ile bir maas vergi uygulaması


#include <iostream.h>

int main( )
{
unsigned long maas, net, vergi = 0.0; // maas net vergi bunları tanımladık

cout<< "Lütfen maaşınızı giriniz: "; // maası giriyoruz
cin>> maas; // maası programa alıyoruz

while( maas >= 0.0 ) // maaşın koşlunu yazıyorus döngüye
{
if( maas <= 250000000 ) // maaş 250 milyondan az ise
vergi = 0.0;
else // vergi yok
if( maas < 500000000 ) // maas 500 den az ise
vergi = maas * 0.10; // vergi %10
else // 500 den fazla ise
vergi = maas * 0.20; // vergi %20

net = maas - vergi; // net maaşımız vergi düşünce çıkar
cout<< "Ödenmesi Gereken vergi " << vergi << endl; // vergi ekranda
cout<< "Net maaşınız: " << net << endl; // geriye kalan maaşımız


cout<< "Lütfen maaşınızı giriniz: "; // bir dahaki ayki yeni maaşımız
cin>> maas; // maaşı program alıyor

}
return 1;

}
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:55 AM #7
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-7)o-while Döngüsü

--------------------------------------------------------------------------------

Do-while Döngüsü
Bu döngü while döngüsünün biraz değiştirilmiş halidir. Do-while döngüsünde karşılaştırma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmiş olur. Yapısı aşağıdaki gibidir.


Code:

do

cümle

while ( koşul );




do' nun altındaki cümle kısmındaki komut satırları birden fazla olursa diğer döngülerde olduğu gibi " { } " içine alıyoruz. Bunu kullanmamız kodları okuma da ve ayırma da daha çok işimize yarayacaktır.


Code:

do
{
cümle
cümle
cümle
...
}
while ( koşul );



Şimdi yukarıda demek istediğimizi standart kod satırı üzerinde anlatalım. Kodları yazdığımızda, komut sırası do'ya geldiği zaman, do' dan sonraki komutun döngünün başı olduğunu belirtiyor. Diğerlerinden farklı ( for, While ) olarak döngüye giriş yapıyor, yani hiçbir kontrol yapmadan en az bir defa döngünün içine girmiş oluyoruz. While'e geldiğinde ise koşulu kontrol ediyor, eğer doğru ise döngünün başındaki komuta giderek yeniden komutları işliyor. Eğer koşul kontrolü yanlış ise while'den bir sonra ki komutu veya komutları işleyip döngüden çıkıyor. Şimdi bu söylediklerimizi örnek üzerinde gösterelim.


Code:

http://do.cpp
// number echoer
//do-while döngüsünü kullandık

#include <iostream.h>

int main ()
{
unsigned long x;
do {
cout<< "Bir sayı giriniz ( Durdurmak için 0 ) : ";
cin>> x;
cout<< "Girdiğiniz sayı: " << x << "\n";
}
while (x != 0);
return 0;
}



Örneğimizde de görüldüğü gibi önce do dan sonraki komutlar işleniyor. Şayet 0 girersek while işlemeye başlıyor. Do-while döngüsü C++ da çok fazla kullanılmaz bunun yerine biz for' u kullanacağız çünkü for döngüsü çok daha güçlüdür.
__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:57 AM #8
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-:For Döngüsü

--------------------------------------------------------------------------------

For Döngüsü
For döngüsünün çalışması, döngünün kontrol değişkenine başlangıç değerinin atanması ile başlar. Aşağıda vereceğimiz ilk değer atama cümlesinden kastımızda budur. Yani bu kısımda başlangıç tanımları yapılır. For döngüsünün başlangıç adımıdır. Bu kısımda yapılan bir değişken tanımındaki değişkenin ömrü, for döngüsünün sonunda biter. Sonra döngü koşul kısmına gelinir ve bu test edilir. Şayet değeri !0, doğru (1) olduğunda döngü içindeki komutlar uygulanır. Arttırma ise for döngüsü işleminin sonunda meydana gelir. for içindeki tüm deyimler meydana geldikten sonra uygulanır.

Genel yapısı:


Code:

for ( ilk değer atamalar, koşul, arttırma)
cümle




Bunu daha da genellersek, diğerlerinde de olduğu gibi cümleler birden fazla olduğunda komut bloğu arasına alınacaktır.



Code:

for ( ilk değer atamalar, koşul, arttırma)
{
cümle1
cümle2
cümle3
...
}




Bu söylediklerimizi bir örnek üzerinde izah edelim.

Code:

http://for.cpp
// for döngüsüyle bir örnek.


#include <iostream.h>
int main ()
{
for (int n=10; n> 0; n--)
{
cout << n << " -> ";
}
cout<< "Bitti!";
return 0;
}




Ben sadece for (int n=10; n>0; n--) bu kısmı anlatacağım, diğer kısımlar apaçık gözüküyor zaten. For diyip () imizi açtık. Sonra içine ilk basamağımız olan değişken tanımlamamızı yaptık. İnt n=10; Bu bizim yukarıda bahsettiğimiz ilk değer atamalar kısmı. Daha sonra koşulumuzu yazdık. n>0; bunu test ettik ve !0 yani doğru (1) çıktı. Sonrada n-- yi yazdık. Genel tanımda yazdığımız arttırma kısmı. Aslında buna yenileme komutları desek daha doğru olur. Biz bu örnekte örneğin azaltma yaptık. Neyse umarım bu for örneğini anlamışsınızdır.

C++ da yapacağımız çoğu örnekte for u kullanacağız. C++ 'nın en güçlü yanlarından biriside for döngüsüdür. For döngüsünün başında yani ilk değer atama kısmında birden çok değişken tanımlayıp değer atıyorsak bunları virgül ( , ) ile bir birinden ayırmalıyız. İlk değer atamadan koşul bölümüne geçtiğimizde ve koşul bölümünden arttırma ya geçerken noktalı virgül ( ; ) kullanmalıyız. Tabi kullandığımız bu üç kısım seçimlidir istersek boş bırakabiliriz. Fakat, noktalı virgüller ( ; ) konulması zorunludur.

1.Örneğimiz:

Code:

http://factoriyel_for.cpp
//for döngüsüyle faktöriyel hesap.


#include <iostream.h>

int main()

{
int fac, sayi;

cout<<"Sayıyı giriniz: ";
cin>>sayi;
fac=1;

for (int j=1; j<=sayi; j++)
{
fac=fac*j;
}

cout<<"Sonuc: \a"<< fac;
return 0;

}




Bu örneğimiz oldukça basit. Bildiğimiz matematiksel faktöriyel işlemini C++ kodları olarak yazdık. (\a yı kullandım bip! demesi için ).

2.Örneğimiz:

Code:

http://carpim_for.cpp
// iç içe for döngüsüyle çarpım tablosu


#include <iostream.h>


main()
{
cout<<"Çarpım Tablosu! \n"<<endl;
int x,y;
for (x=1; x<=10; x++)
{
for (y =1; y<=10; y++)
cout<<" "<<x*y;
cout<<"\n";
}
}





Görüldüğü gibi ilk for döngüsünde, birinci bileşen olan x i önce 1 e eşitledik sonra birer arttırarak 10' a kadar götürdük. Sonraki for da da aynısını y için yaptık ve bu iki bileşeni çarparak ekrana yazdırdık. Son derece basit bir örnek.

3.Örneğimiz:

Code:

http://asal_for.cpp
// for , if ve while ile asal sayı bulma

#include <iostream.h>

int main()
{
int sayi;
cout << "Bir sayı girinizr: ";
cin >> sayi;

for (int sayac=1; sayac< sayi; sayac++)
{
int asal, test;
test = sayac;
asal = 1;
while (test--> 2)
if ((sayac % test) == 0)
asal = 0;
if (asal == 1)
cout<< sayac << " bir asal sayıdır!\n";
}
return 0;
}




Bu örneğimizde ikinci örneğimize benziyor. İçinde for, while ve if de var. While ve if' in içindeki matematiksel ifadeleri biliyorsak örnek gayet basit gelicektir.

__________________
öℓüякєη вiℓє уαηıм∂α σℓ ѕєνgiℓiм cєηηєт вiℓє çєкiℓмєz ѕєηѕiz αн вєη ηєуℓєуiм


mafia
Kullanıcının Profilini Göster
mafia kullanıcısına özel mesaj gönder
mafia tarafından gönderilmiş daha fazla mesaj bul
mafia kullanıcısını arkadaş listeme ekle

24-10-2005, 06:58 AM #9
Profil
mafia
İsyankar....

Bilgiler
Konum: kibris cehennemi...
Yaş: 22
Mesaj: 1,288
Üye No: 2
İtibar Gücü: 212
Rep Puanı : 2143
Rep Derecesi
İletişim
Ders-9):Break ve Continue Komutlari

--------------------------------------------------------------------------------

Break Komutu
Break komutunu, swtich komutundan çıkmak için önceki derslerimizde görmüştük. Komutun kendine özgü bir kullanımı daha vardır. Break komutu bir döngünün içinde çalıştırılırsa o an o döngü biter. Bir goto gibi işlem gördüğünü de söyleyebiliriz. Break kullanınca program döngüyü bitirir ve döngünün sonundaki satırdan çalışmaya devam eder. Bir örnek verelim.


Code:

http://break.cpp
//break komutunu kullandik.


#include <iostream.h>

main()

{

for (int x = 1; x <= 10; x++) {
if (x == 7) {
break;
}
cout<< x << " ";
}
}




İşte örneğimizde gördüğünüz gibi. X 7'ye eşit olunca break; döngüyü bitiriyor ve döngüden sonraki satırı çalıştırmaya başlıyor.


Continue Komutu
Continue komutu bir döngü içinde çalıştırılırsa , o döngü içinde bulunan tur sona erer ancak döngü devam eder. Diğer bir deyişle, gövdenin içinde bulunan continue komutundan sonra gelen cümleleri atlayarak, döngüyü devam ettirir. Bunu bir örnekle açıklayayım.


Code:

http://continue.cpp
//continue ve break komutunu kullandik.


#include <iostream.h>

main()

{

for(int i=0; i <= 9; i++)
{
if(i==5)
break;
cout<<i<< endl;
}


for(int x=0; x <= 9; x++)
{
if(x ==3)
continue;
cout<< x;
}

}




Bu örnekte break ve continue'yu birlikte kullandım. Hem continue'yu hem de break ve continue karışımını bir arada vermiş oluruz diye düşünüyorum. Örneğimizi inceleyecek olursak. Break olan kısımda görüleceği gibi 5'e kadar döngü devam ediyor, döngü bitiyor ve ondan sonraki cümleye geçiliyor. Sonra yine bir for döngüsü başlıyor ve bu sefer x 3' e eşit olana kadar devam ediyor. 3'e eşit olunca da if içindeki x==3 koşulunu sınıyor ve continue ye olduğu için bunu atlıyor. Zaten ekran çıktısını aldığınızda ne demek istediğimi daha rahat anlayacaksınız.

Benim size tavsiyem break ve continue komutlarını yapmış olduğunuz basit programlarda kullanmanızdır
Sayfa başına dön Aşağa gitmek
http://wapistan.forumup.com
 
C++ İle Programlamaya Baslama Dersleri
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 :: Diğer :: DownloaD-
Buraya geçin: