Funciones en lenguajes de programación
Las funciones («functions» en inglés) en los lenguajes de programación son unas estructuras que nos permiten no tener que repetir el mismo código una y otra vez.
Por ejemplo, si creamos una función que calcula una conversión de grados Celsius a grados Fahrenheit, no tendremos que volver a escribir todo el código de la formula matemática cada vez que necesitemos realizar esta conversión dentro del programa. Bastará con «llamar» a la función enviando a la misma el valor de grados Celsius que queremos pasar a Fahrenheit
Vamos a ver un ejemplo de funciones en JavaScript, C y Python.
Ejemplo en JavaScript
function cel_to_fah(x)
{
var conversion = x * 1.8 + 32;
return conversion;
}
var y = cel_to_fah(20);
print (y);
Vamos a analizar detenidamente la estructura de esta función:
- En primer lugar indicamos al programa que queremos hacer una función mediante la palabra «function» (palabra propia de JavaScript)
- Luego daremos un nombre a esta función: cel_to_fah (podemos poner el nombre que queramos. Lo recomendable es que siempre empiece por alguna letra y no contenga caracteres no alfa-numéricos, espacios en blanco, etc).
- Mediante los paréntesis y la «x» en medio indicamos que esta función va a devolver un parámetro (en nuestro caso un número). Hemos puesto una «x», pero podríamos poner cualquier letra. Si quisiéramos que la función devolviese más de un parámetro, por ejemplo dos números, pondríamos (x, y).
- Abrimos corchetes (el cuerpo de la función siempre ha de ir en corchetes) y escribimos var conversion = x *1.8 + 32. Mediante estas instrucciones decimos al programa que queremos efectuar la operación matemática x * 1.8 + 32 , la cual es la fórmula de la conversión de grados Celsius a Fahrenheit. Ahora, mediante la instrucción «var conversion» vamos a decirle al programa que guarde el resultado de la operación en la variable «conversion».
- return conversion dice al programa que el resultado que tiene que devolver está dentro es la variable conversion.
¡La función ya está terminada! 🙂
Ahora vamos a usarla.
La usamos mediante la variable con la siguiente declaración: var y = cel_to_fah(20); Esta declaración significa lo siguiente:
- Creamos una variable «y» la cual tiene el valor cel_to_fah(20). «20» son los grados que queremos pasar de Celsius a grados Fahrenheit.
- Mediante la instrucción cel_to_fah(20) estamos haciendo saber al programa que la variable «y» debe almacenar el resultado de enviarle el número «20» a la función cel_to_fah.
Este último punto es clave para entender como hacemos la llamada a la función: simplemente estamos enviando el número 20 a la función. La función cogerá ese numero 20 y lo pondrá donde figura la «x». Por lo tanto la función, internamente, quedaría así:
function cel_to_fah(20) {
var conversion = 20 * 1.8 + 32;
return conversion;
}
Como paso final imprimiremos el resultado mediante la instrucción print (y);
Fácil ¿no?
Podeís ver el resultado copiando y pegando el programa en la estupenda página de la Universidad de Duke
Ahora vamos a ver un ejemplo en Lenguaje C
Ejemplo en C
En C no utilizaremos la palabra «function», la cual es exclusiva de JavaScript. Usaremos una estructura ligeramente diferente:
tipoDeRetorno nombreFuncion ( tipoPar1 par1, tipoPar2 par2, ..., tipoParN parN) {
Instrucción 1;
Instrucción 2;...
Instrucción n;
return valorDevueltoPorLaFuncion;
}
Vamos a ello.
float cel_to_fah (float x) {
float conversion = x * 1.8 + 32;
return conversion;
}
- En primer lugar daremos un nombre a esta función: cel_to_fah (podemos poner el nombre que queramos. Lo recomendable es que siempre empiece por alguna letra no contenga carácteres no alfa-numéricos, espacios en blanco, etc). Es importante reseñar que C es un lenguaje compilado, por lo tanto, en lenguaje C es obligatorio declarar en las variables el tipo de datos con el que vamos a trabajar. Como nosotros vamos a trabajar con números decimales tenemos que poner delante del nombre de la variable la palabra «float«.
- Mediante los paréntesis y la «x» en medio indicamos que esta función va a devolver un parámetro (en nuestro caso un número). Hemos puesto una «x», pero podríamos poner cualquier letra que queramos. Si quisiéramos que la función devolviese más de un parámetro,por ejemplo dos números, pondríamos (x, y). OJO!! Como he comentado antes C es obligatorio declarar en las variables el tipo de datos con el que vamos a trabajar, por lo tanto, tendremos que poner «float» dentro de los paréntesis.
- Abrimos corchetes (el cuerpo de la función siempre ha de ir en corchetes) y escribimos float conversion = x *1.8 + 32. Mediante estas instrucciones decimos al programa que queremos efectuar la operación matemática x * 1.8 + 32 , la cual es la formula de la conversión de grados Celsius a Fahrenheit. Mediante la instrucción «conversion» vamos a decirle al programa que guarde el resultado de la operación en la variable «conversion».
- return conversion dice al programa que el resultado que tiene que devolver está dentro es la variable conversion.
Ya hemos terminado nuestra función, ahora vamos a «llamarla».
En C las funciones se declaran fuera del cuerpo principal del programa. Esto es debido a que el programa principal también es una función. Este último punto es complejo de explicar, por lo tanto si estás interesado en este tema, tendrás que ampliar los conocimientos por tu cuenta.
Cuerpo principal del programa
int main(void) {
printf("Nuestros grados en Celsius son %f\n", cel_to_fah(20));
return 0;
}
Vamos a explicar por encima estas instrucciones:
- int main(void) declara el comienzo del tronco principal del programa, el cual está entre corchetes.
- Mediante la instrucción printf imprimimos el resultado de llamar a la función cel_to_fah y pasarle el parámetro «20». El símbolo %f indica que el dato que queremos recibir es de tipo «float». En C es obligatorio (aparte de declarar la variables según el tipo de dato utilizado) indicar lo que se llama el «Especifcador de formato«, el cual para un número flotante ha de ser «%f». El simbolo \n indica que queremos poner un «retono de carro», es decir: Una linea extra entre el resultado del programa y el final del mismo. Esto último es algo puramente estético y se puede obviar sin problemas.
Vemos que el lenguaje C es bastante más complicado que JavaScript, pero también hay que tener en cuenta que el lenguaje C está diseñado para cosas completamente diferentes: Programación de sistemas operativos, dispositivos electrónicos, micro-controladores, aparatos médicos, sistemas de control industrial. Mientras que JavaScript es un lenguaje mayormente orientado a la programación de páginas webs.