1. Fonksiyonlar
Bundan sonraki bölümlerdeki kullanacagimiz
derleyici Borland Turbo C++ 4.5 tir. Fazla
zorlanmayacaginizi umut ediyorum. Kolay anladiginiz yerlere lütfen
dikkat ediniz. Hata yapma olasiliginiz daha da çok artmaktadir.
Yapacaginiz hatalar programin çökmesine, belki de sistemin zarar
görmesine sebep olabilir. Lütfen vermis oldugum uyarilara ve
tavsiyelere uymaya çalisin. Sizin de tavsiyeniz olursa bana
bildiriniz:). Haydi kolay gelsin...
1. Fonksiyonlara Giris:
Fonksiyonlarin programlama hayatina girmesi
ile daha büyük boyutta sistemlerin tasarimi mümkün hale gelmistir.
Fonksiyonlar ile alakali derslerimizde, fonksiyonlarin
tanimlanmasi ve kullanimi hakkinda bilgi edineceksiniz.
Fonksiyonlar konusu size her ne kadar ilk bakista "Fonksiyon" adi
altinda bir konu gibi gelse de, aslinda bir alt programdir. Hatta
programimizin içine, kodlamamizin daha kolay ve gelistirilebilir
hale gelmesini saglayan programciklar da diyebiliriz.
Daha önce baska bir programlama dili
gördüyseniz (yüksek seviyeli diller), bu konuda fazla
zorlanmayacaksinizdir. Diger yüksek seviyeli dillerdeki fonksiyon
kullanimina çok benzemektedir. Hiç bilmediginizi farz ederek
konuya giris yapalim.
Fonksiyon Nedir?
Örnegin, y=F(x) fonksiyonu; Bu matematiksel
fonksiyon parametre olarak aldinan deger üzerinde bir islem
gerçeklestirip, bir sonuç degerini döndürür. Mesela F(x)=x^3+5
seklinde bir fonksiyonumuz olsun, x=2 için F(x)=13 olur. Burada x
fonksiyonun parametresi, 13 ise fonksiyonun geri döndürdügü
degerdir. Simdi de bu matematiksel ifadeyi kodlarimizla
yorumlayalim.
Int x;
x=F(2,5)
//buradan da "
int f(2,5) " gibi görebiliriz...
Dikkat edersek ikinci satirda, daha önce
islemedigimiz bir kod var. Int x,
F(2,5) degerine esitlenmistir. Simdi bir fonksiyonun nasil
yazildiginin kalibini çikartabiliriz.
<Döndürdügü deger> <Fonksiyonun adi> ( <parametre listesi> ) {
<ifadeler>
}
Buradaki parantezlere ve küme isaretlerine
dikkat ediniz. Simdi yukarda yazdigimiz kalibi biraz açalim.
<Döndürdügü deger> : Fonksiyon her
hangi bir tipte deger döndürebilir. Bu bilesen fonksiyonun
döndürecegi degerin tipini ifade eder. (örnegin, int, dounle,
float v.s v.s )
<Fonksiyonun adi> : Yapmak
istedigimiz islemin adidir. Örnegin bir asal sayi fonksiyonu
yazacagiz. Burada yazacagimiz fonksiyonun adini belirtiyoruz.
Benim size tavsiyem AsalSayi veya asal_sayi seklinde
kullanmanizdir. Okunabilirlik açisindan size avantaj saglayacaktir.
<parametre listesi> : Fonksiyonun
kullanacaga parametrelerin tipleri ile siralanir. Örnegin,
FonksiyonAdi(int x, double y)
gibi.
<ifadeler> : Fonksiyonun kullanacagi
tanimlamalar ve kodlardan olusan kisimdir. Nasil biz
main() { kodlar }
seklinde kullaniyorsak. Bunu da ona benzetebiliriz. Ama main() i
bunlarla karistirmayiniz.
Simdi bu fonksiyon kalibina uygun bir kod
yazalim. Örnegin, Faktoriyel bulma islemini ele alalim. Biz bir
sayinin Faktörüyelini nasil bulurduk?
n!=n(n-1)(n-2)...1 Yani, 1 den n e
kadar olan sayilarin çarpimidir.
long Faktoriyel(int n) {
return n*Faktoriyel(n-1);
}
Evet, burada fonksiyonumuzu tanimladik.
Sanirim yukaridaki blokla karsilastirinca, ne kadar kolay oldugunu
sizde görmüssünüzdür. Simdi bu Faktoriyel fonksiyonumuzu nasil bir
programda kullanacagiz? Hemen devamini yazayim.
long Faktoriyel(int n) {
return n*Faktoriyel(n-1);
}
void main() {
cout<<"5! (Bes Faktoriyel)= "<<Faktoriyel(5);
}
Iste gördügünüz gibi ne kadar basit degil
mi? J Fonksiyonumuzu tanimladik. Sonra programimizda n`e 5
degerini verdik. Faktoriyel fonksiyonu hesaplayip bize söyledi.
Biraz da yaygın yapılan hatalardan ve dikkat
etmemiz gereken noktalardan bahsedelim. Kodlama yaparken fonksiyon
adini belirttigim sekilde yazarsaniz 30-40 sayfalik kodlarda hata
bulmaniz ve de fonksiyonlarin yerini belirlemeniz açisindan büyük
kolaylik olucaktir. Yukarida verdigimiz x=F(2,5) fonksiyonununu
göz önünde tutalim. Görüldügü gibi F(2,5) degeri x e atanmistir.
Hiç bir zaman Fonksiyonun aldigi deger sola yazilmaz. Ayrica bir
Fonksiyon çagrisi, baska bir fonksiyonun çagrisi olabilir. Örnegin,
x=F(a,F(a,5) gibi. Burada F Fonksiyonun iki parametresi vardir a
ve F(a,5) dir. Bu durumda öncelikle parametreler hesaplananacagi
için F(a,5) in degeri ile a nin degeri F te parametreler olarak
kullanilir.
|