FONKSYONLAR Main bir fonksiyonu ard zaman arlan fonksiyonun
FONKSİYONLAR Main bir fonksiyonu çağırdığı zaman çağrılan fonksiyonun icrası o fonksiyonun ilk İfadesi ile başlar ve bir return ifadesi ile karşılaştığında veya fonksiyonun sonuna Ulaşıldığında son bulur. Programın icrası main de fonksiyonun çağrıldığı yerden bir sonraki ifadenin yerine getirilmesi ile devam eder.
Fonksiyon Tanımlaması double klasik(a, b) double *a, *b; {. . . } double modern (double *a, double *b) {. . . } Örnek: int max() int max(int a, int b) { Return (a>b) ? (a) : (b); } İnt i, j, k; Main() { i=10; j=15; k=max(i, j); Printf(“maksimum değer = %d n”, k); } int a, b; { Return (a>b) ? (a) : (b); } İnt i, j, k; Main() { i=10; j=15; k=max(i, j); Printf(“maksimum değer = %d n”, k); }
ALTPROGRAMLAR Altprogramlar yapacakları işe göre dört kısımda incelenebilir: 1. Altprogramlar belirli bir işlevi yerine getirmek için ana program bilgilerine ihtiyaç duymayabilir. 2. Altprogramın icrasını yerine getirebilmesi için bazı bilgilerin ana programdan alınması gerekebilir. 3. Altprogramın icrası sona erdikten sonra ana programa bilgi transferi yapması gerekebilir. 4. Altprogramın icrası tamamen program değişkenlerine bağlı olabilir.
örnek 1 Void hata(void) { Printf(“negatif değerin karekökü alınmak istendi. ! ”); } float x; main() { Scanf(“%f”, &x); İf(x>0. 0) y = sqrt(x); else hata(); } Altprogramlar belirli bir işlevi yerine getirmek için ana program bilgilerine ihtiyaç duymayabilir
örnek 2 Void topla_yaz(float a, float b) { float c; c = a + b; Printf(“toplam = %15. 9 fn ”, c); } float x, y; main() { Scanf(“%f %f”, &x, &y); topla_yaz(x, y); } Altprogramın icrasını yerine getirebilmesi için bazı bilgilerin ana programdan alınması gerekebilir.
örnek 3 Void swap(float *sayı 1, float *sayı 2) { float t; t = *sayı 1; *sayı 1 = *sayı 2; *sayı 2 = t; } float x, y; main() { x = 10; y = 9; printf(“swap komutu çağırılmadan önce x=%f, y=%f n ”, x, y); Swap(&x, &y); printf(“swap komutu çağırıldıktan sonra x=%f, y=%f n ”, x, y); } Altprogramın icrası sona erdikten sonra ana programa bilgi transferi yapması gerekebilir.
örnek 4 float a, b, c; void topla(void) { c = a + b; printf(“toplam = %15. 9 fn ”, c); } main() { Scanf(“%f %f”, &a, &b); topla(); printf(“c = %d n ”, c); } Altprogramın icrası tamamen program değişkenlerine bağlı olabilir.
- Slides: 7