Kategoriler
C

C Programlama Dili – Fonksiyonlar

Programlama dillerinin en önemli konularından birisi de fonksiyonlardır.Program içinde bir işlemi birden fazla yapacaksak bunu her seferinde yazmak yerine fonksiyon içinde bir kez tanımlarız ve gerektiğinde fonksiyonu çağırırız.Ayrıca fonksiyonlar programın derli toplu olmasında ve yaptığımız hataların daha kolay tespit edilmesinde bize yarar sağlarlar.

 

7.1)Fonksiyon Çeşitleri ve Fonksiyon Oluşturma

 

7.1.1)Değer döndürmeyen ve parametre almayan fonksiyonlar

Bu tip fonksiyonlar dışarıdan herhangi bir parametre almazlar ve çağrıldıkları yere geri değer döndürmezler.Ayrıca bu fonksiyonlara dışarıdan parametre gönderilemediği için genellikle sabit bir işleve sahip olurlar.

7.1.2)Değer döndürmeyen ve parametre alan fonksiyonlar

Bu tip fonksiyonlar çağrıldıkları yere değer döndürmezler ama dışarıdan parametre alırlar.

#include <stdio.h>

/*program 7.1*/
/*faktoriyel hesaplama*/

//Fonksiyon prototipini main() fonksiyonundan önce yazmalıyız
//ya da fonksiyonumuzu main() fonksiyonundan önce tanımlamalıyız
void faktoriyel(int n);
int main(void) 
{
	int n;
	printf("Bir sayi giriniz: ");
	scanf("%d",&n);
	faktoriyel(n);
	//Fonksiyonu çağırırken adını ve parantez içinde göndereceğimiz parametreyi tanımlıyoruz.
	return 0;
}

//Fonksiyon prototipini tanımlama işlemi
//donus_tipi fonk_adi(parametre(ler))
//Bizim fonksiyonumuz değer döndürmeyen ve parametre almayan bir fonksiyon olduğu için
//donus_tipi yerine void yani boş dedik
//fonksiyon adımın faktoriyel
//aldığı parametre ise n değeri
void faktoriyel(int n)
{
	int i,faktoriyel=1;
	for(i=2;i<=n;i++)
		faktoriyel*=i;
	printf("\n%d faktoriyel %d dir",n,faktoriyel);
}

Yukarıda değindiğim gibi fonksiyonları kullanırken dikkat etmemiz gerekenler:

  • Fonksiyonu tanımlama : donus_tipi fonksiyon_adi(parametreler) şeklinde olmalıdır.Biz değer döndürmeyen ve parametre alan fonksiyonları incelediğimiz için donus_tipi yerine void yazdık parametre kısmına ise n değerini yazdık.
  • Fonksiyon çağırma: fonksiyonu çağırırken ise fonksiyon adımızı ve parantez içinde göndereceğimiz parametreyi yazdık.
  • Fonksiyon prototipi:Bu konuda ise dikkat etmemiz gereken husus prototipimiz main() fonksiyonundan önce tanımlamalıyız ya da fonksiyonumuzu main() fonksiyonundan önce yazmalıyız.

 

#include <stdio.h>

/*program 7.2*/
/*fibonacci sayıları oluşturma*/
void fibonacci(int N);
int main(void) 
{
	int N;
	printf("Terim sayisi");
	scanf("%d",&N);
	fibonacci(N);
	return 0;
}

void fibonacci(int N)
{
	int i,T1=1,T2=1,T3;
	printf("%d\t%d\t",T1,T2);
	for(i=1;i<=N-2;i++)
	{
		T3=T1+T2;
		printf("%d\t",T3);
		T1=T2;
		T2=T3;
	}
}

Girdiğimiz terim sayısını 5 kabul edersek çıktı:

[alert-success]1 1 2 3 5[/alert-success]

7.1.2)Değer döndüren ve parametre alan fonksiyonlar

Bu tip fonksiyonlar çağrıldıkları yere değer döndürürler.Buradaki en önemli nokta ise return ifadesidir.

return ifadesi

Daha önce gördüğümüz gibi değer döndürmeyen fonksiyonların başına void ifadesi koyuyorduk.Değer döndüren fonksiyonlarda ise fonksiyonda geri döndürülecek değere göre bir ifade kullanmalıyız.Örneğin fonksiyonumuz tam sayı döndürecek ise int karakter döndürecek ise char ifadesi kullanmalıyız.

Girilen sayının tek ya da çift olduğunu bize bildiren program

#include <stdio.h>

/*program 7.3*/

//fonksiyon prototipimizi tanımlıyoruz.
int tekmi_ciftmi(int sayi);
int main(void) 
{
	int sayi,sonuc;
	printf("Bir sayi giriniz: ");
	scanf("%d",&sayi);
	sonuc=tekmi_ciftmi(sayi);
	if(sonuc==0)
		printf("\nSayi tektir");
	else
		printf("\nSayi cifttir");
	return 0;
}
/*aşağıdaki fonksiyon tam sayı değer
döndüren ve paramatre alan bir fonksiyon*/
int tekmi_ciftmi(int sayi)
{
	
	int deger=0;
	if(sayi%2==0)
		deger=1;
	return deger;
}

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.