Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


LOS PARÁMETROS

Parámetro: valor que personaliza una función para un propósito particular.

Caracteristicas:
 

                1. por valor: valor que entra, es el mismo con el que sale;
                2. por dirección: si el parámetro es modificado, este tomará el de la última modificación.
 

El paso y regreso de parámetros

/* paso por valor */                                        /* paso por dirección */

a)                                                                         b)
float x;                                                                int l;
coseno(x);                                                         toto(&l);

El regreso del valor de los parámetros es:

a)                                                                         b)
<tipo> nombre(par)                                      <tipo> nombre(par)
int par;                                                               int *par;
Bloque                                                               Bloque
 

prog22.c Ejemplo paso de parámetros

#include <stdio.h>

void proc(p1,p2)
                        int p1;
                        int *p2;
{

                        printf(''Dentro proc1; valor i1,i2:%d,%d \n'',p1,*p2);
                        *p2 = *p2+p1;
                        p1 = p1*2;
                        printf(''Dentro proc2; valor i1,i2:%d,%d \n'',p1,*p2);
                        printf(''Dentro proce; dar valores i1,i2:'');
                        scanf(''%d%d'',&p1,&*p2);
                        printf(''Dentro proc3; valor i1,i2:%d,%d \n'',p1,*p2);
}

int main()
{

                        int i1,i2;

                        i1=5; i2=105;
                        printf(''En main1: valor i1,i2:%d,%d \n'',i1,i2);

                        proc(i1,&i2);
                        printf(''En main2: valor i1,i2:%d,%d \n'',i1,i2);
}



 

prog23.c Ejemplo paso parámetros por valor

/* Cálculo del factorial n utilizando una función recursiva */

#include <stdio.h>

int fac(x)
                   int x;
{
                  if (x==0)
                        return(1);
                 else
                        return( fac(x-1)*x);
}


int main()

{

                    int i;
                    int f;

                    scanf(''%d'',i);
                    f=fac(i);
                    printf(''fac(%d)=%d \n'',i,f);
}


 

prog24.c Ejemplo paso parámetros por dirección

/* Cálculo del factorial n utilizando un procedimiento recursivo */

#include <stdio.h>

/* definición función facto(i,fac) */

void facto(i,fac)
                    int i; /* i es pasado por valor */
                    int *fac; /* fac pasado por direcci'on */
{
                    if (i==0)
                            *fac=1;
                    else
                            {
                                facto(i-1,&*fac);
                                *fac = *fac*i;
                            }
}
 

int main()
{
                    int l;
                    int f;
 
                    scanf(''%d'',i);
                    facto(i,&f);
                    printf(''fac(%d)=%d \n'',i,,f);
}


Ejercicios parámetros

  1. Escriba un programa que capture dos numeros enteros. Despues debe mandar una función de nombre swap(x, y) que recibe dos enteros. La función debe regresar el valor más grande de los números, e intercambiar los valores que contienen las variables que se le pasarón como parámetros. Se deben imprimir los valores antes y después de haber mandado llamar la función, así como el valor del número más grande. Un ejemplo de salida de lo solicitado se presenta a continuación:
                     $./ parametros
                     Proporcione valores de a y b
                     75 23
                     Valor de a antes de swap: 75
                     Valor de b antes de swap: 23
                     El valor mas grande es: 75
                     Valor de a despues de swap: 23
                     Valor de b antes de swap: 75
                     $
  1. Escriba un progrma que capture dos números enteros de la línea de comandos. El programa debe mandar llamar una función de nombre cuadrado. La función debe regresar un valor de 1 si se trata de un cuadaro y un cero si se trata de un rectágulo.  Por otro lado, la función recibirá dos parámetros donde regresara el área y el perímetro del cuadrado. Se deben desplegar los tres resultados.



 

MENÚ PRINCIPAL