/*
 * arquivo: pot_func.c
 *
 * Este programa recebe dois numeros reais x e y, dois inteiros a e b,  e calcula 
 * o valor da seguinte expressao:  x^a + (x-y)^5 + y^(a+b).
 * Para isso, define uma funcao chamada pot que tem dois parametros
 * x e n,  e devolve o valor de x elevado `a potencia n.
 */

#include  <stdio.h>

/* prototipo da funcao **********************************/

double pot(double x, int n);
 /* Funcao que calcula o valor de x elevado `a potencia n  */

/********************************************************/

int main()
{
    double x, y, valor;
    int a, b;
    printf("Entre com os valores de x e y : ");
    scanf("%lf %lf", &x, &y);
    printf("x = %f  y = %f \n", x, y);
    printf("Entre com os valores de a e b : ");
    scanf("%d %d", &a, &b);
    printf("a = %d  b = %d \n", a, b);

    valor = pot(x, a) + pot(x - y, 5) + pot(y, a + b);

    printf("O valor da expressao x^a + (x-y)^5 + y^(a+b) e' %e\n", valor);

    return 0;

}
/* 
 * Funcao: pot
 * Uso: pot(x, n)
 * Esta funcao devolve o valor de x elevado `a potencia n.
 */

double pot(double x, int n)
{
    int i;
    double prod;

    prod = 1.0;
    for (i = 0; i < n; i++)
	prod = prod * x;
    return prod;
}