domingo, 5 de septiembre de 2010

RECURSION: Potencia.c

Laboratorio de Lenguajes de Programación - Semana  4

CÓDIGO:

#include

double potencia (int x, int y) {
double resultado;
if(y == 0)
resultado = 1;
else
resultado = x * potencia(x,y-1);
return resultado;
}

int main(void) {
int base=0, exponente=0;
printf("\t\tPROGRAMA PARA CALCULAR UNA POTENCIA\n\n");
printf("Dame el valor de la base -> ");
scanf("%d", &base);
printf("Dame el valor del exponente -> ");
scanf("%d", &exponente);
printf("%d elevado a %d es = %f", base, exponente, potencia(base, exponente));
return 0;
}


¿Cómo funciona el código?

Éste es el bloque recursivo:

double potencia (int x, int y) {
double resultado;
if(y == 0)
resultado = 1;
else
resultado = x * potencia(x,y-1);
return resultado;
}


Variables tipo double para evitar algún desbordamiento. La función recibe 2 parametros:
int x = Base de la potencia
int y = Exponente de la potencia
Necesitamos otra variable double que será la que almacenara el resultado.
Es caso base es if (y==0)

Supongamos = 5^5 , entonces:



En este punto el caso base se cumple puesto que el exponente ( y ) es cero

double potencia (5, 0) {
double resultado;
0 == 0 (SE CUMPLE EL CASO BASE)
REGRESA 1;

Ahora cada subrutina comenzara a resolverse con el valor la anterior le regresa y asi llegaremos al resultado



DESCARGA: Potencia.c

SALUDOS!! ^_^

No hay comentarios:

Publicar un comentario