Suma de potencias de x en Python

Más ejercicios resueltos

Si deseas revisar más ejercicios resueltos, haz click en el siguiente botón. 

A continuación presentamos la solución al problema del cálculo de la suma de potencias en Python. Si deseas ver el enunciado del problema, haz click en el siguiente enlace.

Lectura de datos

Para la lectura de datos en Python usaremos la función \texttt{input}. Usaremos la variable \texttt{x} para leer el valor de x. Para leer el valor de n usaremos la variable \texttt{n}

En el caso de la lectura de la variable \texttt{x}, usamos la función \texttt{float} para transformar la cadena de caracteres en un real.  En el caso de la lectura de la variable \texttt{n}, usamos la función \texttt{int} para transformar la cadena de caracteres en un entero. 

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: ")) 

Validación de datos de entrada

Para implementar la validación del valor de \texttt{x} usaremos una selectiva doble. Colocaremos como condición del \texttt{if}, \texttt{abs(x)>=1}. Recuerda que el valor absoluto se obtiene usando la función \texttt{abs}.

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: "))

if abs(x) >= 1:
    print("Valor de x incorrecto")
else:

 

Control de flujo de la iteración

Para el control de la iteración usaremos un ciclo iterativo con entrada controlada. La variable de control será \texttt{i}, la cual ha sido inicializada con \texttt{0}. Para el caso del incremento, se ha usado el operador de asignación \texttt{+=}. \texttt{i+=1} equivale a la instrucción \texttt{i=i+1}.

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: "))

if abs(x) >= 1:
    print("Valor de x incorrecto")
else:
    i=0
    while i<n:

        i+=1 

Inicialización de la sumatoria

Para acumular los valores de la sumatoria usaremos la variable \texttt{suma}, la cual la hemos inicializado con el valor de \texttt{0}.

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: "))

if abs(x) >= 1:
    print("Valor de x incorrecto")
else:
    i=0
    suma=0
    while i<n:

        i+=1 

Acumulando la sumatoria

Para calcular el término de la sumatoria usamos la expresión \texttt{x**i}. Recuerde que el operador \texttt{**}  permite elevar un número a cualquier potencia.

Para la acumulación en la variable \texttt{sumatoria}, se ha usado el operador de asignación \texttt{+=}. \texttt{sumatoria += x**i} equivale a la instrucción \texttt{sumatoria = sumatoria + x**i}.

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: "))

if abs(x) >= 1:
    print("Valor de x incorrecto")
else:
    i=0
    suma=0
    while i<n:
        suma += x**i
        i+=1 

Mostrando el resultado final

Finalmente presentamos el valor de la sumatoria calculada, al finalizar el ciclo iterativo.

x=float(input("Ingrese el valor de x(|x|<1): "))
n=int(input("Ingrese la cantidad de términos: "))

if abs(x) >= 1:
    print("Valor de x incorrecto")
else:
    i=0
    suma=0
    while i<n:
        suma += x**i
        i+=1
    print("El valor de 1/(1-x) es: {:.3f}".format(suma)) 

Alternativa de solución usando for

La instrucción \texttt{for} permite usar la función \texttt{range} que retorna una secuencia de números y hace más simple la iteración. En el ejemplo siguiente puede notar que no hay un incremento de la variable \texttt{i}, esto no es necesario hacerlo pues \texttt{range} dentro del \texttt{for} ya asigna el siguiente valor de la secuencia a \texttt{i}. En este caso, \texttt{range(n)} retornará la secuencia de los números entre [0..n-1]

[python title="Alternativa de solución usando for"] x=float(input("Ingrese el valor de x(|x|= 1: print("Valor de x incorrecto") else: suma=0 for i in range(n): suma += x**i print("El valor de 1/(1-x) es: {:.3f}".format(suma)) [/python]
 

Conclusión

Hemos presentado en este artículo, una propuesta de solución al cálculo de la suma de las potencias de x en Python. Se ha utilizado para el control de flujo la estructura iterativa y realizándose el control mediante un ciclo con entrada controlada. Podrá descargar las soluciones propuestas en el repositorio GitHub de iterando++ a través de los siguiente enlaces: para la primera versión usar este enlace  y para la segunda versión usar este enlace

Hemos preparado otros artículos adicionales en donde describimos al detalle la implementación de este problema en PSeInt y otros lenguajes de programación. Te invitamos a leer los siguientes artículos de iterando++

Si te interesa profundizar más en el desarrollo en Python, los dos mejores libros que se han escrito son Learning Python de Mark Lutz y Python Crash Course de Eric Matthes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *