..:: BİLGİ VADİSİ ::.. BİLGİ VADİSİ RSS   TWİTTER   BİLGİ VADİSİ FORUM FACE GRUBU  

Anasayfa Kimler Çevrimiçi Bugünkü Mesajlar Forumları Okundu Kabul Et
Geri git   ..:: BİLGİ VADİSİ ::.. > BİLGİSAYAR & İNTERNET BÖLÜMÜ > BİLGİSAYAR GENEL EĞİTİM BÖLÜMÜ
Google

BİLGİSAYAR GENEL EĞİTİM BÖLÜMÜ Bilgisayar hakkında merak ettiğiniz her şeyi ve püf noktaları burada bulabilirsiniz

   

 
Konu Bilgileri
Konu Başlığı
C++ Öğrenmeye başlıyoruz
Konudaki Cevap Sayısı
38
Şuan Bu Konuyu Görüntüleyenler
 
Görüntülenme Sayısı
2943

Yeni Konu aç Cevapla
 
Seçenekler Stil
Eski 25.09.09, 11:33   #11
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

?: Komutu

Bu komut, yalnızca C++ a özgüdür. Kendine özgü bir yazılımı ve mantıksal kullanımı vardır. if-else komutunun kısaltılmışıdır. Fakat, tüm if-else komutları yerine kullanılmaz. Yalnızca karşılaştırma sonrası, tek komut kullanılan uygulamalar için geçerlidir. Bu söylediklerimizi örnek üstünde gösterelim:
//tekcift.cpp
//tekcift.cpp yi bu sefer ?: ile yapıyoruz
#include <iostream.h>
main()
{
int sayi;
cout<< "Bir sayı giriniz:";
cin >> sayi;
cout << (sayi %2==1 ? "tek" : "çift") ;
} Kullanış biçimi: cout << (sayi %2==1 ? "tek" : "çift") ; çok basit ama dikkat edelim. Her zaman kullanmıyoruz.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:33   #12
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

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.
switch( Kontrol Değişkeni )
{
case Sabit1 : komut1;
case Sabit2 : komut2;
.
.
.
default : Komutson;
} Buna en basit örneğimizi verelim

//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:
//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;
} Gayet basit bir örnek değişkenleri tanımladık. Caseleri koyduk ve caselerden sonra gelecek komut satırlarını yerleştirdik. Bu program göründüğü gibi zor değildir.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:33   #13
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

Döngü Komutları

Bir ya da birden fazla deyimin tekrar edilmesini sağlarlar. Döngüler, " belli bir koşul sağlandığı sürece sürekli çalıştırılacak kod parçası " olarak nitelendirilebilir. For döngüsü, while döngüsü, do-while döngüleri, diğer yüksek seviyeli dillerdeki gibidir. Ancak en büyük fark, programın bu tekrar döngüleri istediğinde terk edebilmesidir. C/C++, döngüden çıkmak için beş ayrı yöntem vardır.


C/C++ da ki döngülerin arasındaki fark, beklenen döngü sayıları arasındaki farktan kaynaklanır. Eğer önceden belirli bir döngü sayımız mevcut ise For döngüsü kullanılır. while ve do-while döngülerinde döngü sayısı belli değildir. C++ nın bize vermiş olduğu esneklik sayesinde, döngüleri son derece esnek bir biçimde kullanma şansımız vardır.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:33   #14
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

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.
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.
// 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.
//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ı.
//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[IMG]http://www.************/images/smilies/smile.gif[/IMG].
1. Örnek: Girilen altı not'un ortalamasını alıyor.
//ortalama.cpp
// while döngüsü ile girilen notların ortalamasını aldık.


#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:
//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[IMG]http://www.************/images/smilies/smile.gif[/IMG] 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:
// 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[IMG]http://www.************/images/smilies/smile.gif[/IMG]
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;

} Bu örnekte sanırım fazla açıklama yok. Sizden istediğim, üç kişinin maaşını girdikten sonra onların alacağı toplam maaş ve ödemeleri gereken toplam vergiyi bulmanız. Bunu yaparsanız buraya kadar olanlardan bir şeyler anlamışızdır.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:34   #15
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

Do-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.
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.
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.
//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.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:35   #16
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

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ı:
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.
for ( ilk değer atamalar, koşul, arttırma)
{
cümle1
cümle2
cümle3
...
} Bu söylediklerimizi bir örnek üzerinde izah edelim.
//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:
//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[IMG]http://www.************/images/smilies/smile.gif[/IMG] ).
2.Örneğimiz:
//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:
//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. Burada bırakmak istiyorum. Bir sonraki ders görüşmek üzere.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:35   #17
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

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.
//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.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:36   #18
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

Exit Fonksiyonu

Hayati hata durumlarını ele almak için exit() fonksiyonundan yararlanılır. Bu hatalar main() fonksiyonunu return ile normal olarak sonlandırılmadan önce oluşabilir. Exit() fonksiyonu, durum değerini bir tam sayı parametre olarak döndürür.
Exit() ile özel bir değerin gönderilmesi bazı işlemler yapması için kullanılabilir. Örneğin program komut satırında kullanılıyorsa ve durum değeri bazı hataları gösteriyorsa, işletim sistemi bunları mesaj olarak yazabilir. Exit() fonksiyonu programı sonlandırmanın yanında, tüm bekleyen yazma işlemlerini tamamlar ve açık tüm dosyaları kapatır.
Exit() fonksiyonunu kullanırken kullanmamız gerek kütüphaneler ise process.h ve stdlib.h tır.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:36   #19
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

1) //ASCII kodu x olan karakteri buluyorus

#include <iostream.h>
#include <stdio.h>

int main()
{
int ch;

ch = 85;

cout<<"ASCII kodu 85 olan karakter :";
putc(ch, stdout);
cin>>"\n";
return (0);
}

2) //Derecenin sin,cos,tan değerlerini bulma
#include <iostream.h>
#include <math.h>

int main()
{
double x; //x i tanımladık

x = 45.0; // 45 derece
x *= 3.141593 / 180.0; // Dereceyi radyal değere döndürme
cout<<"45 derecenin sinusu: "<< sin(x)<<endl;
cout<<"45 derecenin kosinusu: "<< cos(x)<<endl;
cout<<"45 derecenin tanjantı: "<< tan(x)<<endl;
return (0);
}

3) // Haftanın günleri[IMG]http://www.************/images/smilies/smile.gif[/IMG]
//switch ve caseleri kullanıyorus.
#include <iostream.h>
#include <stdio.h>


int main()
{
int gun;

cout<<"Lutfen bir karakter giriniz!\n";
cout<<"(Karakter 1 ile 7 arasında olsun):\n";
gun = getchar();

switch (gun){
case '1':
cout<<"Pazartesi \n";
break;
case '2':
cout<<"Salı \n";
break;
case '3':
cout<<"Çarşamba \n";
break;
case '4':
cout<<"Perşembe \n";
break;
case '5':
cout<<"Cuma \n";
break;
case '6':
cout<<"Cumartesi \n";
break;
case '7':
cout<<"Pazar \n";
break;
default:
cout<<"Girdiginiz karakter 1-7 arasında olsun.\n";
break;
}
return 0;
}


4)
//mantıksal operatörler için
#include <iostream.h>

int main()
{


char cocuk, para, araba;



cout << "Çoçuğunuz varmı? (Y/N) ";
cin >> cocuk;

cout << "Çok paranız varmı? (Y/N) ";
cin >> para;

cout << "Spor araba severmisiniz? (Y/N) ";
cin >> araba;


//seçenekleri ben kafadan attım
//maksat burda mantıksal operatörlerin işleyişini görmek
if ((cocuk == 'Y') && (para == 'Y') && (araba == 'N'))
cout << "Sizin için en uygun araba Kamyonet[IMG]http://www.************/images/smilies/smile.gif[/IMG] " << endl;
else if ((cocuk == 'Y') && (para == 'Y') && (araba == 'Y'))
cout << "Sizin için en uygun araba Toros[IMG]http://www.************/images/smilies/smile.gif[/IMG]" << endl;
else if ((cocuk == 'Y') && (para == 'N'))
cout << "Sizin için en uygun araba Renault[IMG]http://www.************/images/smilies/smile.gif[/IMG]" << endl;
else if ((cocuk == 'N') && (para == 'Y') && (araba == 'N'))
cout << "Sizin için en uygun araba Jeep[IMG]http://www.************/images/smilies/smile.gif[/IMG]" << endl;
else if ((cocuk == 'N') && (para == 'Y') && (araba == 'Y'))
cout << "Sizin için en uygun araba Bisiklet[IMG]http://www.************/images/smilies/smile.gif[/IMG]" << endl;
else if ((cocuk == 'N') && (para == 'N'))
cout << "Sizin için en uygun araba Subaru İmpreza WRX[IMG]http://www.************/images/smilies/smile.gif[/IMG]" << endl;

}


5)
//sort.cpp
#include <iostream.h>
#include <iomanip.h>
int main()
{
int x[10] = {1, 37, 3, 7, 4, 9, 2, 33, 19, 5};
int counter;
cout << "S\x{0131}ralamadan önce:\n\n";
cout << "Eleman" << setw(10) << "\x{0130}çerik" <<endl;

// \x{015E}u anki dizinin içeri\x{011F}ini
//gosterir.

for (counter=0; counter<10; counter++)
cout << setw(7) << counter << setw(10) << x[counter] << endl;

// Diziyi s\x{0131}rala

for (int outer=0; outer<10; outer++)
for (int inner=outer+1; inner<10; inner++)
if (x[inner] < x[outer])
{

// De\x{011F}erlerin yerlerini
//de\x{011F}i\x{015F}tir

int temp = x[inner];
x[inner] = x[outer];
x[outer] = temp;
}
cout << "S\x{0131}ralamadan sonra:\n\n";
cout << "Eleman" << setw(10) << "\x{0130}çerik" <<endl;

// S\x{0131}ralanm\x{0131}\x{015F} dizinin
//içeri\x{011F}ini gösterir.

for (counter=0; counter<10; counter++)
cout << setw(7) << counter << setw(10) <<
x[counter] << endl;
return 0;
}

6)
//y=aX^n+bx^(n-1)+.....+zX^0 denkleminin bir noktada türevini bulma

#include <stdio.h>
#include <math.h>

void main(void)
{

int max=11,t,i,denklem[11];
float x,r;

while(max>10)
{
printf("En büyük X değerinin üst ünü giriniz:");
scanf("%d",&max);
}

for (i=max;i>=0;i--)
{
printf("X^%d nin katsayını giriniz :",i);
scanf("%d",&denklem[i]);
}

printf ("Türevi hesaplanacak noktayı giriniz :");
scanf("%f",&x);

r= (max*denklem[max]) * pow(x,(max-1));
for (i=(max-1);i>1;i--)
{
r=r + ((i*denklem[i]) * pow(x,(i-1)));
}
r=r + denklem[1];
printf("Sonuc = %f",r);
}
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 25.09.09, 11:36   #20
crazyossie
 
crazyossie - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 109
Üyelik tarihi: 20.08.2008
Yaşım: 42
Mesajlar: 5.693
Konular: 4141
Rep Bilgisi
Rep Gücü : 32
Rep Puanı : 1000
Rep Seviyesi : crazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud ofcrazyossie has much to be proud of
Aktivite
Level: 53 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1324
Güç: 1897 / 63217
Tecrübe: 96%

İletişim
Standart

Örnekler 2

7) #include <iostream.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
int idariPersonel=0, yazilimciKadrolu=0, yazilimciProje=0;
double netMaasToplam=0, cesitliKesintiToplam=0, saglikKesintiToplam=0;
//programın en sonunda hesaplayacağı toplamlar.

while(1)
{
cout<<"Personel türü:"<<endl;
cout<<"A-İdari"<<endl;
cout<<"B-Yazılımcı (Kadrolu)"<<endl;
cout<<"C-Yazılımcı (Proje)"<<endl;
cout<<"X-Programdan Çıkış"<<endl;
char tur;
cin>>tur;
tur=toupper(tur);
if(tur=='X') {break;}
switch (tur)
{
case 'A' : {
int saat=0, saatUcreti=0;
const int NORMAL=22*8;
double brut=0, net=0, kesinti=0;
cout<<"Toplam çalışma süresini (saat) giriniz: ";
cin>>saat;
cout<<"Saat ücretini giriniz: ";
cin>>saatUcreti;
brut=(double)(NORMAL + 1.5*(saat-NORMAL))*saatUcreti;
//bu satır hem normal hemde fazlamesai de çalışır
net=brut*0.8; kesinti=brut*0.2;
//artık bordor yazılabilir.
cout<<"Bordor bilgileri:"<<endl;
cout<<"Toplam çalışma sürtesi:"<<saat<<"saat."<<endl;
cout<<"Brüt ücret: \t"<<brut<<"TL."<<endl;
cout<<"Kesintiler: \t"<<kesinti<<"TL."<<endl;
cout<<"Net ücret: \t"<<net<<"TL."<<endl;
//genel hesaplara ilişkin yenilemeler
netMaasToplam+=net; cesitliKesintiToplam+=kesinti;
idariPersonel++;
//switchden çıkıyorus.
break;
}
case'B':{
int saat=0, saatUcreti=0;
const int NORMAL=22*10;
double brut=0, net=0, kesinti=0, saglik=0;
cout<<"Toplam çalışma süresi (saat) giriniz: ";
cin>>saat;
cout<<"Saat ücretini giriniz: ";
cin>>saatUcreti;
brut=(double)(NORMAL+1.5*(saat-NORMAL))*saatUcreti;
//bu satır hem nromal hem de fazla mesai de çalışır.
net=brut*0.65;
kesinti=brut*0.2;
saglik=brut*0.15;
//artik bordro yazılabilir
cout<<"Bordro bilgileri: "<<endl;
cout<<"Toplam çalışma süresi:"<<saat<<"saat."<<endl;
cout<<"Brüt ücret: \t"<<brut<<"TL."<<endl;
cout<<"Kesşntiler: \t"<<kesinti<<"TL."<<endl;
cout<<"Sağlık kesintileri: \t"<<saglik<<"TL."<<endl;
cout<<"Net ücret: \t"<<net<<"TL."<<endl;
//genel hesaplara ilişkin yenilemeler.
netMaasToplam+=net;
cesitliKesintiToplam+=kesinti;
saglikKesintiToplam+=saglik;
yazilimciKadrolu++;
//switch den çıkıyoruz.
break;
}
case'C': {
int modul;
double temel=0, modulBasi=0;
double net=0;
cout<<"Temel ücreti girin: ";
cin>>temel;
cout<<"Teslim edilen modül sayısını girin: ";
cin>>modul;
cout<<"Modül başı ücreti girin: ";
cin>>modulBasi;
net=(double) temel+modul*modulBasi;
//artık bordro yazılabilir.
cout<<"Bordor bilgileri:"<<endl;
cout<<"Bitirilen Modül sayısı: "<<modul<<endl;
cout<<"Net ücret: \t"<<net<<"TL."<<endl;
//genel hesaplara ilişkin yenilemeler
netMaasToplam+=net; yazilimciProje++;
//switch den çıkıyorus
break;
}
default: {
cout<<"Geçersiz personel türü. Yeniden Deneyin."<<endl;
}
}//switch

cout<<"Başka bir personelin maaşını hesaplamak istiyormusunuz?(E/H)";
char secenek;
cin>>secenek;
secenek=toupper(secenek);

if(secenek=='H') {break;} //bu while den çıkartır.
else if (secenek=='E'){} //birşey yapma
else {cout<<"Geçersiz seçenek. Ana menüye dönüyor..."<<endl;

//acaba ekranı nasıl temizlerdik?
//Böylece daha güzel görünümlü olan bir programımız olurdu[IMG]http://www.************/images/smilies/smile.gif[/IMG]

}//while



cout<<"Oturum İçin Genel Bilgiler:"<<endl;
cout<<"--------------------------------------"<<endl;
cout<<"Toplam İdari Personel: \t"<<idariPersonel<<endl;
cout<<"Toplam Yazılımcı (Kadrolu): \t"<<yazilimciKadrolu<<endl;
cout<<"Toplam Yazılımcı (Proje): \t"<<yazilimciProje<<endl;
cout<<"--------------------------------------"<<endl;
cout<<"Toplam Net ödeme: \t\t"<<netMaasToplam<<"TL."<<endl;
cout<<"Toplam Cesitli Kesintiler: \t"<<cesitliKesintiToplam<<"TL."<<endl;
cout<<"Toplam Sağlık Sigortası Kesintisi: \t"<<saglikKesintiToplam<<"TL."<<endl;
cout<<"--------------------------------------"<<endl;

system("PAUSE");
return 0;
} Bu örnek Bora GÜNGÖREN`e ait olan C++ İLE NESNE TABANLI PROGRAMLAMA kitabından alınmıştır.
ww.uydulife.tv
crazyossie isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Yeni Konu aç Cevapla

Bookmarks

Etiketler
c++ öğrenmeye başlıyoruz


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

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı

Gitmek istediğiniz klasörü seçiniz


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Dizayn ve Kurulum : Makinist
Forum SEO by Zoints

E-Marine Education | Vbulletin | Tosfed |
www.bilgivadisi.biz   www.bilgivadisi.biz