Fonksiyonlar

Fonksiyonlar

     Fonksiyonlar, programcının programını modüler hale getirmesini sağlar. Bu sayede, önceden yazılmış fonksiyonlar bloklar halinde birbirleri ardına yerleştirilerek yeni programlar yazılabilir. Yazılımın yeniden kullanılabilmesi, nesneye yönelik programlamanın temel etmenlerindendir. Fonksiyona iyi isim verilir ve fonksiyon iyi tanımlanırsa, programlar belirli işleri yapan standartlaştırılmış fonksiyonları kullanarak yazılabilir.

Fonksiyon Tanımları

      Şu ana kadar yazdığımız tüm programlar, standart kütüphane fonksiyonlarını işlerini yaptırmak için çağıran main adında bir fonksiyon içeriyordu. Şimdi ise programcıların kendi fonksiyonlarını nasıl yazdıklarını inceleyeceğiz.

geri dönüş tipi fonksiyonun ismi ( parametre listesi )
{
        bildirimler
          ifadeler
}

  1. #include <stdio.h>
  2. int kare (int ); // fonksiyonun ilk hali (prototipi)
  3. int main()
  4. {
  5. int x;
  6. for (x=1;x<=10;x++)
  7. printf("%d" ,kare( x ));
  8. printf("\n");
  9. return 0;
  10. }
  11. // Fonksiyon tanımı
  12. int kare (int y)
  13. {
  14. return y*y;
  15. }
  16.  
int main( )

     Daha önce bahsetmiş olduğumuz main fonksiyonu tüm diğer alt fonksiyonların çağrıldığı veya ana işlemlerin yapıldığı fonksiyondur.

int kare( int );

     kare adında bir alt fonksiyonun prototipidir, yani değişken tanımlama işlemi gibic( int x ) fonksiyon kullanılacağı zaman tanımlanması gerekir. Prototipin ilk başında olan int fonksiyonun tamsayı (decimal) tipinde bir değer döndüreceğini ( int ) ise fonksiyonun içine gönderilen değerin tamsayı olacağı anlamına gelmektedir.

printf (%d ” , kare ( x ) );

     Fonksiyon çağırma işlemidir. kare ( x )ifadesi fonksiyonun içine x değişkenini yollamış ve çıkan sonuç kare( ) ifadesinin içinde depolanmıştır. Depolanan ifade printf (“%d”) ile ekrana yazdırılmıştır.

int kare ( int y ) {    }

     İfadesi fonksiyonun ne işlem yapacağının yazıldığı yerdir. Çağrıldığı yerden x olarak gönderilen değişken fonksiyonun içinde y olarak değişmiş ve çağrıldığı yere y değişkeni olarak gitmiştir.

return y*y;

     Daha önce anlatmış olduğumuz return 0 ifadesi değer döndürmüyordu main fonksiyonu içinde görüleceği gibi, fakat tanımlanan fonksiyonda return y*y fonksiyonun çağrıldığı yere y*y değerini döndürme görevini üstlenir.

Fonksiyon Prototipleri

int maksimum ( int, int, int );

     Bu fonksiyon prototipi, maksimum fonksiyonunun int tipinde 3 argüman alacağını ve sonuç olarak int tipinde bir sonuç döndüreceğini belirtir.

void maksimum (int,int,int) ;

     Bu fonksiyon prototipi,maksimum fonksiyonunun int tipinde 3 argüman alacağını  ve sonuç olarak  bir değer döndürmeyeceğini  belirtir. void fonksiyonuna geri dönüş değeri ürettirirsek yani retun y*y gibi bir değer döndürmeye çalıştığımızda hata verecektir. 

void maksimum ( void );

     Bu fonksiyon prototipi, maksimum fonksiyonunun argüman almayacağını ve sonuç olarak bir değer döndürmeyeceğini  belirtir.

int maksimum (void);

     Bu fonksiyon prototipi, maksimum fonksiyonunun argüman almayacağını ve sonuç olarak tamsayı tipinde bir değer döndüreceğini belirtir.

float maksimum ( char );

     Bu fonksiyon prototipi,maksimum fonksiyonunun char tipinde bir argüman alacağını  ve sonuç olarak  float tipinde bir değer döndüreceğini  belirtir.  Bu şekilde C programlamada değişkenlerle birçok prototip tanımlanabilir.

  1. #include <stdio.h>
  2.  
  3. int kare( int );
  4. void kare1 (int);
  5. void kare2 (void);
  6. int kare3 (void);
  7.  
  8. int main( )
  9. {
  10. int x=2;
  11. printf("int kare (int) %d dir \n", kare(x));
  12. kare1(x);
  13. kare2();
  14. printf("int kare3 (void) %d dir \n", kare3());
  15. return 0;
  16. }
  17.  
  18. /*Fonksiyon tanımı*/
  19. int kare( int y )
  20. {
  21. return y + y;
  22. }
  23. void kare1(int z)
  24. {
  25. printf("void kare1 (int) %d dir\n ",z/z);
  26. }
  27. void kare2 (void)
  28. {
  29. printf("Deger Donmedi\n");
  30. }
  31. int kare3 (void)
  32. {
  33. int m=5;
  34. return m;
  35. }
5 2 votes
Article Rating
Abone ol
Bildir
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumlar
0
Düşüncelerinizi paylaşınx