Typy funkcií definovaných používateľom v jazyku C ++

V tomto výučbe sa dozviete o rôznych prístupoch, ktoré môžete podniknúť pri riešení jedného problému pomocou funkcií.

Pre lepšie pochopenie argumentov a návratnosť funkcií je možné funkcie definované používateľom kategorizovať ako:

  • Funkcia bez argumentov a bez návratovej hodnoty
  • Funkcia bez argumentu, iba s návratovou hodnotou
  • Funkcia s argumentom, ale bez návratovej hodnoty
  • Funkcia s argumentom a návratovou hodnotou

Zvážte situáciu, v ktorej musíte skontrolovať prvočíslo. Tento problém je vyriešený nižšie vytvorením používateľom definovanej funkcie 4 rôznymi spôsobmi, ako je uvedené vyššie.

Príklad 1: Neprešli žiadne argumenty a žiadna návratová hodnota

 # include using namespace std; void prime(); int main() ( // No argument is passed to prime() prime(); return 0; ) // Return type of function is void because value is not returned. void prime() ( int num, i, flag = 0; cout <> num; for(i = 2; i <= num/2; ++i) ( if(num % i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << num << " is not a prime number."; ) else ( cout << num << " is a prime number."; ) ) 

Vo vyššie uvedenom programe prime()sa volá z main () bez argumentov.

prime() zoberie kladné číslo od používateľa a skontroluje, či je to prvočíslo alebo nie.

Pretože návratový typ prime()is void, z funkcie sa nevráti žiadna hodnota.

Príklad 2: Neprešli žiadne argumenty, ale návratová hodnota

 #include using namespace std; int prime(); int main() ( int num, i, flag = 0; // No argument is passed to prime() num = prime(); for (i = 2; i <= num/2; ++i) ( if (num%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout<  n; return n; ) 

Vo vyššie uvedenom programe sa prime()funkcia volá z main()adresy bez argumentov.

prime()berie od používateľa kladné celé číslo. Pretože návratový typ funkcie je int, vráti zadané číslo od používateľa späť do volajúcej main()funkcie.

Potom sa skontroluje, či je číslo prvočíslo alebo nie, v hlavnej časti () a vytlačí sa na obrazovku.

Príklad 3: Argumenty prešli, ale žiadna návratová hodnota

 #include using namespace std; void prime(int n); int main() ( int num; cout <> num; // Argument num is passed to the function prime() prime(num); return 0; ) // There is no return value to calling function. Hence, return type of function is void. */ void prime(int n) ( int i, flag = 0; for (i = 2; i <= n/2; ++i) ( if (n%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << n << " is not a prime number."; ) else ( cout << n << " is a prime number."; ) )

Vo vyššie uvedenom programe je kladné číslo najskôr vyžiadané od používateľa, ktorý je uložený v premennej num.

Potom sa num odovzdá prime()funkcii, kde sa skontroluje a vytlačí, či je číslo prvočíslo alebo nie.

Pretože návratový typ prime()je a void, z funkcie sa nevráti žiadna hodnota.

Príklad 4: Argumenty prešli a návratová hodnota.

 #include using namespace std; int prime(int n); int main() ( int num, flag = 0; cout <> num; // Argument num is passed to check() function flag = prime(num); if(flag == 1) cout << num << " is not a prime number."; else cout<< num << " is a prime number."; return 0; ) /* This function returns integer value. */ int prime(int n) ( int i; for(i = 2; i <= n/2; ++i) ( if(n % i == 0) return 1; ) return 0; ) 

Vo vyššie uvedenom programe je od používateľa požadované kladné celé číslo a je uložené v premennej num.

Potom numsa odovzdá funkcii, prime()kde sa skontroluje, či je číslo prvočíslo alebo nie.

Pretože návratový typ prime()je int, je 1 alebo 0 vrátená main()volajúcej funkcii. Ak je číslo prvočíslo, vráti sa 1. Ak nie, vráti sa 0.

Späť vo main()funkcii sa vrátená 1 alebo 0 uloží do príznaku premennej a zodpovedajúci text sa vytlačí na obrazovku.

Ktorá metóda je lepšia?

Všetky štyri vyššie uvedené programy poskytujú rovnaký výstup a všetky sú technicky správny program.

Neexistuje tvrdé a rýchle pravidlo, ktorá metóda by sa mala zvoliť.

Konkrétna metóda sa vyberá v závislosti od situácie a spôsobu riešenia problému.

Zaujímavé články...