Calculo de potencias

De Ejercicios


Contenido

Enunciado

Realiza un programa que calcule las potencias de la 2 a la 10 del número PI y la raíz cuadrada de dicha potencia. Para ello construye una función que calcule la potencia n-ésima de un número cualquiera y utiliza después la función sqrt de la librería matemática.

Soluciones

Programa en C por Angel

Solución comentada del Ejercicio:

 /* fichero potencia.c */
 #include <stdio.h>
 #include <math.h>
 #define PI 3.14159265359
 /*---------------------------------------------*/
 double poten(double a, int b) {
   int i;
   double resul=1.0;
   for (i=1; i<=b; i++)
      resul*=a;
   return resul;
 }
 /*--------------------------------------------*/
 void main(void) {
   int i;
   for (i=2; i<=10; i++) {
      printf("PI elevado a %d es %5.2lf y su raiz es %5.2lf\n", i, poten(PI, i), sqrt(poten(PI, i)) );
   }
 }

Comentario

Para calcular las potencias de la 2 a la 10 del número PI, se utiliza un bucle for que va de i=2 a i=10, llamando en cada ejecución a la función poten(). A esta función se le pasa una constante double, que es el número PI, y el exponente entero i. La función poten() sirve para calcular la potencia i-ésima de cualquier número. En este caso, la variable a de la función toma el valor de PI en todas las llamadas, mientras que la variable b copia el valor de i que será distinto en cada una de las llamadas.

Solución en Pseudocódigo

Para realizar el ejercicio en pseudocódigo vamos a partir de la premisa de que existe una función llamada raiz que calcula la raiz cuadrada de un real.

 FUNCION  poten(a,b):REAL
 ENTRADAS:
      a:REAL
      b:ENTERO
 SALIDAS:
      resul:REAL
 VARIABLES:
      i:ENTERO
 INICIO:
      resul<--1.0
      PARA i<--1 HASTA b HACER
                 resul<--resul*a
      FIN_PARA
      DEVOLVER resul
 FIN


 (* PROGRAMA PRINCIPAL *)
 
 ALGORITMO potencia
 ENTRADAS:
    (* No tiene entradas *)
 SALIDAS:
    (* El valor de PI elevado a potencias desde 2 hasta 10 *)
 VARIABLES:
    i:ENTERO
 CONSTANTES:
    PI=3.14159265359
 INICIO:
    PARA i<--2 HASTA 10 HACER
          ESCRIBIR "PI elevado a ", i, " es ", poten(PI,i), " y su raiz es ", raiz(poten(PI,i))
    FIN_PARA
 FIN

Programa en Matlab

function res=poten(base,expo)
% FUNCIÓN res=poten(base,expo)
% DESCRIPCIÓN: Devuelve el resultado de elevar un número a una potencia dada
% PARÁMETROS DE ENTRADA:
%    base: ENTERO, número que se quiere elevar
%    expo: ENTERO, exponente al que se eleva la base
% PARÁMETROS DE SALIDA:
%    res: ENTERO, resultado de elevar "base" a "expo"
% VARIABLES:
%    cont: ENTERO
res=base;
for cont=1:(expo-1)
    res=res*base;
end
% PROGRAMA Potencia
% DESCRIPCIón: Eleva el número "pi" desde la potencia 2 hasta la 10 y después le realiza la raíz cuadrada.
% ENTRADAS: Ninguna.
% SALIDAS: El resultado de elevar pi a las sucesivas potencias y realizarse la raíz cuadrada.
% VARIABLES:
%    expo:ENTERO;
 
for expo=2:10,
    disp(['pi elevado a' num2str(expo) 'es:' num2str(poten(pi,expo))]);
    disp(['y la raiz es:' num2str(sqrt(poten(pi,expo)))]);
end
Tipos de soluciones