C Programlama -17

Merhaba arkadaşlar bu gün ki makalem de fonksiyonlara giriş yapacağız.

Bir önceki yazımda diziler konusuna değinmiştim. Okumadıysanız öncelikle onu okumanızı tavsiye ederim.

c-programlama-dili-16

 

Fonksiyonlar aynı kod blogunun tekrar tekrar yazılmasını engelleyen yapılardır. Şöyle düşünün girilen sayının asal sayı olup olmadığını Hesaplayan bir kod yazmak istiyorsunuz. Her sayı için hesaplama kodlarını tekrar tekrar yazmak kodu anlamsız yere uzatmaktan başka bir şey olmayacaktır. Bu tür durumlarda kodu bir defa yazıp onu gerektirdiği yerlerde çağırarak gereksiz yere kod tekrarını önlemiş oluruz. Bunu da fonksiyon yapılarıyla sağlarız.

 

 

 

/* Sayının tek veya çift olmasını kontrol eder. */

#include<stdio.h> 

void tek_mi_cift_mi( int sayi )
{ 
if( sayi%2 == 0 ) 
printf( "%d, çift bir sayıdır.\n", sayi ); 
else 
printf( "%d, tek bir sayıdır.\n", sayi );
}

int main( void ) 
{ 
int girilen_sayi; 
printf( "Lütfen bir sayı giriniz> " ); 
scanf( "%d",&girilen_sayi ); tek_mi_cift_mi( girilen_sayi ); 
return 0; 

}




Yukarıdaki Örneği inceleyecek olursak;
Main fonksiyonun da kullanıcının girmiş olduğu sayıyı tek_mi_cift_mi fonksiyonuna göndererek sayının teklik ve çiftlik durumunu kontrol edip ekrana onun bilgisini basıyoruz.

Fonksiyonların en önemli noktaları, fonksiyona parametre olarak gönderilen ve fonksiyondan dönen değerlerdir. Bu özelliklerine göre 4 tür fonksiyon vardır.
Bunlara bir sonraki derste değineceğim.

 

 

Fonksiyonların tanımlama koşullarından bahsetmek istiyorum. Fonksiyonları main fonksiyonunun dan önce yazabileceğimiz gibi sonra da yazabiliriz. Main fonksiyonuna önce yazarsak başka her hangi bir tanımlama yapmamıza gerek kalmaz.
Ama main fonksiyonundan sonra yazarsak, fonksiyonun tanımlama ( deklarasyon unu) main den önce mutlaka yapmamız gerekmektedir. Aksi takdirde kod blogu derlenemez, hata alır.

 

 

 

#include<stdio.h>

İnt kare_hesapla( int sayi );

int main( void )
{
int a, sonucK; 
printf( "Sayı giriniz> "); 
scanf( "%d",&a ); 
printf( "Girdiğiniz sayı\t: %d\n", a ); 
sonucK=kare_hesapla( a ); 
printf("Sayının karesi\t: %d\n", sonucK ); return 0; 
}
İnt kare_hesapla( int sayi )
{ 
sonuc = sayi * sayi;
return (sonuc) ;
}

Yukarıda ki örnekte fonksiyonu main den sonra tanımladık. Kodun hatasız derlene bilmesi için, yukarıda bahsettiğim gibi fonksiyon tanımlamasını main den önce tanımlamamız gerekiyor.

 

 

kare_hesapla fonksiyonuna bir değer gönderiyoruz ve onun karesini hesaplanmış halini main fonksiyonuna dönüyoruz. Ve dönen sonucu main de tanımladığımız sonucK değişkenine atayıp bu değeri ekrana basıyoruz.

Bir makalenin daha sonuna geldik, esenle kalın..

Kübra Hebeş

Bilgisayar Mühendisi