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 ) ;

}

Advertisement

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.