English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriales básicos

C++ Control de flujo

C++ Función

C++ Matriz & cadena

C++ Estructuras de datos

C++ Clase & objeto

C++ Punteros

C++ Herencia

C++ Tutorial STL

C++ Manual de referencia

c++ Tipos de funciones definidas por el usuario

En este tutorial, aprenderás a usar funciones para resolver diferentes métodos de un solo problema.

Para entender mejor los parámetros y el valor de retorno de las funciones, las funciones definidas por el usuario se pueden clasificar como:

Considere una situación en la que debe verificar los números primos. A través de lo siguiente4Hay diferentes formas de definir funciones definidas por el usuario para resolver los siguientes problemas.

Ejemplo1: No se pasan parámetros, ni hay valor de retorno

#include <iostream>
using namespace std;
void prime();
int main()
{
    // No se pasan parámetros a prime()
    prime();
    return 0;
}
// El tipo de retorno de la función es void, porque no se devuelve ningún valor.
void prime();
{
    int num, i, flag = 0;
    cout << "Ingrese un entero positivo para verificar: ";
    cin >> num;
    for(i = 2; i <= num/2; ++i)
    {
        if (num % i == 0)
        {
            flag = 1; 
            break;
        }
    }
    if (flag == 1)
    {
        cout << num << " no es primo.";
    }
    else
    {
        cout << num << " es un número primo.";
    }
}

En el programa anterior, se llama a prime() en main(), pero sin parámetros.

La función prime() se utiliza para obtener un número entero positivo del usuario y verificar si el número es primo.

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

Ejemplo2: No se pasan parámetros, pero hay un valor de retorno

#include <iostream>
using namespace std;
int prime();
int main()
{
    int num, i, flag = 0;
    // No se pasa ningún parámetro a prime()
    num = prime();
    for (i = 2; i <= num/2; ++i)
    {
        if (num % i == 0)
        {
            flag = 1;
            break;
        }
    }
    if (flag == 1)
    {
        cout << num << " no es un número primo.";
    }
    else
    {
        cout << num << " es un número primo.";
    }
    return 0;
}
// El tipo de retorno de la función es int
int prime()
{
    int n;
    printf("Ingrese un entero positivo para verificar: ");
    cin >> n;
    return n;
}

En el programa anterior, se llama a la función prime() desde main() sin parámetros.

La función prime() obtiene un entero positivo del usuario. Dado que el tipo de retorno de la función es int, devuelve el número ingresado al llamar a la función main().

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

Ejemplo3:los parámetros se pasaron pero no se devolvieron valores

#include <iostream>
using namespace std;
void prime(int n);
int main()
{
    int num;
    cout << "Ingrese un entero positivo para verificar: ";
    cin >> num;
    
    // El parámetro num se pasa a la función prime()
    prime(num);
    return 0;
}
// La llamada a la función no devuelve ningún valor. Por lo tanto, el tipo de retorno de la función es 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 << " no es primo.";
    }
    else {
        cout << n << " es primo.";
    }
}

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

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

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

Ejemplo4:parámetros pasados y valores devueltos.

#include <iostream>
using namespace std;
int prime(int n);
int main()
{
    int num, flag = 0;
    cout << "Ingrese un entero positivo para verificar: ";
    cin >> num;
    // El parámetro num se pasa a la función check()
    flag = prime(num);
    if(flag == 1)
        cout << num << " no es primo.";
    else
        cout << num << " es primo.";
    return 0;
}
/* Esta función devuelve un valor entero. */
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 pregunta al usuario por un entero positivo y se almacena en la variable num.

Luego, se pasa num 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 int, por lo tanto se1O 0 se devuelve a la función de llamada main(). Si el número es primo, se devuelve1. Si no es así, se devuelve 0.

En la función main(), el valor devuelto1O 0 se almacena en la variable flag y el texto correspondiente se imprime en la pantalla.

¿Cuál es el mejor método?

Todos los cuatro programas proporcionan el mismo resultado de salida y técnicamente son programas correctos.

No hay especificación estricta para la elección del método.

Elija el método específico según la situación específica y la forma en que desee resolver el problema.