Vi fəsil. C++ dilində proqramlaşdırma


Funksiyalara müraciət zamanı qiymət və istinad parametrlərindən istifadə üsulları



Yüklə 1,02 Mb.
səhifə48/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   44   45   46   47   48   49   50   51   ...   74
Alqoritmik dillər(C kitab) (10)

6.35.Funksiyalara müraciət zamanı qiymət və istinad parametrlərindən istifadə üsulları
Proqramlaşdırma dillərinin çoxunda funksiyalara müraciətin iki üsulu vardır: qiymətə görə(qiymətlər prametri) və istinada görə (parametrlər istinadlar olduqda). Arqumentlər qiymətlər parametrinə görə ötürüldükdə funksiya daxilində onların sürətləri yaranır və arqumentin surətlərinin dəyişməsi onların əslinin dəyişməsinə səbəb olmur. Çoxlu sayda arqumentlərdən istifadə etdikdə yerinə yetirilmə vaxtı nöqteyi-nəzərdən bu üsul əlverişli hesab olunmur.
Funksiyalara müraciətdə istinad parametrlərindən istifadə etdikdə onların qiymətlərinin dəyişdirilməsi imkanı yaranır və həmçinin ötürülən qiymətlərə birbaşa müraciət etmək imkanı yaranır. İstinad parametri uyğun arqumentin psevdonimidir. İstinad parametrindən istifadə etmək üçün funksiyasının prototipində parametrin tipindən sonra &(ampersand) işarəsi qoymaq lazımdır. Bu işarəni funksiyanın başlığında da parametrlərin tipindən sonra qoyulur. Məsələ,
Inf & count-onu bildirir ki, “count int-tipli dəyişənə istinaddır”.
Funksiyaya müraciətdə dəyişənin adını göstərmək lazımdır, bu dəyişən istinada görə ötürülür.
Aşağıdaki proqramda həm qiymətə görə, həm də istinada görə funksiyalara müraciət edilir. Funksiyaların adları uyğun olaraq SquareByValueSquareByReference-dır. Funksiyalara müraciətdə hər iki funksiyanın arqumentlərinin “stili” eynidir. Funksiyaların prototipləri bu arqumentləri fərqləndirir (qiymətə görə və ya istinada görə olan arqumentlər). Bu halda funksiyaların prototiplərinin yazılması vacibdir.

//parametrlərin qiymətə görə və istinada görə ötürülməsi


#include
using namespace std;
int SquareByValue(int); //funksiyaların prototipi
void SquareByReference(int &); //funksiyanın prototipi
int main( ) {
int x=2;
int z=4;
//SquareByValue-funksiyanın nümayışi
cout<<”x=”<
cout<<”SquareByValue funksiyanın qaytardığı qiymət:”
<
cout<<”x=”<
//SquareByReference-funksiyanın nümayışı
cout<<”z=”<
SquareByRefence(z);
cout<<”z=”<<”SquareByRefence-dən sonraki qiymət”<
return 0;
}
//müvəffəqiyyətlə yekunlaşdığını bildirir
//SquareByValue-funksiyası ədədin özünü özünə vurur və ədəddə saxlayır, yəni qiymət qaytarır.
int SquareByValue(int numer)
{return numer*=numer;}
//müraciət edərək funksiyanın arqumenti dəyişmir.
//SquareByValue f-sı m-i m-ə vurur, nəticə m-də qalır və m main
//funksiyasına istinad edir.
void SquareByReference(int & m)
{m*=m;} //müraciət edən funksiyanın arqumenti dəyişir

Nəticə aşağıdaki kimi olacaq:


x=2 SquareByValue-dən əvvəl
SquareByValue funksiyasının qaytardığı qiymət: 4
x=2 SquareByValue-dək sonraki qiymət.
z=4 SquareByReference-dən əvvəl
z=16 SquareByReference-dən sonraki qiymət.


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   44   45   46   47   48   49   50   51   ...   74




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.muhaz.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin