Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


LAS FUNCIONES
 
 

Definición de una función

float f1(par1,par2)                             void f2(par1,par2)                                 f3(par1,par2)
type par1;                                             type par1;                                               type par1;
type par2;                                             type par2;                                               type par2;
{                                                               {                                                                 {
    ...                                                             ...                                                                 ...
}                                                                }                                                                 }

Una función sin tipo, (void), se conoce como procedimiento.
 


Llamado de una función

Para llamar a una función con nombre toto con n parámetros y una función cachafas con cero parámetros, se debe respetar la sintáxis siguiente:

                        x = toto( <par1>,<par2>, ... ,<parn>);
                        x = cachafas();

La variable x tomará el valor regresado por la función.

Para llamar a un procedimiento con nombre toto con n parámetros y un procedimiento cachafas con cero parámetros, la sintáxis a respestar es:

                        toto( <par1>,<par2>, ... ,<parn>);
                        cachafas();

Salida de una función

Cuando la función termina deber regresar a donde fue llamada.

Esto se hace a travez de la instrucción: return.

Esta instrucción existe bajo dos formas:

            1.) return(x);
            2.) return;

1. La primera regresa al programa que la llamó el valor de x, si x es una variable, o la constante x si esta es una constante.
2. La segunda simplemente regresa el control a quien llamó a la función.

Notas:
 


prog21.c Ejemplo llamado y regreso funciones

/* El programa suma, multiplica y divide dos numeros */

#include <stdio.h>

/* función suma(x,y) */

int suma(x,y)
      int x,y;
{  
      int res;

     
      res = x + y;
      return res;

}

/* función multiplica(x,y) */

int multiplica(x,y)
     int x,y;
{
      int res;
      res = x * y;
      return res;
}

/* función divide(x,y) */

float divide(x,y)
       int x,y;
{    
     float a,b;

     a=(float)x;
     b=(float)y;
     if ( y != 0)
       return(a/b) ;
     else
        printf("Division entre cero \n");

}
 
/* función principal */

int main()
{

      int a,b;
      int r1;
      float r2;

      printf(''De los valores de a,b:');
      scanf(''%d %d',&a,&b);
      r1 = suma(a,b);
      printf("La suma entre a y b es: %d \n", r1);
      r1 = multiplica(a,b);
      printf("La multiplicacion entre a y b es: %d \n", r1);

      r2 = divide(a,b);
      printf("La division de a entre es: %.3f \n", r2);
               
}


Ejercicio funciones


  1. Escriba un programa que lea  tres números enteros que representan la longitud de las tres líneas que conforman un triángulo. Debe mandar llamar una función que le indique si se trata de un triangulo equilatero, isosceles o escaleno y desplegar el resultado. A continuación debe mandar llamar una función denominada area que calcule y regresa el área del triangulo. Dentro de la función area debe preguntar por los valores de la base y la altura.  Se debe desplegar el resultado. Después debe mandar llamar una función que calcula el perímetro del triangulo. También debe desplegar el resultado.
  2. Escriba un programa solicite un número entre 1 y 100 si el numero no cumple con estas condiciones debera desplegar un mensaje de error y preguntar de nuevo por el numero. Una vez capturado, debe mandar llamar una función que regrese un valor de 1 si el numero es primo y un cero en caso contrario.  Despues debe mandar llamar a otra función que regrese el valor del factorial de este número y una vez regresado debe desplegarlo. Por último debe llamar una función que indicara si es par o impar y regresará el cuadrado de este numero. Debe desplegar estos últimos resultados.

 

MENÚ PRINCIPAL