Typy uživatelsky definovaných funkcí v C ++

V tomto kurzu se dozvíte o různých přístupech, které můžete použít k řešení jednoho problému pomocí funkcí.

Pro lepší pochopení argumentů a návrat ve funkcích lze uživatelem definované funkce kategorizovat jako:

  • Funkce bez argumentu a bez návratové hodnoty
  • Funkce bez argumentu, ale s návratovou hodnotou
  • Funkce s argumentem, ale bez návratové hodnoty
  • Funkce s argumentem a návratovou hodnotou

Zvažte situaci, ve které musíte zkontrolovat prvočíslo. Tento problém je níže vyřešen vytvořením uživatelem definované funkce 4 různými způsoby, jak je uvedeno výše.

Příklad 1: Žádné předané argumenty a žádná 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."; ) ) 

Ve výše uvedeném programu prime()je volán z main () bez argumentů.

prime() vezme od uživatele kladné číslo a zkontroluje, zda je číslo prvočíslo nebo ne.

Protože návratový typ prime()je void, z funkce se nevrátí žádná hodnota.

Příklad 2: Nebyly předány žádné 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; ) 

Ve výše uvedeném programu je prime()funkce volána z main()bez argumentů.

prime()vezme od uživatele kladné celé číslo. Protože návratový typ funkce je int, vrátí zadané číslo od uživatele zpět do volající main()funkce.

Poté, zda je číslo prvočíslo nebo ne, je zaškrtnuto v samotném main () a vytištěno na obrazovku.

Příklad 3: Argumenty prošly, ale žádná 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."; ) )

Ve výše uvedeném programu je kladné číslo nejprve vyžádáno od uživatele, které je uloženo v proměnné num.

Potom se num předá prime()funkci, kde se zkontroluje a vytiskne, zda je číslo prvočíslo nebo ne.

Protože návratový typ prime()je a void, z funkce se nevrátí žádná hodnota.

Příklad 4: Předané argumenty 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; ) 

Ve výše uvedeném programu je kladné celé číslo požadováno od uživatele a uloženo v proměnné num.

Poté numje předán funkci, prime()kde je zaškrtnuto, zda je číslo prvočíslo nebo ne.

Protože návratový typ prime()je int, je 1 nebo 0 vrácena main()volající funkci. Pokud je číslo prvočíslo, vrátí se 1. Pokud ne, vrátí se 0.

Zpět ve main()funkci se vrácená 1 nebo 0 uloží do příznaku proměnné a odpovídající text se vytiskne na obrazovku.

Která metoda je lepší?

Všechny čtyři výše uvedené programy poskytují stejný výstup a všechny jsou technicky správný program.

Neexistuje žádné tvrdé a rychlé pravidlo, která metoda by měla být zvolena.

Konkrétní metoda je vybrána v závislosti na situaci a způsobu, jakým chcete problém vyřešit.

Zajímavé články...