ARGUMENTOS Y PARÁMETROS DE LAS FUNCIONES

octubre 1, 2007

ARGUMENTOS Y PARÁMETROS DE LAS FUNCIONES


Supongamos que en un determinado programa debemos calcular repetidamente el valor medio de dos variables, una solución razonable sería crear una función que realice dicho cálculo, y llamarla cada vez que se necesite. Para ello será necesario, en cada llamada, pasarle los valores de las variables para que calcule su valor medio. Esto se define en la declaración de la función especificando, no solo su valor de retorno sino también el tipo de argumentos que recibe:

 

double valor_medio(double x, double y) ;

De esta declaración vemos que la función valor_medio recibe dos argumentos ( x e y ) del tipo double y devuelve un resultado de ese mismo tipo .

Cuando definamos a la función en sí, deberemos incluir parámetros para que alberguen los valores recibidos, así escribiremos:

double valor_medio(double x, double y )

{

return ( (x + y) / 2.0 )

}

NOTA: No es necesario que los NOMBRES de los párametros coincidan con los declarados previamente, es decir que hubiera sido equivalente escribir: double valor_medio(double a, double b) etc, sin embargo es una buena costumbre mantenerlos igual. En realidad en la declaración de la función, no es necesario incluir el nombre de los parámetros, bastaría con poner solo el tipo, sin embargo es práctica generalizada, explicitarlos a fin de hacer más legible al programa .
Aquí estamos utilizando la síntaxis moderna del lenguaje C, pudiendose encontrar en versiones arcaicas, definiciones equivalentes como :

double valor_medio()      ó     double valor_medio(double, double)

double x;                      double x ;

double y;                      double y ;

{                               {

…………                    …………..

Sin embargo es preferible utilizar la nomenclatura moderna, ya que esta facilita la rápida comprensión del programa .
Veamos un ejemplo, para determinar el comportamiento de los parámetros, Supongamos desear un programa que calcule el valor medio de dos variables incrementadas en un valor fijo, es decir:

( ( x + incremento ) + ( y + incremento ) ) / 2.0

Lo podríamos resolver de la siguiente forma :

 

#include <stdio.h>

/* Declaración de la función y el tipo de sus parámetros */

double valor_medio(double p_valor, double s_valor, double inc) ;

main()

{

double x, y, z, resultado ;

printf(“Ingrese el primer valor: “) ;

scanf(“%lf”, &x ) ;

printf(“\nIngrese el segundo valor: “);

scanf(“%lf”, &y ) ;

printf(“\nIngrese el incremento    : “);

scanf(“%lf”, &z) ;

resultado = valor_medio( x, y, z );     /* llamada a la función y

                                              pasaje de argumentos   */

printf(“\n\nResultado de la operación: %lf”, resultado) ;

printf(“\n\nValor con que quedaron las variables: “) ;

printf(“\n Primer valor : %lf “, x ) ;

printf(“\n Segundo valor: %lf “, y ) ;

printf(“\n Incremento   : %lf “, z ) ;

}

/* Definición de la función y sus parámetros */

double valor_medio( double p_valor, double s_valor, double inc )

{

p_valor  += inc ;

s_valor += inc ;

return ( (p_valor + s_valor ) / 2.0 ) ;

}

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: