6.15.Funksiyanın prototipləri Funksiyanı həmişə əsas proqramdan əvvəl təyin etməmək də olar. Məsələn, max-funksiyası əsas proqramdan əvvəl təyin olunmuşdur. Həmin funksiyanın başqa variantda təşkilinə baxaq:
Misal 1. #include using name space std; //max- funksiyanın prototipi int max (int, int); //əsas funksiya
int main ( ) {int a,b,c,d; cout <<”\n a,b,c-ni daxil edin”; cin >>a>>b>>c; d=max(max(a,b),c); cout<<”\n max(a,b,c)=”< } \\max funksiyanın təyini
int max(int x, int y) {if x>y return x; else return y;} }
Burada funksiyanın prototipindən istifadə olunmuşdur. Funksiyanın prototipi dedikdə funksiyanın adı, tipi, formal parametrlərin tipi göstərilən təsviri başa düşülür. Bu təsvirdən istifadə etməklə funksiyaya düzgün müraciət edilir. Funksiyanın prototipində formal parametrlərin adını göstərmək vacib deyil. Lakin formal parametrlərin adı göstərilə də bilər:
int max(int x, int y); Əsas funksiyanın daxilində də digər obyektlərin təsviri ilə yanaşı funksiyanın prototipini də vermək olar. Belə təsvir görünmə oblastı ilə əlaqədardır və bir qədər sonra izah olunacaqdır.
Misal 2. İki ədədin cəminin, fərqinin, hasilinin ən böyük ortaq bölənini tapan proqram yazaq:
//ƏBOB-proqram
#include using namespace std; #include int ƏBOB2(int, int); //funksiyanın prototipi int main ( ) {int a,b,Rez; cout <<”a=”; cin>>a; cout <<”b=”; cin >>b;
Rez= ƏBOB2(ƏBOB2(a+b, abs(a-b)), a*b); cout<<” ƏBOB=”< } int ƏBOB2(int m, int n) {while (m!=n) {if(m>n)m=m-n; else n=n-m; } return m; } Göründüyü kimi, main funksiyasına heç bir yerdən müraciət edilmir. Bu funksiyaya proqram yerinə yetirildikdə əməliyyat sistemi müraciət edir. Bu funksiya əməliyyat sisteminə ya “1” (səhv olmadıqda) və ya “0” (səhv olduqda) qaytarır. Yəni funksiya void tipinə malik olmaya da bilər.