Types de fonctions définies par l'utilisateur en C ++

Dans ce didacticiel, vous découvrirez différentes approches que vous pouvez adopter pour résoudre un seul problème à l'aide de fonctions.

Pour une meilleure compréhension des arguments et du retour dans les fonctions, les fonctions définies par l'utilisateur peuvent être classées comme suit:

  • Fonction sans argument et sans valeur de retour
  • Fonction sans argument mais valeur de retour
  • Fonction avec argument mais pas de valeur de retour
  • Fonction avec argument et valeur de retour

Prenons une situation dans laquelle vous devez vérifier le nombre premier. Ce problème est résolu ci-dessous en créant une fonction définie par l'utilisateur de 4 manières différentes, comme mentionné ci-dessus.

Exemple 1: aucun argument passé et aucune valeur de retour

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

Dans le programme ci-dessus, prime()est appelé depuis le main () sans argument.

prime() prend le nombre positif de l'utilisateur et vérifie si le nombre est un nombre premier ou non.

Étant donné que le type de retour prime()est void, aucune valeur n'est renvoyée par la fonction.

Exemple 2: aucun argument passé mais une valeur de retour

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

Dans le programme ci-dessus, la prime()fonction est appelée à partir du main()sans argument.

prime()prend un entier positif de l'utilisateur. Étant donné que le type de retour de la fonction est an int, il renvoie le nombre saisi par l'utilisateur à la main()fonction appelante .

Ensuite, si le nombre est premier ou non est vérifié dans le main () lui-même et imprimé sur l'écran.

Exemple 3: Arguments passés mais pas de valeur de retour

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

Dans le programme ci-dessus, un nombre positif est d'abord demandé à l'utilisateur qui est stocké dans la variable num.

Ensuite, num est passé à la prime()fonction où, que le nombre soit premier ou non, est vérifié et imprimé.

Étant donné que le type de retour de prime()est a void, aucune valeur n'est renvoyée par la fonction.

Exemple 4: Arguments passés et valeur de retour.

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

Dans le programme ci-dessus, un entier positif est demandé à l'utilisateur et stocké dans la variable num.

Ensuite, numest passé à la fonction prime()où, si le nombre est premier ou non est vérifié.

Depuis, le type de retour de prime()est an int, 1 ou 0 est renvoyé à la main()fonction appelante. Si le nombre est un nombre premier, 1 est renvoyé. Sinon, 0 est renvoyé.

De retour dans la main()fonction, le 1 ou le 0 renvoyé est stocké dans l'indicateur de variable et le texte correspondant est imprimé à l'écran.

Quelle méthode est la meilleure?

Les quatre programmes ci-dessus donnent la même sortie et tous sont des programmes techniquement corrects.

Il n'y a pas de règle absolue sur la méthode à choisir.

La méthode particulière est choisie en fonction de la situation et de la manière dont vous souhaitez résoudre un problème.

Articles intéressants...