Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.74 KB | None | 0 0
  1. /**
  2. \file 5.4.c
  3. \brief Ejercicio 5.4 de la guia de tp's
  4. \details Se ingresa un numero y su potencia, y se resuelve la potenciación.
  5. \author Koremblum Nicolás Mariano, (marianotec7@gmail.com)
  6. \date 2011-08-05
  7. */
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <math.h>
  12.  
  13. /**
  14. \fn float potencia (float, int);
  15. \brief Prototipo de función para calcular la potencia de un numero "W" elevado a la "k".
  16. \arg float, representa el número que sera "potenciado". int, para definir la potencia.
  17. \return float
  18. \author Koremblum Nicolás Mariano, (marianotec7@gmail.com)
  19. \date 2011-08-05
  20. */
  21.  
  22. float potencia (float, float, int);
  23.  
  24. int main (void){
  25.   float w;
  26.   int k;
  27.   printf ("\nPor favor, ingrese un número ENTERO MAYOR que '0': ");
  28.   //Se ingresa el número real mayor que 0.
  29.   scanf ("%5f",&w);
  30.   //Si el numero ingresado es menor que 0, se da mensaje de error y se retorna 1.
  31.   if (w<=0){
  32.     printf ("\nEl número ingresado no es un número natural.\n\n");
  33.     return 1;
  34.   }
  35.   printf ("\nPor favor, ingrese un número entero, el cual será la potencia de %.2f para realizar la potenciación: ",w);
  36.   //Se ingresa el valor entero de la potencia.
  37.   scanf ("%d",&k);
  38.   printf ("\nEl resultado de elevar %.2f a %d es: ",w,k);
  39.   //Se resuelve en el mismo printf la cuenta devolviendo el valor correspondiente.
  40.   printf ("%5.3f\n\n",potencia(w,w,k));
  41.   return 0;
  42. }
  43.  
  44. /**
  45. \fn float potencia (float i, float k, int j)
  46. \brief Calcula la potencia de un número elevado a otro.
  47. \arg float i, es el valor del número a potenciar y al mismo tiempo este valor se modifica transformandose en el resultado de la cuenta. float k, es el valor del número a potenciar se utiliza como auxiliar. int j, es la potencia y tambien se utiliza como contador para ver cuantas veces se debe entrar en la funcion.
  48. \details Realiza la potenciacion entre un numero real mayor que 0 y un numero entero (W^k)
  49. \return float i (resultado).
  50. \author Koremblum Nicolás Mariano, (marianotec7@gmail.com)
  51. \date 2011-08-05
  52. */
  53.  
  54. float potencia (float i, float k, int j){
  55.   //Si "i" esta elevado a 0, entonces el se devuelve como resultado el 1.
  56.   if (j==0){
  57.     return i=1;
  58.   }
  59.   //Si "j" como contador o como valor primitivo es igual a 1, entonces se retorna el mismo valor de "i" que se recibio.
  60.   else if (j==1) {
  61.     return i;
  62.   }
  63.   //Si "j" es mayor que 1 entonces se procede a restarle 1 a "j" y vuelve a llamar a la funcion potencia modificando "i" multiplicando este por "k", se envia "k" sin modificar que representa el valor del numero a potenciar el cual no se modifica y "j" para hacer de contador.
  64.   else {
  65.     j--;
  66.     i = potencia (i*k,k,j);
  67.     return i;
  68.   }
  69.   //Al final de la funcion se retorna "i" al main, que representa el resultado de la operacion.
  70.   return i;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement