IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Reklam Ver


Forum tutkunlarının tek adresi Türkiye Sohbet Odaları Sohbetteyiz herkes burda

ayna chat muhabbetbayilik veren firmalar

Şeker Shell  Sohbet


C ve C++

C++ hakkında aradığınız herşey...



1Beğeni(ler)

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 02 Ocak 2010, 14:05   #11
Çevrimdışı
Cevap: C++ Dersleri




break Komutu

Bazı durumlarda, döngüyü aniden sonlandırmak isteriz. Bunun için 'break' komutunu kullanırız. Döngüyü aniden sonlandırmak veya döngüyü kırmak işlemini, zaten daha önce switch case'lerde kullanmıştık. Bahsetmediğimiz şey, bunun her döngü içersinde kullanılabileceğiydi.
Aşağıdaki programı inceleyelim:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* 0 ile 99 arasında tesadüfi sayılar üreten bir programın, kaçıncı seferde 61 sayısını bulacağını yazan program aşağıdadır. */ #include<stdio.h> int main( void ) { int i,tesadufi_sayi; int deneme_sayisi = 0; //while içinde 1 olduğundan sonsuza kadar döngü çalışır. while( 1 ){ //tesadufi_sayi değişkenine, 0 ile 99 arasında //her seferinde farklı bir sayı atanır. //rand( ) fonksiyonu tesadüfi sayı atamaya yarar. //mod 100 işlemiyse, atanacak sayının 0 ile 99 //arasında olmasını garantiler. tesadufi_sayi = rand() % 100; //Döngünün kaç defa çalıştığını deneme_sayisi //değişkeniyle buluruz. deneme_sayisi++; //Eğer tesadufi sayı 61'e eşit olursa, //döngü kırılıp, sonlandırılır. if( tesadufi_sayi == 61 ) break; } printf("Toplam deneme sayısı: %d\n",deneme_sayisi); return 0; }


Program için koyulmuş açıklamalar ( comment ) zaten neyin n'olduğunu açıklıyor. Kısaca bir şeyler eklemek gerekirse, bitişinin nerede olacağını bilmediğimiz bir döngüyü ancak, break komutuyla sonlandırabiliriz. Şartlar sağlandığında, break komutu devreye girer ve döngü sonlandırılır. Bunun gibi bir çok örnek yaratmak mümkündür.
continue Komutu

break komutunun, döngüyü kırmak için olduğundan bahsetmiştik. Bunun dışında işlem yapmadan döngüyü devam ettirmek gibi durumlara da ihtiyacımız vardır. Bunun içinde continue ( Türkçe: devam ) komutunu kullanırız.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* Sadece tek sayıları yazdıran bir program */ #include<stdio.h> int main( void ) { int i; for( i = 0; i < 10; i++ ) { //i değişkeninin 2'ye göre modu //0 sonucunu veriyorsa, bu onun //bir çift sayı olduğunu gösterir. //Bu durumda ekrana yazdırılmaması //için döngü bir sonraki adıma geçer. if( i%2 == 0 ) continue; printf("%2d\n",i); } return 0; }


0 ile 10 arasındaki tek sayıları gösteren program örneğini yukarda görebilirsiniz. Elbette ki bu işi daha farklı ve daha iyi yapan bir program yazabilirdik. Ama şimdilik continue komutunun nasıl kullanıldığını inceleyelim.
Program bir for döngüsü çalıştırmaktadır. Her defasında i değişkenin 2'ye göre modu alınır. Eğer sonuç 0'sa, bu sayının çift olduğunu gösterir. Dolayısıyla, bunun ekrana yazdırılmaması gerekir. Bu yüzden, döngü içersindeki işlemleri sürdürmek yerine, altta kalan kodları atlarız. Burada continue komutu kullanılır ve kullanıldığı noktadan itibaren olan işlemler yapılmaz. Döngü başa döner, aynı işlemleri yapar. Bu sefer i tek sayı olacağından continue komutu çalışmaz ve sayıyı ekrana bastırırız.
goto Yapısı

C programlama dilinde bulunan bir başka yapı, goto deyimidir. Koyacağınız etiketler sayesinde, programın bir noktasından bir başka noktasına atlamanızı sağlar. goto, bir döngü değildir ancak döngü olarak kullanılabilir.
goto, çalışabilmek için etiketlere ihtiyaç duyar. Etiketler, vereceğiniz herhangi bir isme sahip olabilir. Etiket oluşturmak için bütün yapmanız gereken; etiket adını belirleyip, sonuna iki nokta üst üste eklemek ( : ) ve programın herhangi bir yerine bunu yazmaktır. goto deyimi kullanarak bu etiketleri çağırırsanız, etiketin altında bulunan kodlardan devam edilir. goto ve etiketlere dair genel yapıyı, akış diyagramıyla birlikte aşağıda bulabilirsiniz:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
label_name: . . . if( kosul ) { goto label_name } . . .

NOT: goto deyimi tek başına da kullanılabilir. Fakat mantıksal bir sınama olmadan, goto yapısını kullanmanız, sonsuz döngüye neden olacaktır.
Şimdi goto ifadesiyle basit bir döngü örneği oluşturalım. Önceki seferlerde olduğu gibi ekrana 10 defa "Merhaba Dünya" yazdıralım:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> int main( void ) { int i = 0; // baslangic_noktasi adinda bir etiket koyuyoruz. // i degiskeni 10 degerine ulasmadigi surece, // program buraya donecektir. baslangic_noktasi: printf( "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; return 0; }

İstediğiniz sayıda etiket koyup, goto kullanarak, programın herhangi bir noktasına ulaşabilirsiniz. Programınız, etiket altında kalan kısımdan itibaren çalışır. goto yapısıyla gelen esneklik, ilk bakışta oldukça güzel görünüyor. Ancak goto için birçok kaynak, "ya hiç kullanmayın ya da olabildiğince az kullanın" demektedir.
Okunup, anlaşılması zor ve üzerinde çalışılması güç bir koddan, herkesin uzak durması gerekir. İngilizce'de, karman çorman koda, "spagetti kod" adı verilmiştir. goto deyimi, kodunuzun spagetti koda dönüşmesine neden olur. Çünkü program akışının takibini zorlaştırıp, kodun okunabilirliğini azaltır. Diliyorsanız, goto deyimini kullanabilirsiniz. Ama zorunlu kalmadıkça kaçınmak en iyisi...
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
ordo ab chao

Hiç bir şey doğru değil, her şey mümkündür...
Ad Gloriam.
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
Alt 03 Ocak 2010, 13:44   #12
Çevrimdışı
Cevap: C++ Dersleri




“While” Döngüsü
for döngüsüyle 0′da 100′e kadar 10′un katları olan bütün sayıları santigrat derece kabul edip bunları fahrenayta çeviren bir program yazalim..
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h> main() { int s; float f; for (s=0;s<110;s=s+10) { f=(s/0.55)+32; printf("%d\t%.2f\n",s,f); } }

Şimdi gelelim while döngüsüne. Yine aynı örnek üzerinden while döngüsünü anlatacağım.

Aşağıdaki program for döngüsüyle aynı işi yapar.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h> main() { int s=0; float f; while (s<110) { f=(s/0.55)+32; printf("%d\t%.2f\n",s,f); s=s+10; } }

Gördüğünüz gibi ilk programla ikincisi arasında çok az fark var.
While komutu şu şekilde kullanılır:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
while ( [koşul] )

For döngüsünden farklı olarak burada değişkenin başlangıç değerini ve döngü başa döndüğünde yapılacak işlemi yazmadık. Bu yüzden döngü ilk fahrenayt değerini hesaplamaya çalıştığında bir s değerinin olması gerekir. Bu yüzden,

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
int s=0;

yazarak döngüden önce ilk s değerini belirlemiş olduk. Yani değişkenin başlangıç değeri 0 olacaktır.
Döngü başa döndüğünde yapılacak işlemi de döngü sonunda belirliyoruz. Bu da,

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
s=s+10;


işlemidir. Burada s değeri 10 arttırılır ve yeni değer s‘ye eşitlenir.
Bütün bunları göz önüne alırsak program şu şekilde çalışır:
İlk santigrat derecemiz 0′dır (s=0). Program while satırına geldiğinde koşulu dikkate alır. Eğer koşul sağlanıyorsa döngüye girer, aksi halde girmez. İlk durumda s değeri 0 olduğu için s<100 koşulu sağlanmış olur. Döngüye girilir ve döngü içindeki işlemler sırayla yapılır. Önce santigrat dereceye karşılık gelen fahrenayt değeri hesaplanır. Daha sonra bu ekrana yazdırılır ve sonunda s değeri 10 arttırılır. Daha sonra döngü tekrar başa yani while satırına döner. Bu işlemler s=100 durumuna kadar yapılır. s=110 olduğunda ve döngü başa döndüğünde s<100 koşulu sağlanmayacağı için döngüden çıkılır ve program sonlanır..

__________________
ordo ab chao

Hiç bir şey doğru değil, her şey mümkündür...
Ad Gloriam.

Konu toXic tarafından (03 Ocak 2010 Saat 13:52 ) değiştirilmiştir.
  Alıntı ile Cevapla

Alt 04 Ocak 2010, 17:00   #13
Çevrimdışı
Cevap: C++ Dersleri




Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> int main( void ) { int i; for( i = 0 ; i < 10; i++ ) { printf("%2d: ibrahim\n",(i++)); } return 0; }


Burada söyle bir sonuc verir, yani 0-2-4-6-8-

ekrana ibrahim yazdirir;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> int main( void ) { int i; for( i = 0 ; i < 10; i++ ) { printf("%2d: Merhaba Dünya\n",(i+1)); } return 0; }

Bu Sekilde ise; 10 adet ibram yazdirir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
1: ibrahim 2: ibrahim 3: ibrahim 4: ibrahim 5: ibrahim 6: ibrahim 7: ibrahim 8: ibrahim 9: ibrahim 10: ibrahim Devam etmek için bir tuşa basın . . .

Bu Sekilde. 2 program arasindaki tek değişiklik;

1. programda -> printf("%2d: ibrahim\n",(i++));
2. programda -> printf("%2d: ibrahim \n",(i+1));

Bu Sekilde.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Derleyicisiz calismak, okumadan calismaya benzer
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
ordo ab chao

Hiç bir şey doğru değil, her şey mümkündür...
Ad Gloriam.
  Alıntı ile Cevapla

Alt 06 Ocak 2010, 04:56   #14
Çevrimdışı
Cevap: C++ Dersleri




anlatım biraz c e kaymis mi diyeyim yoksa neredeyse tümü c olmus mu baslıgı c++ yerine c olarak degiştirmeniz daha guzel olacak galiba

ve [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

adresinden aynı konuyu ayrıntılı bicimde devam edebilirsiniz

__________________
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  Alıntı ile Cevapla

Alt 29 Ocak 2010, 18:44   #15
Çevrimdışı
Cevap: C++ Dersleri




toXic Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Bunlar Alıntı, Kendimin Çalistiğim bazı yerler
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

olsun yinede calışman yeter bu işin eğitimini alıyorum bende

__________________
18.12.2016 Son.
  Alıntı ile Cevapla

Alt 14 Kasım 2017, 20:38   #16
Çevrimdışı
Cevap: C++ Dersleri




toXic Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> int main( void ) { int sayi; printf("Değer giriniz> "); scanf("%d",&sayi); printf("Girilen değer: %d\n",sayi); return 0; }

Gördüğünüz gibi hiçbir zor tarafı yok. Klavyeden girilecek bir tamsayınız varsa, yapmanız gereken önce değişkenin tipini ve adını belirtmek, sonra scanf( ); fonksiyonunu kullanmak. Bu fonksiyonu kullanmaya gelince, scanf(" yazdıktan sonra değişken tipine göre %d, %c, veya %f, yazıp, ardından & işaretini kullanarak atanacak değişkenin adını belirtmekten ibaret. Fark etmişsinizdir, printf(); ve scanf(); fonksiyonlarının her ikisinde de %d koyduk. Çünkü scanf( ); ve printf( ); fonksiyonların değişken tipi simgeleri aynıdır. Aşağıdaki tablodan hangi değişken tipinin nasıl deklare edileceğini, kaç byte yer kapladığını, maksimum/minimum alabileceği değerleri ve giriş/çıkış fonksiyonlarıyla nasıl kullanılabileceğini bulabilirsiniz. Tanımlamalar ve fonksiyon uygulamaları, degisken isimli bir değişken için yapılmıştır.


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
include<stdio.h> #include<limits.h> #include<float.h> int main( void ) { printf( "\nTIP\t\t BOYUT\t\t MIN\t \tMAX\n" ); printf("==============================================================\n"); printf( "char\t\t: %d byte(s)\t%d\t\t%d\n", sizeof(char),CHAR_MIN,CHAR_MAX ); printf( "short\t\t: %d byte(s)\t%d\t\t%d\n", sizeof(short), SHRT_MIN, SHRT_MAX ); printf( "int\t\t: %d byte(s)\t%d\t%d\n", sizeof(int), INT_MIN, INT_MAX ); printf( "unsigned int\t: %d byte(s)\t\t\t%u\n",sizeof(unsigned),UINT_MAX ); printf( "long\t\t: %d byte(s)\t%ld\t%ld\n", sizeof(long), LONG_MIN, LONG_MAX ); printf( "float\t\t: %d byte(s)\t%e\t%e\n", sizeof(float), FLT_MIN, FLT_MAX ); printf( "double\t\t: %d byte(s)\t%e\t%e\n\n", sizeof(double), DBL_MIN, DBL_MAX ); return 0; }

Programı inceleyip, detaylara girmeyin. Sadece çalıştırıp, sonuçları görmeniz yeterli. Örneğin, Ubuntu yüklü x86 tabanlı bir bilgisayarda, karşınıza şöyle bir ekran gelecektir:


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
TIP BOYUT MIN MAX ============================================================== char : 1 byte(s) -128 127 short : 2 byte(s) -32768 32767 int : 4 byte(s) -2147483648 2147483647 unsigned int : 4 byte(s) 4294967295 long : 4 byte(s) -2147483648 2147483647 float : 4 byte(s) 1.175494e-38 3.402823e+38 double : 8 byte(s) 2.225074e-308 1.797693e+308

Sanırım hiç istemediğim bir şey yaparak, kafanızı karıştırdım. Dilerseniz, burada keselim ve bunlar ileriye dönük olarak bir kenarda dursunlar. Yine de daha fazla bilgi isterseniz, Teach Yourself C in 21 Days yazısına göz atabilirsiniz. Ama dediğim gibi bunların sonraya bırakılması, uygun olacaktır.

Şu ana kadar öğrendiklerimizle girilen herhangi iki sayısının ortalamasını hesaplayan bir program yazalım. Başlamadan önce, değişkenlerimizin kaç tane ve nasıl olacağını düşünelim. Şurası kesin ki, alacağımız iki sayı için 2 farklı değişkenimiz olmalı. Bir de ortalamayı hesapladığımızda bulduğumuz değeri ona atayabileceğimiz bir başka değişkene ihtiyacımız var. Peki değişkenlerimizin tipleri ne olacak? Başında belirttiğimiz gibi yazmamız gereken program herhangi iki sayı için kullanılabilmeli. Sadece tamsayı demiyoruz, yani virgüllü bir sayı da girilebilir. O halde, girilecek iki sayının değişken tipi float olmalı. Bunu double da yapabilirsiniz, fakat büyüklüğü açısından gereksiz olacaktır. Ortalamaların atanacağı üçüncü değişkene gelince, o da bir float olmalı. İki virgüllü sayının ortalamasının tamsayı çıkması düşünülemez. Oluşturduğumuz bu önbilgilerle programımızı artık yazabiliriz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> int main( void ) { float sayi1,sayi2,ortalama; printf("İki sayı giriniz> "); scanf("%f%f",&sayi1,&sayi2); ortalama = ( sayi1 + sayi2 ) / 2; printf("Ortalama sonucu: %f'dir",ortalama); return 0; }

Yukarıda yazılı programda, bilmediğimiz hiçbir şey yok. Gayet basit şekilde izah edersek, 2 sayı alınıp, bunlar toplanıyor ve ikiye bölünüyor. Bulunan değerde ortalama isminde bir başka değişkene atanıyor. Burada yabancı olduğumuz, sadece scanf(); kullanımındaki değişiklik. scanf(); fonksiyonuna bakın. Dikkat edeceğiniz gibi, değişkenlerden ikisine de tek satırda değer atadık. Ayrı ayrı yazmamız da mümkündü, ancak kullanım açısından böyle yazmak açık şekilde daha pratiktir. Bu konuda bir başka örnek verelim. Diyelim ki, biri int, diğeri float, sonuncusuysa char tipinde 3 değişkeni birden tek scanf(); ile almak istiyorum. Değişkenlerin isimleri, d1,d2 ve d3 olsun. Nasıl yaparız?

************************************************** *************************************
ustam kolay gelsin. bir soru var sonucunu yada yolunu bulamadım. rica etsem bu soruyu cozermısın. bende mantıgı
anlamıs olurum. yardımcı olsanda olmasanda teşekürler şimdiden hayırlı aksamlar.


#include <stdio.h>
int main()
{
int i,sayi,max=0;
for(i=1;i<=5;i++)
{
printf("sayi giriniz :"); scanf("%d",&sayi);
if(sayi>max)
{
max=sayi;
}
}
printf("En buyuk Sayi %d dir",max);

}

// bu ornekte en buyuk sayıyı buluyoruz.istediğim şu: bu soruda kullanıcının yazdıgı 5 rakamdan en buyugu degılde en kucugunu sorsak nasıl ekrana basardık?

__________________
Yaşam..
  Alıntı ile Cevapla

Alt 15 Kasım 2017, 01:12   #17
Çevrimdışı
Cevap: C++ Dersleri




fuat1260 Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
************************************************** *************************************
ustam kolay gelsin. bir soru var sonucunu yada yolunu bulamadım. rica etsem bu soruyu cozermısın. bende mantıgı
anlamıs olurum. yardımcı olsanda olmasanda teşekürler şimdiden hayırlı aksamlar.


#include <stdio.h>
int main()
{
int i,sayi,max=0;
for(i=1;i<=5;i++)
{
printf("sayi giriniz :"); scanf("%d",&sayi);
if(sayi>max)
{
max=sayi;
}
}
printf("En buyuk Sayi %d dir",max);

}

// bu ornekte en buyuk sayıyı buluyoruz.istediğim şu: bu soruda kullanıcının yazdıgı 5 rakamdan en buyugu degılde en kucugunu sorsak nasıl ekrana basardık?

Sorunu Çözdüm kilit.

__________________
Yaşam..
  Alıntı ile Cevapla

Cevapla

Etiketler
dersleri

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 Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Aşk Dersleri SeytaninOrkestrasi Şiir, Hikaye ve Güzel Sözler 1 05 Nisan 2010 01:20
PHP Dersleri 5 KraLiSHE PHP 1 21 Mart 2009 22:18
PHP Dersleri 4 KraLiSHE PHP 0 21 Mart 2009 14:20
PHP Dersleri 3 KraLiSHE PHP 0 21 Mart 2009 14:17