Anteriormente ya habíamos hablado un poco acerca de las funciones, pero en este artículo profundizaremos más sobre este tema, explicaremos que son las funciones, para que sirven y como utilizarlas.
Función: Es un subprograma que realiza una tarea en especifica. Estas son muy útiles pues nos permite estructurar el programa y hacerlo mucho más entendible, además de que nos permite ahorrar líneas de código ante tarea repetitivas. Supongamos que queremos calcular la edad de 500 personas en base a su fecha de nacimiento; no vamos a repetir el mismo código 500 veces para calcular su edad, en estos casos se utiliza una función, que se manda a llamar para calcular la edad de cada persona en vez de repetir el código 500 veces. La función puede recibir parámetros (datos) de otras funciones o el programa principal, y también pueden enviar parámetros a otras funciones del programa. Los parámetros que podemos enviar son los tipo int, float, double, char y datos sin valor (nulo), sin embargo NO se pueden regresar estructuras ni arreglos. Al igual que una variable, las funciones también necesitan declararse al inicio del programa. Para declarar funciones se utiliza la siguiente sintaxis, que ira en la cabecera del programa, donde declaramos las variables.
Código:
tipo_de_dato_de_salida nombre_de_funcion(tipo_de_dato_de_entrada nombre_de_dato); |
---|
Y la sintaxis de nuestra función seria la siguiente, esta puede ir en cualquier parte del programa después de las declaraciones, aunque regularmente va debajo de la función main:
Código:
tipo_de_dato_de_salida nombre_funcion(tipo_de_dato_de_entrada nombre_de_dato) { /*Aquí se escribe la función adicional*/ } |
---|
Por ejemplo, si queremos crear una función que regrese un valor tipo entero, la función se llame “Multiplicar”, que recibirá una variable tipo flotante que queremos que se llame “Numero”, y regrese un valor llamado “Resultado”, se declararía así:
Código:
int multiplicar(float numero); |
---|
Y el código de nuestra función seria el siguiente:
Código:
int multiplicar(float numero) { int resultado; /*Aquí ira el contenido de nuestra funcion*/ return resultado; } |
---|
Función main: Es la función principal de nuestro programa, lo primero que se ejecutará después de la declaración de librerías, variables y funciones. La costumbre en programación es que la base del programa, es decir, la estructura principal se encuentre en esta función. Desde ahí se pueden mandar llamar a otras funciones y coordinar toda la base del programa. La sintaxis es la siguiente.
Código:
int main() { /* Aquí se escribe el programa principal */ return 0; } |
---|
Variable local: Es una variable que se encuentra declarada dentro de una función (puede ser la función main u otra), cuyo funcionamiento y manipulación solo será dentro de dicha función. Por ejemplo, si declaramos una variable llamada “Resultado” dentro de una función llamada “Multiplicar”, nuestra variable solo se podrá manipular y visualizar en dicha función. Si queremos que se pueda manipular en otra parte del programa, tendríamos que enviarla como parámetro a la función en donde la queremos utilizar.
Variable global: Es una variable que no se encuentra declarada dentro de una función. Puede ser usada, visualizada y manipulada en cualquier parte del programa, ya sea en la función main o en otra, siempre y cuando la declaremos en la cabecera del programa. Por ejemplo, en el siguiente código, la variable llamada global puede ser usada en la función main y en la función multiplicar, pues se declaró al inicio del programa.
Código:
int global; int main() { /* Aquí se escribe el programa principal */ } int multiplicar() { /*Aquí ira el contenido de nuestra función*/ } |
---|
Pero en el siguiente código, la variable global solo se podrá utilizar en la función multiplicar, pues la declaración de la variable se hizo después de la función main, por lo tanto, no se podrá utilizar en la función main.
Código:
int main() { /* Aquí se escribe el programa principal */ } int global; int multiplicar() { /*Aquí ira el contenido de nuestra función*/ } |
---|
Se recomienda que si queremos comunicar a varias funciones, es decir, manejar datos entre ellas, se utilicen variables locales y se envíen los datos mediante parámetros, pues el uso de variables globales consume más memoria.
Llamada a una función: Para mandar a llamar o invocar a una función, solo basta con escribir el nombre de la función, y entre paréntesis escribir el dato que enviaremos; en caso de que no enviemos dados, entre los paréntesis no habrá nada.
Por ejemplo, si desde la función main queremos llamar a una función llamada “Multiplicar”, y no enviaremos datos, la sintaxis seria la siguiente:
Código:
int main() { multiplicar(); return 0; } |
---|
Pero si desde la función main queremos llamar a una función llamada “Multiplicar”, y enviaremos dos datos llamados “Num1” y “Num2”, la sintaxis seria la siguiente:
Código:
int main() { multiplicar(num1,num2); return 0; } |
---|
Retorno de variables: Las funciones tienen la capacidad de regresar valores a la función que los mando a llamar. Para eso se utiliza la sintaxis return, seguida de la variable o la operación que regresara a la función. Supongamos que queremos una función que haga una suma, y nos regrese el resultado de la suma a la función main, la sintaxis seria la siguiente:
Código:
int main() { int resultado; resultado=suma(); return 0; } int suma() { int resultado; /*Aquí ira el contenido de nuestra función*/ return resultado; } |
---|
Realizar un programa que desde la función main se le solicite al usuario que ingrese dos números que desee multiplicar, y envié los datos a otra función y ahí se realice la multiplicación de los valores, después regresará el valor de la multiplicación a la función main y ahí se mostrara el resultado de la operación.
Puedes encontrar el código del programa debajo de este video.
Código:
/* Programa: Multiplicación Programa que utiliza funciones para realizar una multiplicación Por Solución Ingenieril*/ #include <stdio.h>/* Declaración librerías*/ #include <stdlib.h>/* Declaración librerías*/ /* Declaramos la funcion que multiplicara*/ int multiplicar(int numero1, int numero2); /* Iniciamos rutina principal */ int main() { /* Declaramos variables locales*/ int num1,num2,resultado; /* Solicitamos los valores y los guardamos*/ printf("Ingrese el primer numero: "); scanf("%d", &num1); printf("Ingrese el segundo numero: "); scanf("%d", &num2); /* Llamamos a la función para multiplicar, y guardaremos el valor que regrese en Resultado*/ resultado=multiplicar(num1,num2); //Mostramos el resultado printf("El resultado de la multiplicacion es %d", resultado); return 0; } //Iniciamos nuestro programa para multiplicar int multiplicar(int numero1, int numero2){ /* Declaramos variable local, donde guardara el resultado*/ int resultado; /*Multiplicamos */ resultado = numero1 * numero2; //Regresamos el resultado return resultado; } |
---|
El uso de funciones es una de las bases fundamentales dentro de la programación estructurada, pues nos permite hacer programas modulares, mucho más entendibles, y permite el trabajo en equipo dentro de un grupo de programadores. En este artículo explicamos las bases sobre las funciones, desde que son hasta como utilizarlas, con sus respectivos ejemplos. Ahora podemos utilizar lo aprendido en programas muchos más complejos que requiera una programación más estructurada.