Vartotojo nustatytų funkcijų tipai C ++

Šioje pamokoje sužinosite apie įvairius metodus, kurių galite imtis, norėdami išspręsti vieną problemą naudodami funkcijas.

Norint geriau suprasti argumentus ir grąžinti funkcijas, vartotojo nustatytas funkcijas galima suskirstyti į:

  • Funkcija be argumento ir grąžos vertės
  • Funkcija be argumento, bet grąžinimo vertė
  • Funkcija su argumentu, bet nėra grąžinimo vertės
  • Funkcija su argumentu ir grąžinimo verte

Apsvarstykite situaciją, kai turite patikrinti pirminį skaičių. Ši problema yra išspręsta žemiau, naudojant vartotojo apibrėžtą funkciją 4 skirtingais būdais, kaip minėta aukščiau.

1 pavyzdys: nepateikti jokie argumentai ir grąžinimo vertė

 # 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."; ) ) 

Aukščiau pateiktoje programoje prime()iškviečiamas iš pagrindinio () be jokių argumentų.

prime() paima iš vartotojo teigiamą skaičių ir patikrina, ar skaičius yra pirminis skaičius, ar ne.

Kadangi grąžinimo tipas prime()yra void, iš funkcijos negrąžinama jokia vertė.

2 pavyzdys: nepateikti jokie argumentai, bet grąžinimo vertė

 #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; ) 

Pirmiau pateiktoje programoje prime()funkcija iškviečiama iš main()be argumentų.

prime()paima iš vartotojo teigiamą sveikąjį skaičių. Kadangi funkcijos grąžinimo tipas yra an int, jis grąžina įvestą numerį iš vartotojo atgal į skambinimo main()funkciją.

Tada, ar skaičius yra pagrindinis, ar ne, patikrinama pačiame main () ir atspausdinama ant ekrano.

3 pavyzdys: argumentai perduoti, bet grąžos vertės nėra

 #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."; ) )

Pirmiau pateiktoje programoje iš vartotojo pirmiausia prašoma teigiamo skaičiaus, kuris saugomas kintamajame num.

Tada skaičius perduodamas prime()funkcijai, kur patikrinama ir atspausdinama, ar skaičius yra pagrindinis, ar ne.

Kadangi grąžinimo tipas prime()yra a void, iš funkcijos negrąžinama jokia vertė.

4 pavyzdys: pateikti argumentai ir grąžinimo vertė.

 #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; ) 

Pirmiau pateiktoje programoje teigiamas sveikasis skaičius prašomas iš vartotojo ir saugomas kintamajame num.

Tada numperduodama funkcijai, prime()kur patikrinama, ar skaičius yra pagrindinis, ar ne.

Kadangi grįžimo tipas prime()yra int, 1 arba 0 grąžinama į main()skambinimo funkciją. Jei skaičius yra pirminis skaičius, grąžinamas 1. Jei ne, grąžinama 0.

main()Grįžus į funkciją, grąžintas 1 arba 0 saugomas kintamojoje vėliavoje, o atitinkamas tekstas atspausdinamas ant ekrano.

Kuris metodas yra geresnis?

Visos keturios aukščiau pateiktos programos suteikia tą patį išėjimą ir visos yra techniškai teisingos programos.

Nėra griežtos taisyklės, kurį metodą reikėtų pasirinkti.

Konkretus metodas pasirenkamas atsižvelgiant į situaciją ir tai, kaip norite išspręsti problemą.

Įdomios straipsniai...