fbpx
NOTICIAS CIPSA INFORMÁTICA, MARKETING DIGITAL, PROGRAMACIÓN, VIDEOJUEGOS, OFFICE, DISEÑO, 3D, ETC
22
noviembre
2019

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.

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.

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ákida 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.

Author

Jordi Llort

Profesor de Máster en Programación .NET . Máster de Gestión digital de Empresas, Máster de Videojuegos y SAP. Formador en CIPSA, con más de 30 años de experiencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Recibe de primero nuestras ofertas de empleo y noticias