Typer af brugerdefinerede funktioner i C ++

I denne vejledning lærer du om forskellige tilgange, du kan tage for at løse et enkelt problem ved hjælp af funktioner.

For bedre forståelse af argumenter og returnering i funktioner kan brugerdefinerede funktioner kategoriseres som:

  • Funktion uden argument og uden returværdi
  • Funktion uden argument men returværdi
  • Funktion med argument men ingen returværdi
  • Funktion med argument og returværdi

Overvej en situation, hvor du skal kontrollere primtal. Dette problem løses nedenfor ved at lave brugerdefineret funktion på 4 forskellige måder som nævnt ovenfor.

Eksempel 1: Ingen argumenter bestået og ingen returværdi

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

I ovenstående program prime()kaldes hovedet () uden argumenter.

prime() tager det positive tal fra brugeren og kontrollerer, om tallet er et primtal eller ej.

Da tilbagevenden type prime()vil sige void, er ingen værdi, der returneres fra funktionen.

Eksempel 2: Ingen argumenter bestået, men en returværdi

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

I ovenstående program prime()kaldes funktion fra main()uden argumenter.

prime()tager et positivt heltal fra brugeren. Da returneringstypen for funktionen er en int, returnerer det det indtastede nummer fra brugeren tilbage til den kaldende main()funktion.

Derefter kontrolleres, om nummeret er primt eller ej, i selve main () og udskrives på skærmen.

Eksempel 3: Argumenter bestået, men ingen returværdi

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

I ovennævnte program bliver der først spurgt et positivt tal fra brugeren, der er gemt i variablen num.

Derefter sendes num til den prime()funktion, hvor, uanset om tallet er prime eller ej, kontrolleres og udskrives.

Da returneringstypen prime()er a void, returneres ingen værdi fra funktionen.

Eksempel 4: Argumenter bestået og en returværdi.

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

I ovenstående program bliver et positivt heltal spurgt fra brugeren og gemt i variablen num.

Derefter numoverføres til den funktion, prime()hvor, om antallet er prime eller ej, kontrolleres.

Da returneringstypen prime()er an int, returneres 1 eller 0 til main()opkaldsfunktionen. Hvis tallet er et primtal, returneres 1. Hvis ikke, returneres 0.

Tilbage i main()funktionen gemmes den returnerede 1 eller 0 i det variable flag, og den tilsvarende tekst udskrives på skærmen.

Hvilken metode er bedre?

Alle fire programmer ovenfor giver samme output, og alle er teknisk korrekte programmer.

Der er ingen hård og hurtig regel om, hvilken metode der skal vælges.

Den bestemte metode vælges afhængigt af situationen, og hvordan du vil løse et problem.

Interessante artikler...