You are on page 1of 22

Bilgisayar Programlama

Hafta 8 22/04/2021

Dr. Serap Karagol 1


Fonksiyon nedir?

Örnekler

Dr. Serap Karagol 2


Fonksiyonlar

Bir

onbinlerce
Böyle durumlarda, esas görevi daha küçük ve kolay idare edilebilir alt görevlere

öngörmektedir.
C .
C'de altprogramlara fonksiyon (function) denir.

komut grubudur.

Dr. Serap Karagol 3


Fonksiyonlar

Fonksiyonda elde edilen sonuç mutlaka return komutu kullanarak


programa gerekir.
Fonksiyonlar, ; kolay ve
, bellekte daha az yer en
uygun yoludur.
herhangi bir yerinde bir fonksiyonu, her
tekrar tekrar .
Fonksiyonlar, bütününden olarak ,
programlarda için sadece kopyalamak yeterli .
tüm fonksiyonlar sadece main() fonksiyonu içinden
.

Dr. Serap Karagol 4


Fonksiyonlar

Her fonksiyon (bir ) yerine


getirmek için ve .
, fonksiyonlardan
girdileri ve yine fonksiyonlara gönderdikleri
.
girdilerine parametre ya da argüman denilir.

Geri Türü Fonksiyon (VeriTipi Parametre .....)


{
blok return
}

Dr. Serap Karagol 5


Bir fonksiyonun sonunda onu fonksiyona
geri (return value)
denir.

Geri , bir atanabilir ya da


matematik .

Dr. Serap Karagol 6


1. fonksiyonlar bir tek elde etmek
.
Elde edilen , kendilerini fonksiyonlara geri
biçiminde iletilir.

a = sqrt(x);

sqrt fonksiyonunun x karakökünü .

Sonuç geri biçiminde a .

Dr. Serap Karagol 7


2. geri
bilgi verir.
Bu tür geri test .
Geri :" mudur ya da neden
?..." gibi sorulara verir.

p=malloc(size);

ifadesiyle bellekte size byte bir blok tahsis isteyen bu


bir biçimde getirilip de test etmek .

Hemen p kontrol edecek ve


bir karara .

Dr. Serap Karagol 8


3. Kimi fonksiyonlar hem belli bir hem de
buna ek olarak tamamlayan bir geri
üretirler.

c=printf("Merhaba\n");
printf fonksiyonu ekrana merhaba yazmak için
.

Ancak ekrana karakter da geri


olarak vermektedir.

Dr. Serap Karagol 9


4. Bazen geri hiç ihtiyaç duyulmaz.
, silme olan bir fonksiyonun
herhangi bir geri sahip gereksizdir.

clrscr();

clrscr fonksiyonu siler; böyle bir fonksiyonun geri


gereksinimi yoktur.

geri herhangi bir türden olabilir. Geri


türleri belirtilir.

Dr. Serap Karagol 10


Bir fonksiyonun durumunda derleyiciler,
fonksiyonun geri türünü bilmek .

fonksiyon fonksiyondan önce


; bu durumda derleyici, derleme içerisinde
fonksiyonu daha önce için, geri
türünü de olarak .

Çünkü derleme bir yönü ve bu yön


.

Dr. Serap Karagol 11


Prototip

Bu örnekte div fonksiyonu kendisini main fonksiyonunda daha


önce .

Geri double türünden belirleyebilecektir.

Dr. Serap Karagol 12


Prototip

fonksiyon fonksiyondan sonra ,


bu durumda derleyici fonksiyonun geri
türünü bilmez.
Dr. Serap Karagol 13
Prototip

C derleyici yere kadar,


bilgi edinemedikleri int geri sahip
olarak varsayar.

Dr. Serap Karagol 14


kadar olan fonksiyonlar
derleyicilerin bilgilendirilmesi fonksiyon prototipleri ile
.

div fonksiyonu için prototip .

double div (double, double)

Derleyici böyle bir prototip bildiriminden, div fonksiyonunun


geri ve iki parametresinin double türünden
bilgisini edinecektir.

Dr. Serap Karagol 15


Fonksiyon Prototiplerinin Bildirim Yerleri

Fonksiyon prototiplerinin bildirimi herhangi bir


yerinde .
Nerede olurlarsa olsunlar, bildirildikleri yerlerden
sonuna kadar olan bölgede geçerlidirler.
Burada önemli nokta, fonksiyonu önce prototip
bildiriminin .
Fonksiyon prototiplerinin en yada
birinin içinde
bildirilmesi tavsiye edilir.

Dr. Serap Karagol 16


Fonksiyon Prototiplerinin Bildirim Yerleri

Dr. Serap Karagol 17


Fonksiyon Parametreleri: Örnek

Dr. Serap Karagol 18


Fonksiyon Parametreleri

Fonksiyon geri
türü yerine hiç bir
C derleyicileri geri
türünün int
varsayarlar.
; y1 ( ) { .... }
y1 fonksiyonunun parametresi yoktur;
ancak geri int
türündendir.
C'de fonksiyon içinde fonksiyon
.

Dr. Serap Karagol 19


önemli .
1. geri .
2. .
return anahtar zorunlu
anahtar yoksa fonksiyon, ana bitince
.
bir tane geri olabilir. bir
kendisi fonksiyona bir tane gönderebilir.
Fonksiyonlardan birden fazla geri
göstericiler (pointers) ve (structures) ile mümkündür.

Dr. Serap Karagol 20


Örnek 2

Dr. Serap Karagol 21


Örnek 3

Dr. Serap Karagol 22

You might also like