sábado, 5 de noviembre de 2011

Funciones en C

En C, una funcion es equivalente a una subrutina o funcion en Fortran, o un procedimiento en Pascal. Una funcion provee un modo conveniente para encapsular algun calculo, el cual puede ser utilizado sin preocuparse acerca de su implementacion. Con funciones diseñadas apropiadamente, es posible ignorar como un trabajo esta hecho, sabiendo que esta hecho es suficiente. C hace la invocacion de funciones facil y eficiente; a menudo veran una funcion corta definida y callada solo una vez.
Hasta ahora hemos utilizado funciones como printf que han sido proporcionadas por nosotros; ahora es tiempo para hacer una propia. Como C no tiene operador de exponenciacion como el ** de Fortran, vamos a hacer una funcion llamada power(m, n) para elevar un entero m a un entero positivo n. Eso es, el valor de power(2,5) es 32. Esta funcion no es una rutina de exponencacion practica, maneja solo potencias positivas de enteros pequeños, pero es suficiente para este caso.(la libreria estandar contiene una funcion pow(x,y) que calcula xy).
Aqui esta la funcion power y el programa principal para ejecutarlo, asi que aqui puedes ver la estructura completa.
using namespace std;
int power(int m, int n);
int main()
{
    int i;
    for(i=0;i<10;i++)
        printf("%d \t %d \t %d\n",i,power(2,i),power(-3,i));             
    system("Pause");    
    return 0;           
}
int power(int base, int n)
{
    int i, p=1;
    for(i=0; i<=n; i++)
        p=p*base;
    return p/base;     
}
lo que mostrara sera esta tabla
Como vemos, la funcion power es llamada 2 veces por el main en la linea
        printf("%d \t %d \t %d\n",i,power(2,i),power(-3,i));
cada llamada pasa 2 parametros a power, el cual cada vez retorna un entero el cual lo formateamos con %d para ser impreso. En una expresion, power(2,i) es un entero formado de 2 y de i. La primera linea de power:
int power(int m, int n);
declara los tipos de parametros y nombres, y el tipo de resultado que la funcion retorna. Los nombres usados por power para sus parametros son locales para power, y no son visibles para otra funcion: otras rutinas pueden usar los mismos nombres sin conflicto. Esto tambien sucede para las variables i y p: i en power no tiene relacion con el i en el main. El valor que power calcula calcula es returnado al main mediante la declaracion return.
Espero les haya aclarado algunas dudas este pequeño ejemplo :).

0 comentarios:

Publicar un comentario