Сайфиев ж. Ф. С++ тилига кириш услубий қўлланма


Функциянинг бир неча қиймат қайтариши


Download 3.45 Mb.
bet75/79
Sana18.10.2023
Hajmi3.45 Mb.
#1707139
1   ...   71   72   73   74   75   76   77   78   79
Bog'liq
cpp buxoro

Функциянинг бир неча қиймат қайтариши


Олдинги мавзулардан маълумки, функция фақат битта қиймат қайтаради. Агарда функциядан иккита қиймат олиш керак бўлса нима қилиш керак? Бундай муаммонинг ечимларидан бири функцияга иккита объектни ҳавола кўринишида узатишдир. Функциянинг бажарилиши давомида бу объектларга керакли қийматлар ўзлаштирилади. Ўзига ҳавола кўринишида узатилган объектларни функция томонидан ўзгартирилиши факти бу функциянинг иккита қиймат қайтариши билан тенг кучлидир.


Бундай натижага нафақат ҳаволалар орқали балки, кўрсаткичларни билан ҳам эришиш мумкин. 9.8. – листингда кўрсатилган функция учта қиймат қайтаради: иккитаси кўрсатгич параметрлар орқали, бири эса қайтариладиган қиймат сифатида.

9.8. – листинг. Кўрсатгич ёрдамида қийматларни қайтарилиши


// 9.8. – листинг.
// Кўрсатгич ёрдамида функциянинг бир нечта қиймат қайтариши
#include

short Factor( int n, int * pSquared, int * pCubed);


int main( )
{
int number, squared, cubed;
short error;
cout << “Enter a number ( 0 – 20 ):”;
cin >> number;
error = Factor( number, &squared, &cubed);
if ( !error )
{
cout << “number: ” << number<< “\n”;
cout << “square: ” << squared<< “\n”;
cout << “cubed: ” << cubed << “\n”;
}
else
cout<< “Error encountered!!\n”;
return 0;
}
short Factor(int n, int *pSquared, int *pCubed)
{
short Value = 0;
if (n>20)
Value = 1;
else
{
pSquared = n* n;
pCubed = n * n * n;
Value = 0;
}
return Value;
}
НАТИЖА:
Enter a number ( 0 – 20 ) : 3
number : 3
square : 9
cubed : 27

ТАҲЛИЛ
7 – сатрда int типидаги number, squared ва cubed ўзгарувчилари эълон қилинди. number ўзгарувчисига фойдаланувчи томонидан киритилган қиймат ўзлаштирилади. Бу қиймат, ҳамда squared ва cubed ўзгарувчиларининг адреслари factor() функциясига параметр сифатида берилади.


factor() функциясида қиймат сифатида узатилган биринчи параметр таҳлил қилинади. Агарда у 20 дан катта бўлса value ўзгарувчисига 1 қиймат берилади ва бу хатолик рўй берганлигини англатади.
29– ва 30– сатрларда кўрсаткичлар орқали main() функциясидаги ўзгарувчиларга қиймат ўзлаштирилаяпти. 31–сатрда value ўзгарувчисига функция ишини мувофаққиятли тугатганлигини билдирувчи қиймат ўзлаштирилаяпти.

Download 3.45 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling