Typen door de gebruiker gedefinieerde functies in C ++

In deze zelfstudie leert u over verschillende benaderingen die u kunt volgen om een ​​enkel probleem op te lossen met behulp van functies.

Voor een beter begrip van argumenten en terugkeer in functies, kunnen door de gebruiker gedefinieerde functies worden gecategoriseerd als:

  • Functie zonder argument en zonder retourwaarde
  • Functie zonder argument maar retourwaarde
  • Functie met argument maar geen retourwaarde
  • Functie met argument en retourwaarde

Overweeg een situatie waarin u het priemgetal moet controleren. Dit probleem wordt hieronder opgelost door een door de gebruiker gedefinieerde functie op 4 verschillende manieren te maken, zoals hierboven vermeld.

Voorbeeld 1: geen argumenten doorgegeven en geen retourwaarde

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

In het bovenstaande programma prime()wordt aangeroepen vanuit de main () zonder argumenten.

prime() neemt het positieve nummer van de gebruiker en controleert of het nummer een priemgetal is of niet.

Aangezien het retourtype prime()is void, wordt er geen waarde geretourneerd door de functie.

Voorbeeld 2: er zijn geen argumenten doorgegeven, maar een retourwaarde

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

In het bovenstaande programma wordt de prime()functie aangeroepen vanuit de main()zonder argumenten.

prime()neemt een positief geheel getal van de gebruiker. Aangezien het retourneringstype van de functie een is int, retourneert het het ingevoerde nummer van de gebruiker terug naar de aanroepende main()functie.

Vervolgens wordt in het hoofdmenu () zelf gecontroleerd of het nummer een priemgetal is of niet en op het scherm afgedrukt.

Voorbeeld 3: argumenten doorgegeven maar geen retourwaarde

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

In het bovenstaande programma wordt eerst een positief getal gevraagd aan de gebruiker, dat wordt opgeslagen in de variabele num.

Vervolgens wordt num doorgegeven aan de prime()functie waar, of het nummer een priemgetal is of niet, wordt gecontroleerd en afgedrukt.

Aangezien het retourtype van prime()a is void, wordt er geen waarde geretourneerd door de functie.

Voorbeeld 4: doorgegeven argumenten en een retourwaarde.

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

In het bovenstaande programma wordt een positief geheel getal van de gebruiker gevraagd en opgeslagen in de variabele num.

Vervolgens numwordt doorgegeven aan de functie prime()waar wordt gecontroleerd of het getal een priemgetal is of niet.

Aangezien het retourtype prime()an is int, wordt 1 of 0 geretourneerd naar de main()aanroepende functie. Als het getal een priemgetal is, wordt 1 geretourneerd. Zo niet, dan wordt 0 geretourneerd.

Terug in de main()functie wordt de geretourneerde 1 of 0 opgeslagen in de variabele vlag en de bijbehorende tekst wordt op het scherm afgedrukt.

Welke methode is beter?

Alle vier bovenstaande programma's geven dezelfde output en zijn allemaal technisch correct programma.

Er is geen vaste regel voor welke methode moet worden gekozen.

De specifieke methode wordt gekozen afhankelijk van de situatie en hoe u een probleem wilt oplossen.

Interessante artikelen...