Arkadaşlar yarın programlama sınavım var. Elinizde faydalı olabileceğinizi düşündüğünüz fonksiyonlar ve dizilerle ilgili örnekler varsa paylaşırsanız memnun olurum. Yada site de önerebilirsiniz. Şimdiden teşekkürler...
int topla(int, int); /////--- Burada aşağıda yazdığımız Fonksiyonu Programa tanıtıyoruz..Derleyici satır satır kodladığı için tanıtmazsak hata verir.. //////////////////----ve yazrken int topla yazıyor başta Oradaki int Yzılan fonksiyonun bir integer değer ürettiği anlamına gelir.. parantez içindeki (int ,int) ise /////////////----(int,int) Bize bu fonksiyonu kullanırken benden 2 tane Integer değer isticek anlamaına geliyor...(Fonksiyonu tanıtırken yazıcam gene)
toplam = topla(a,b); /////Burada ise main fonksiyonda tanıttığımız toplam adlı değişkene Fonksiyonda üretilecek sonuç değerini veriyoruz//
printf("%d ve %d nin toplami %d dir.\n", a,b,toplam);
return 0; }
int topla( int x, int y )///Burada int x,int y kafanı karıştırmasın yani burdada biz X veY gibi değişken atamak zorunda değiliz yukardada gördüğün gibi { ////////biz topla(a,b) yaptık..topla(int x,int y) ile biz dışarıdan integer türünde 2 değişken gireceğiz haberin olsun diyoruz a,b,c,d x,y önemli değil int sonuc; //////önemli olan dışardan atanan 2 değişkeninde intger olması...bu 1. nokta sonuc = x + y; //////2. nokta ise " int topla "derken buradaki int ise Fonksiyon sonunnda oluşturaln değer bir int değeridir demek oluyor.. return sonuc; }
----------------------- ---Eğer kullanılan Fonkda bir değer üretilecekse Mutlaka return değeri kullanılmaılıdır..bu return i ister yukardaki gibi kullanırsın istersen o fonksiyonu
int topla( int x, int y ) { return x+y; }
---şeklinde bana göre çok daha klas şekilde yzabilirsin.Ben return ü şu şekilde düşünyorum göndermek istedğin sonuc veya fonksiyon çıktısı ne olsun anlamında... ---Bazı fonksiyonlarda ise işlem yapılmaz yani sen bi değer üretmek istemiorsundur misal if kullanırsın eğer şöyleyse şunu yapsın şöyleseyle şunu göstersin gibi amacın değer oluşturmaktan cok oluş bildirmek ise return değeri kullanmıyoruz..onuda void Fonksiyon_ismi () şekliden kullanabilirsin hatta bu void fonksiyonunda dışardan bi değer girdirebilirsin void Fonksiyon_ismi (int x) gibi kullanabilirsin bu şekilde demek istiyorsunki ben dışardan int türünde bir değer gireceğim bu değer ile sonuç üretmekten ziyade bir durumdan haber versin gibi.. ---Misal olarak küçükbir fonk tanıtayım void Hagi (int x) { if(x==3) printf("x eşittir 3e"); else if(x==4) printf(x eşittir 4e"); else printf("x eşit değildir hem 3 hem 4e"); } --bunuda bir main fonk içine bir sayı girilmesini istersin scanf("%d",&T); gibi fonksiyonuda Hagi(T); şeklinde yazıp girilen T değerinin fonksiyonda kullandığın işlemlere göre bir durum belirtir.Fantazi tamamen sana ait istedğin giib kullanabilirsin.. --İnş Anlatabilmişimdir bende yeniyim ..Aklına takılan soru olursa yazarsın dilim döndğünce anlatmaya çalışırım..Bunları şuan kafamdan uydurdum
teşekkürler yazdıklarınızı sonuna kadar okudum. bu işin mantığını kavratmada güzel bir örnek ama ben biraz daha ileri seviyede örnekler istiyorum. ve ne kadar çok örnek bulabilirsem benim için o kadar iyi olur. çünkü bir örnekten anlamadığımı diğerlerine bakarak anlayabiliyorum. bende şöyle bir örnek paylaşayım.
1. örnek Barbut oyununun fonksiyon kullanılmadan yazılımı. 2. örnek ise fonksiyonlar yardımı ile yazılımı :
int main(void) { int die1,die2,sum,point,a; status_e game_status = GAME_CONTINUES; //enum'a başlangıc degeri ver,enum değeri GAME_CONTINUES olduğu sürece oyun aşağıdaki while döngüsü devam eder.
srand(time(NULL)); die1 = 1+rand() %6; //rastegele 1-6 arası tam sayı üret die2 = 1+rand() %6; //rastegele 1-6 arası tam sayı üret sum = die1 + die2; //üretilen iki sayıyı topla cout <<"Zarlar:" << die1<< "+" << die2 <<"="<<sum<<endl; //toplanan iki sayıyı ekranda göster switch (sum)// sum degerini kontrol et { case 7: case 11: game_status=PLAYER_WINS;break ; //eger sum değeri 11 ise game_status değerini PLAYER_WINS olarak ayarla sonraki kısımda while döngüsünde bu degerlere göre işlem yapacağız case 2: case 3: case 12: game_status=PLAYER_LOSES;break; default: game_status=GAME_CONTINUES; point=sum; cout << "Sayi:"<<point<<endl; break; } while (game_status == GAME_CONTINUES) { //döngü başlangıcı die1=1+rand() %6; die2=1+rand() %6; sum=die1+die2; cout <<"Zarlar:" << die1<< "+" << die2 <<"="<<sum<<endl; if(sum==point) //daha önce atılan zar toplam sayısı,eğer tekrar atılan zarlar öncekine eşit ise oyuncu kazanır game_status=PLAYER_WINS; else { if (sum==7) //eger atılan zar sayı toplamı 7 ise oyuncu kaybeder game_status=PLAYER_LOSES; } } if(game_status==PLAYER_WINS) cout<<"Oyuncu kazanir."<<endl; else cout<<"Oyuncu kaybeder."<<endl; cin>>a;