return a + 4*b – 5;
return operatorundan sonra funksiya öz işini bitirir;
Funksiyada bir neçə return operatorundan istifadə etməkolar.
Əgər funksiyalar əsas proqramından sonra yazılılarsa, onda onları əsas proqramdan əvvəl elan etmək lazımdır. Funksiyanı elan etmək üçün axırda nöqtəli vergül qoyub onun başlığını yazmaqlazımdır;
Funksiyanın elanında başlıqdan sonra mütləq nöqtəli vergül qoyulmalıdır, funksiyanın gövdəsi yazılan yerdə başlıqda nöqtəli vergülqoyulmur
Misal. N ədədi daxil edib onun sadə və ya mürəkkəb olmasını təyin etmək. Məsələnin həlli üçün funksiyadan istifadə etmək.
İndi isə funksiyanın gövdəsini əsas proqramdan sonra yerləşdirək. Funksiya haqqında translyatora xəbər vermək üçün onu qabaqcadan elan etmək lazımdır.
#include
#include
int Prime (intN); // funksiyanınelanı
main ()
{
int N;
printf ( “\nTam ededi daxil edin: “ );scanf ( “%d”, &N );
if (Prime(N)) // funksiyaya müraciət
printf ( “Eded %d – sadedir\n”, N );
else printf ( “Eded %d – murekkebdir\n”, N ); getch ();
}
int Prime ( int N ) // funksiyanın təsviri
{
for ( int i = 2; i*i < N; i ++ )
if (N% i == 0 )return0; // bölən tapıldı –mürəkkəbdir! return1; // heç bir bölən tapılmadı –sadədir!
}
İki qiymət qaytaran funksiyalar
Tərifə əsasən, funksiya yalnız bir qiymət – nəticə qaytara bilər. Əgər iki və ya daha çox nəticə qaytarmaq lazımdırsa, onda xüsusi üsuldan istifadə edilir. Bu üsul parametrlərin istinadla ötürülməsiadlanır.
Misal. İki tam ədəddən ən böyük və ən kiçik ədədi təyin edən funksiyanı tərtib etmək.
|
#include
#include
int MinMax (int a, int b, int &Max )
{if ( a > b ) { Max = a; returnb;}
else { Max = b; return a;}
Aşağıdakı funksiyada maraqlı üsuldan istifadə edilir: funksiya əsas proqrama məxsus olan dəyişənin qiymətini dəyişir. Nəticənin birini (iki ədədin kiçiyini) funksiya adi şəkildə, digər nəticəni isə - əsas proqramdan ötürülən dəyişənin qiymətini dəyişməklə qaytaracaq.
}
main ()
{
int N, M, min, max;
printf ( “\n Iki tam eded daxil edin: “ ); scanf ( “%d%d”, &N, &M );
min = MinMax ( N, M, max ) ; // funksiyanın çağırışı
printf ( “ Boyuk eded = %d, Kicik eded = %d\n”, max, min ); getch ();
}
Adətən, parametri proseduraya və ya funksiyaya ötürəndə, yaddaşda dəyişənin surəti (kopiyası) yaradılır, və funksiya bu surət ilə işləyir. Bu o deməkdir ki, funksiyada parametr üzərində aparılan dəyişiklər onun əsas proqramdakı qiymətinə təsir göstərməyəcək.
Əgər funksiyanın başlığında parametrinin adının əvvəlinə &işarəsi qoyularsa (bu işarə, həmçinin, dəyişənin ünvanının təyini üçün istifadə edilir), onda funksiya dəyişənin surəti ilə yox, onun yaddaşda yerləşən əsl qiyməti ilə işləyəcəkdir. Ona görə də, bizim proqramda funksiya max dəyişəninin qiymətini dəyişib ona iki ədədin ən böyüyünü yazacaqdır.
Baxmayaraq ki, proseduralar əsas proqrama heç bir nəticə qaytarmırlar, bu üsulu proseduralar üçün də istifadə etmək olardı.
Dostları ilə paylaş: |