C Programlama Dili/Fonksiyonlar

Fonksiyonları anlamak değiştir

Fonksiyonlar yazdığımız programın modüler olmasını sağlar, ayrıca okunabilirliği artırır... Bundan önceki alıştırmalarınızı Main ana fonksiyonu içinde yazmış olabilirsiniz... Fakat programlarınız büyüdükçe herşeyi main fonksiyonun içine yazmak iyi bir fikir değildir. Sonradan programda bir değişiklik yapmak için oldukça uğraşmak zorunda kalabilirsiniz...

Kısaca fonksiyonlar, programınızdaki özel işlere bakan görevlilerdir... Programınızdaki görevleri alt-kümelere böldüğünüzde bunların hepsini main içinde yapmak yerine ayrı ayrı fonksiyonlara bölmek işinizi gerçekten kolaylaştıracaktır...

Fonksiyonların yazılışı değiştir

 dönüşTürü fonksiyonAdi( parametreTürü parametre1Adı, parametreTürü p2Adi)
 {
    Bazı kodlar;
    return dönüşTüründeTanımlanmışBirDeğişken;
 }

Fonksiyonların genel olarak yazımı bu şekilde gerçekleşir...

Hesap Makinesi Örneği değiştir

Fonksiyonları şu basit örnekle anlayacağınızdan eminim...

Şimdi bir hesap makinesi yapalım... Nasıl yapılır? önce bir tasarım yapalım...

1) hesap makinemiz basit olsun... Sadece toplama ve çarpma yapsın...
2) kullanıcıdan iki sayı isteyelim... programımız bu iki sayının toplamını ve çarpımını bulsun... 
3) bir de programımızın özel bir yeteneği olsun... Bu iki sayının toplamlarının karesini bulsun...

pekala, tasarımımızı tamamladıktan sonra anlıyoruz ki...

1) üç tane fonksiyonumuz olacak... birisi iki sayıyı toplayacak, ikincisi iki sayıyı çarpacak, 3. ise iki sayının toplamının karesini bulacak...
2) kullanıcıdan iki sayının istenmesini ve bu fonksiyonların çağrımını main içinde yapabiliriz...

Öyleyse önce toplama fonksiyonunu yazalım...

 int topla( int a, int b)
 {
     return a+b;
 }

bu kadar... a ve b iki sayı ve bu fonksiyon onların toplamını döndürüyor....

Çarpma için

 int carp(int a, int b)
 { 
     return a*b;
 }

toplamlarının karesi ise...

 int toplamlarinKaresi( int a, int b)
 { 
     int ikiSayininToplami = topla(a,b);
     return carp(ikiSayininToplami,ikiSayininToplami );
 }

şimdi main fonksiyonunu yazalım... değiştir

 void main()
 {
    int birinciSayi, ikinciSayi;
    printf("Lutfen iki sayi giriniz!");
    printf("\n ilk sayi:");
    scanf("%d", &birinciSayi);
    printf("ikincisi : ");
    scanf("%d", &ikinciSayi);
    
    printf("iki sayinin toplami: %d \n", topla(birinciSayi,ikinciSayi);
    printf("iki sayinin carpimi: %d \n", carp(birinciSayi,ikinciSayi);
    printf("iki sayinin toplamlarinin karesi: %d \n", toplamlarinKaresi(birinciSayi,ikinciSayi);
 }