Autor: Luis Fernando Apáez Álvarez
-Curso PyM-
Práctica 2: Bucles
Fecha: 09 de Agosto del 2022
SOLUCIÓN
Descripción: En esta práctica programaremos cierto tipo de sumas, las cuales están asociadas a la notación sigma (Más sobre notación sigma)
Además, utilizaremos el bucle for para crear tablas de multiplicar.
(Tiempo estimado: 15 minutos)
Teoría: Existe una alternativa para representar sumas consecutivas. Por ejemplo, en vez de escribir $$ 1+2+3+4+5+6+\cdots+100 $$ podemos hacerlo de una manera compacta como sigue: \begin{equation} \Sigma^{100}_{1}i=1+2+3+4+5+6+\cdots+100 \end{equation}
donde la variable $i$ de la suma tomará los valores consecutivos del 1 al 100. En este sentido tenemos que \begin{equation} \Sigma^{\textrm{Límite superior}}_{\textrm{Límite inferior}}i \end{equation}
de tal manera, la $i$ toma los valores 1,2,3, etcétera, hasta llegar a tomar el valor de 100. Otro ejemplo es el siguiente:
\begin{equation} \Sigma^{100}_{1}i^{2}=1+4+9+16+25+36+\cdots+10000 \end{equation}donde, recordemos que la $i$ toma los valores consecutivos del 1 al 100, por lo cual, $\sum^{100}_{1}i^{2}$ representa la suma:
$$ (1)^{2}+(2)^{2}+(3)^{2}+\cdots+(100)^{2} $$Así, podemos implementar sumas utilizando la notación sigma en Python como sigue:
Calcularemos primero la suma de $\Sigma^{100}_{1}i$
Solución:
# Declaramos dos variables:
# La variable i de la suma, la inicializamos en 0
i = 0
# una variable para almacenar el valor de la suma
# la inicializamos en 0
suma = 0
# Implementamos el while, recuerda que la i de la suma
# va del limite inferior (por ejemplo 0) al superior (por ejemplo 100)
# Completa
while i >= 0 and i <= 100:
# a la variable suma le iremos sumando los valores que tome la i
suma += i
# aumentamos en 1 el valor de la i para que le bucle no sea infinito
i += 1
# Vemos el valor final de la suma
print(suma)
5050
Lo que sigue ahora es calcular el valor de la suma $ \Sigma^{100}_{0}i^{2}$, para lo cual
# Declaramos dos variables:
# La variable i de la suma, la inicializamos en 0
i = 0
# una variable para almacenar el valor de la suma
# la inicializamos en 0
suma = 0
# Implementamos el while, recuerda que la i de la suma
# va del limite inferior (por ejemplo 0) al superior (por ejemplo 100)
# Completa
while i >= 0 and i <= 100 :
# a la variable suma le iremos sumando los valores que se generen
# de calcular i ** 2
suma += i ** 2
# aumentamos en 1 el valor de la i para que le bucle no sea infinito
i += 1
# Vemos el valor final de la suma
print(suma)
338350
Ahora, lo que haremos será calcular todas las tablas de multiplicar del 1 al 10 de manere simultánea. Recordemos que en la clase vimos el siguiente código
print("Ingrese un número del cual desea conocer \
su tabla de multiplicar")
# entrada del usuario
num = int(input())
print("-" * 20)
# range(1,11): 1,2,3,...,10
for i in range(1,11):
# cambiamos el numero fijo por la i
print(f"{num} x {i} = {num * i}")
Ingrese un número del cual desea conocer su tabla de multiplicar 7 -------------------- 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 7 x 10 = 70
ahora, lo que haremos será implementar un bucle for dentro de otro bucle for, algo así como
# i sera el nombre de la variable del primer for
for i in range(3):
# j es el nombre de la variable del segundo for
for j in range(4):
print(f"{i} --> {j}")
0 --> 0 0 --> 1 0 --> 2 0 --> 3 1 --> 0 1 --> 1 1 --> 2 1 --> 3 2 --> 0 2 --> 1 2 --> 2 2 --> 3
con lo cual podremos calcular todas las tablas de multiplicar del 1 al 10, para ello:
# i sera el nombre de la variable del primer for
# range(1,11) genera: 1,2,3,4,5,6,7,8,9,10
for i in range(1,11):
# j es el nombre de la variable del segundo for
for j in range(1,11):
# Calculamos las tablas de multiplicar
# Completa
print(f"{i} x {j} = {i * j}")
print("-" * 25)
1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 1 x 10 = 10 ------------------------- 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 ------------------------- 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 3 x 10 = 30 ------------------------- 4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36 4 x 10 = 40 ------------------------- 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 ------------------------- 6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54 6 x 10 = 60 ------------------------- 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 7 x 10 = 70 ------------------------- 8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72 8 x 10 = 80 ------------------------- 9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81 9 x 10 = 90 ------------------------- 10 x 1 = 10 10 x 2 = 20 10 x 3 = 30 10 x 4 = 40 10 x 5 = 50 10 x 6 = 60 10 x 7 = 70 10 x 8 = 80 10 x 9 = 90 10 x 10 = 100 -------------------------