C

C PROGRAMLAMA(9)

Merhaba arkadaşlar serimizin dokuzuncusu ile devam ediyoruz.

Fonksiyonlar I (Alt Programlar)

C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir yada daha çok fonksiyonun bir araya gelmesi ile oluşur. Bu özellik bütün Yapısal Diller’in (C, Fortran, Pascal, …) temelini oluşturur. Yapısal Diller’e hakim olmak için fonksiyon oluşturmayı ve kullanmayı iyi öğrenmek gerekir.
Fonksiyon Kavramı
Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren argumanları (bağımsız değişkenleri) vardır.

Fonksiyonların girdilerine parametreler yada argumanlar denir. Bir fonksiyon bu parametreleri alıp bir işleme tabi tutar ve bir değer hesaplar. Bu değer, çıktı veya geri dönüş değeri (return value) olarak adlandırılır. Unutmayın ki, bir fonksiyonun kaç girişi olursa olsun sadece bir çıkışı vardır.
C Programlama Dili, kullanıcısına bu türden fonksiyon yazmasına izin verir. C dilinde hazırlanan bir fonksiyonun genel yapısı şöyledir:
FonksiyonTipi FonksiyonAdı(argüman listesi)
argumanların tip bildirimleri {
Yerel değişkenlerin bildirimi

fonksiyon içindeki deyimler veya diğer fonksiyonlar

return geri dönüş değeri;
}


Örneğin iki sayının toplamının hesaplayacak bir fonksiyon şöyle tanımlanabilir:
/* klasik biçim */
int topla(x,y)
int x,y {
int sonuc;
sonuc = x + y;
return sonuc;
}

veya
/* modern biçim */
int topla(int x,int y) {
int sonuc; sonuc = x + y;
return sonuc;
}

veya
/* modern biçim */
int topla(int x,int y) {
return (x+y);
}

Bu örnekte, fonksiyonun kimlik kartı! ve kutu gösterimi şöyledir:
 Fonksiyon tipi: int
 Fonksiyon adı : topla
 parametreler : x ve y
 geri dönüş değeri: x+y

Her üç program parçasında da return (geri dönüş) deyimi kullanılmaktadır. Bu deyim C programlama dilinin anahtar sözcüklerinden biridir ve fonksiyon içerisinde sonucu, kendisini çağıran yere göndemek için kullanılır. Yani topla fonksiyonu herhangi bir programın içerisinde kullanıldığında, fonksiyonun üreteceği sonuç return deyiminden sonra belirtilen değişken veya işlem olacaktır. Örneğin fonksiyon:

int t;

t = topla(9,6);

Fonksiyon Bildirimi
Bir fonksiyonun bildirimi iki türlü yapılır:
1.Ana programdan önce:
2. …
3. int topla(int x,int y) /* fonksiyon */
4. {
5. …
6. }
7. …
8. main()
9. {
10. …
11. }

12.Ana programdan sonra: Bu durumda fonksiyon örneği (function prototype) ana programdan önce bildirilmelidir.
13. …
14. int topla(int x, int y); /* fonksiyon örneği /
15. …
16. main()
17. {
18. …
19. }
20. …
21. int topla(int x, int y) / fonksiyon */
22. {
23. …
24. }

Bir C programı içinde, yazmış olduğunuz fonksiyonlar genellikle bu iki tipte kullanılır. İkinci kullanımda fonksiyon prototipi mutlaka bildirilmelidir. Aksi halde bir hata mesajı ile karşılaşılır. Fonksiyon prototipinde arguman isimlerinin yazılması zorunlu değildir. Sadece arguman tiplerini belirtmek de yeterlidir. Yukarıdaki topla fonksiyona ait prototip:
int topla(int x, int y);
şekinde yazılabileği gibi
int topla(int, int);
şeklinde de yazılabilir.
Buraya kadar anlatılanlar bir Program üzeride özetleyelim.


Programda, klavyeden okunan a ve b değişkenleri fonksiyonuna parametre olarak aktarılmıştır. Bu değişkenlerin isimleri ile topla fonksiyonunda kullanılan değişkenlerin (x ve y) isimleri aynı olması zorunlu değildir. Burara a ve b değişkenleri sırasıyla x ve y değişkenleri yerine konmuştur. 16. satırda toplam adlı tamsayı değişkenine topla fonksiyonunun dönüş değeri (a + b değeri) atanmıştır.

Belki karmaşık gelmiş olabilir. Fakat Program 9.1 daha kısa şöyle yazılabilirdi:

Geri Dönüş Değerleri
return anahtar sözcüğünün iki önemli işlevi vardır:
1. fonksiyonun geri dönüş değerini oluşturur
2. fonksiyonu sonlandırır
Bu deyiminden sonra bir değişken, işlem, sabit veya başka bir fonksiyon yazılabilir. Örneğin:
return (a+b/c); /* parantez kullanmak zorunlu değil /
return 10; / değişken kullanmak mecbur değil /
return topla(a,b)/2.0; / önce topla fonksiyonu çalışır */
Bir fonksiyonda birden çok geri dönüş değeri kullanılabilir. Fakat, ilk karşılaşılan return deyiminden sonra fonksiyon sonlananır ve çağrılan yere bu değer gönderilir. Örneğin aşağıdaki harf fonksiyonunda beş tane return deyimi kullanılmıştır.
char harf(int not) {
if( not>=0 && not<50 ) return ‘F’;
if( not>=50 && not<70 ) return ‘D’;
if( not>=70 && not<80 ) return ‘C’;
if( not>=80 && not<90 ) return ‘B’;
if( not>=90 ) return ‘A’;
}

Bu fonksiyon kendisine parametre olarak gelen 0-100 arasındaki bir notun harf karşılığını gönderir. Aslında geri gönderilen değer bir tanedir. Eğer bu fonksiyon aşağıdaki gibi çağrılırsa:
char harfim;

harfim = harf(78);

harfim değişkenine ‘C’ değeri (karakteri) atanır.

0 0 vote
Article Rating
[Toplam: 0   Ortalama: 0/5]
Yorum Yapmak İçin Tıklayın
0 Yorum
Inline Feedbacks
View all comments
To Top
0
Would love your thoughts, please comment.x
()
x