Тилига кириш услубий қўлланма
Функциянинг бир неча қиймат қайтариши
Download 1.05 Mb.
|
C qo`llanma
Функциянинг бир неча қиймат қайтаришиОлдинги мавзулардан маълумки, функция фақат битта қиймат қайтаради. Агарда функциядан иккита қиймат олиш керак бўлса нима қилиш керак? Бундай муаммонинг ечимларидан бири функцияга иккита объектни ҳавола кўринишида узатишдир. Функциянинг бажарилиши давомида бу объектларга керакли қийматлар ўзлаштирилади. Ўзига ҳавола кўринишида узатилган объектларни функция томонидан ўзгартирилиши факти бу функциянинг иккита қиймат қайтариши билан тенг кучлидир. Бундай натижага нафақат ҳаволалар орқали балки, кўрсаткичларни билан ҳам эришиш мумкин. 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 ТАҲЛИЛ
factor() функциясида қиймат сифатида узатилган биринчи параметр таҳлил қилинади. Агарда у 20 дан катта бўлса value ўзгарувчисига 1 қиймат берилади ва бу хатолик рўй берганлигини англатади. 29– ва 30– сатрларда кўрсаткичлар орқали main() функциясидаги ўзгарувчиларга қиймат ўзлаштирилаяпти. 31–сатрда value ўзгарувчисига функция ишини мувофаққиятли тугатганлигини билдирувчи қиймат ўзлаштирилаяпти. Download 1.05 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling