Las funciones son las estructuras más importantes dentro del lenguaje de programación en C/C++ y, en general, en cualquier lenguaje de programación estructurada (Java, PHP…).
Podríamos decir que son el pilar de la programación estructurada, permitiéndonos simplificar la lectura del código; pero lo más importante es que, una función sencilla, que realiza una tarea específica, puede ser utilizada fácilmente en cualquier otro programa.
Si te interesa iniciar en el mundo de la programación visita nuestros cursos de Introducción a la programación.
La construcción de una función involucra tres pasos:
Declaración de la función (prototipo)
Consiste en declarar la función dándole un nombre, el tipo de retorno que posee y el número y tipo de argumentos que recibe. Esta declaración se puede realizar o bien en el mismo archivo fuente, o en un header file (normalmente con extensión .h) e incluirse mediante la directiva #include.
double Cuadrado(double n)
Si definimos la función antes de llamarla en el programa, no es necesaria su declaración.
Definición de la función:
Implementación del código. Es decir, qué va a realizar nuestra función. Puede realizarse también en un archivo separado que se incluirá en la línea de compilación.
// devuelve el cuadrado de un número
double Cuadrado(double n)
{
return n*n;
}
Argumentos
Los nombres de los argumentos, así como el de las variables, son locales a las funciones. El primer valor pasado se corresponde con el primer argumento de la función, el segundo valor con el segundo argumento, y así sucesivamente.
Valor retornado
Una función retorna un resultado del tipo declarado en el prototipo de la función; por esto puede ser empleada en cualquier expresión donde sea válida una variable del tipo retornado.
Nota:
En C / C++ no existen procedimientos, sólo funciones que no devuelven ningún valor, para ello debemos especificar como valor de retorno el tipo void (sin tipo).
Llamada a función
Para llamar a una función se escribe su nombre seguido por una lista de argumentos encerrados entre paréntesis.
cuadrado(25);
cuadrado(X);
En nuestro caso, llamamos tres veces a la función cuadrado(), con diferentes valores en los argumentos. En los dos primeros casos visualizamos el valor devuelto, por medio del cout, y en el tercer caso, lo guardamos en la variable R.
cout << cuadrado(25);
cout << cuadrado(X);
R = cuadrado(X); // guardar en R el cuadrado de X
Ventajas y desventajas:
Reducción de código y legibilidad del programa
Escribimos un pequeño trozo de código que se puede llamar en diferentes partes del programa, en lugar de repetir el mismo código en varios lugares del programa. Evitamos el Copy / Paste y ganamos en legibilidad y en simplificación de código. Además, nos ayuda a reducir el tiempo de entrega total del proyecto.
Facilitarnos la depuración
Si el problema está en un procedimiento llamado, entonces podemos encontrar el error una vez y eliminarlo rápidamente. Cuando se repite el mismo código en varios lugares, es difícil hacer cambios de depuración en todos los códigos. Si hacemos el cambio en una parte, pero no lo repetimos en los otros códigos es fácil confundirse.
Si estás interesado en aumentar tus conocimientos en el área de programación, conoce más sobre nuestros cursos de programación
Efectos de mantenimiento
Los efectos en el mantenimiento del programa, que es la más costosa de las etapas de desarrollo, pueden ser tanto buenos como malos, como con la depuración. Si abusamos de funciones, el programa puede ser más difícil de entender. En consecuencia, más tiempo tardaremos para crear nuestro programa.
Ventajas | Desventajas |
Mejoran la claridad, estructura y legibilidad del programa | Cuando definimos una variable dentro de una función, esa variable, solo es válida dentro de la función |
Se pueden ejecutar más de una vez en un programa y/o en diferentes programas, ahorrando tiempo de programación. | Realiza una tarea explícita y única |
Facilita la división de las tareas entre un equipo de programadores. | Un abuso de funciones, nos puede llevar a un programa difícil de entender |
Se pueden comprobar individualmente. |
Errores comunes:
- Las funciones no devuelven un valor, debemos procurar que las funciones devuelvan un valor.
- Hacer funciones muy largas
- No poner comentarios en las funciones. Es decir, indicar qué está realzando esa función, para facilitar la optimización del código.
Resumen:
Aunque puede haber algún inconveniente en el uso de esta opción de programación, las ventajas superan con creces cualquier desventaja. Implementar funciones y procedimientos en un programa reduce el tiempo de codificación y depuración, reduciendo así el tiempo de desarrollo total.
Si estás interesado en aumentar tus conocimientos en el área de programación, conoce más sobre nuestros cursos de programación