En ocasiones necesitamos realizar funciones para ahorrar líneas de código, normalmente cuando se realizara una tarea repetitiva. Lo más seguro es que necesitemos enviarle datos a la función para que realice operaciones y cumpla su tarea. En este tema te explicaremos como enviarle parámetros a una función.
Parámetros de una función: Los parámetros o argumentos de una función son aquellos valores que se especifican tanto en la declaración de la función como al llamar a la función. Estos parámetros permiten la comunicación entre funciones, además de que son esos valores con los que se realizaran operaciones dentro de la función. Estos se clasifican en dos:
1. Ficticios o formales: Son los parámetros que se declaran en la definición de la función. En esos parámetros se guardan los valores de los datos que nos envían desde otra función. Estos parámetros se comportan como variables locales en la función. Por ejemplo, en el siguiente código la variable altura, y peso que se declaran en la definición de la función son parámetros formales (también llamados ficticios).
Código:
float cal_imc(int altura, int peso){ //Contenido de la función } |
---|
2. Reales o actuales: Son los valores que se envían a la función, es decir, que se utilizan para la llamada de la función. Estos valores pueden ser constantes, variables, e incluso operaciones. En el siguiente ejemplo, los valores X y Y son parámetros reales (también llamados actuales).
Código:
int main() { int x, y; cal_imc(x, y); return 0; } |
---|
Funciones sin envío de parámetros: Son aquellas funciones en las cuales no es necesario que se reciba un parámetro. En estos casos, normalmente se solicita la información dentro de la función, y ahí mismo se hace la operación y se muestra el resultado.
Funciones con envío de parámetros: Son aquellas funciones en donde recibirá los datos de otra función, y con dichos datos realizara las operaciones programadas para posteriormente enviarle el resultado a la función que la llamó. Se debe notar bien que tipos de datos se envían y se reciben, y que coincidan con el mismo tipo de dato en la otra función. Supongamos que la función A le envía un parámetro tipo float a la función B; la función B debe recibirla también como tipo float, si no se hace de esa forma, se realiza la conversión de tipos de datos, lo que puede significar en distorsión del valor de la variable.
Ventajas de usar envío de parámetros entre funciones
Ejemplo de función sin envío de parámetros: En este caso se solicitan los valores para calcular el índice de masa corporal con el peso y la altura de la persona, y se muestra el resultado, todo dentro de la función. Recordemos que para calcular el índice de masa corporal se usa la siguiente formula, el peso debe estar en Kg, y la altura en metros.
Puedes encontrar el código del programa debajo de este video.
Código:
#include <stdio.h> #include <stdlib.h> void cal_imc(); int main() { printf("Bienvenido al programa, introduce la informacion necesaria...\n"); cal_imc(); return 0; } void cal_imc(){ float altura, peso, imc; printf("Introduce tu altura en metros: \n"); scanf("%f",&altura); printf("Introduce tu peso en Kg: \n"); scanf("%f",&peso); imc=peso/(altura*altura); printf("Tu indice de masa corporal es %.2f",imc); } |
---|
Ejemplo de función con envío de parámetros: En este caso se solicitan los valores para calcular el IMC y se muestra el resultado en la función main; la operación se calcula en la función externa.
Código:
/* Envío de parámetros en funciones Programa en envía datos a otra función para realizar una operación Por Solución Ingenieril*/ #include <stdio.h> #include <stdlib.h> //Declaramos libreria float cal_imc(float altura, float peso); int main() { //Programa principal float al, kg, imc; //Declaramos variables locales printf("Introduce la altura en metros: \n"); //Solicitamos que se ingrese el dato scanf("%f",&al); //Lo guardamos printf("Introduce el peso en Kg: \n"); //Solicitamos que se ingrese el dato scanf("%f",&kg); //Lo guardamos imc=cal_imc(al,kg); //Llamamos a la función y guardamos el resultado que nos regresara printf("Tu indice de masa corporal es %.2f",imc); //Mostramos resultado return 0; } float cal_imc(float altura, float peso){ //Función que calculará el resultado y lo regresará return peso/(altura*altura); } |
---|
Resultado
Entender como enviar y recibir datos entre funciones es una de las tareas primordiales a la hora de programar, pues nos facilitará mucho cuando queramos optimizar y ahorrar líneas de código, además de que es algo fundamental para la programación modular. En este artículo explicamos detalladamente el envío de parámetros entre funciones, y mostramos ejemplos de cómo realizarlo.