Tipos de funciones definidas por el usuario en C ++

En este tutorial, aprenderá acerca de los diferentes enfoques que puede tomar para resolver un solo problema usando funciones.

Para comprender mejor los argumentos y el retorno de las funciones, las funciones definidas por el usuario se pueden clasificar como:

  • Función sin argumento y sin valor de retorno
  • Función sin argumento pero con valor de retorno
  • Función con argumento pero sin valor de retorno
  • Función con argumento y valor de retorno

Considere una situación en la que debe verificar el número primo. Este problema se resuelve a continuación haciendo una función definida por el usuario de 4 formas diferentes como se mencionó anteriormente.

Ejemplo 1: No se pasan argumentos y no se devuelve ningún valor

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

En el programa anterior, prime()se llama desde main () sin argumentos.

prime() toma el número positivo del usuario y comprueba si el número es primo o no.

Dado que, tipo de retorno de prime()es void, no se devuelve ningún valor de la función.

Ejemplo 2: No se pasan argumentos pero se devuelve un valor

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

En el programa anterior, la prime()función se llama desde el main()sin argumentos.

prime()toma un número entero positivo del usuario. Dado que el tipo de retorno de la función es an int, devuelve el número ingresado por el usuario a la main()función que llama .

Luego, si el número es primo o no, se verifica en el propio main () y se imprime en la pantalla.

Ejemplo 3: argumentos pasados ​​pero sin valor de retorno

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

En el programa anterior, primero se le pide al usuario un número positivo que se almacena en la variable num.

Luego, num se pasa a la prime()función donde, si el número es primo o no, se verifica e imprime.

Dado que, el tipo de retorno de prime()es a void, la función no devuelve ningún valor.

Ejemplo 4: Argumentos pasados ​​y un valor de retorno.

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

En el programa anterior, se solicita al usuario un número entero positivo y se almacena en la variable num.

Luego, numse pasa a la función prime()donde se verifica si el número es primo o no.

Dado que, el tipo de retorno de prime()es an int, 1 o 0 se devuelve a la main()función de llamada. Si el número es primo, se devuelve 1. Si no, se devuelve 0.

De vuelta en la main()función, el 1 o 0 devuelto se almacena en el indicador de variable y el texto correspondiente se imprime en la pantalla.

¿Qué método es mejor?

Los cuatro programas anteriores dan el mismo resultado y todos son programas técnicamente correctos.

No existe una regla estricta sobre qué método debe elegirse.

El método particular se elige dependiendo de la situación y de cómo desea resolver un problema.

Articulos interesantes...