Está en la página 1de 10

FUNDAMENTOS DE

PROGRAMACIÓN

LABORATORIO N° 07

BUCLE WHILE Y BUCLES ANIDADOS

DISEÑO Y DESARROLLO DE SOFTWARE


PROGRAMA DE FORMACIÓN REGULAR
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 2 de 10

CODIGO DEL CURSO:

Alumno(s) Nota

Condori Pinto Juan José Matías

Grupo A
Ciclo 1
Fecha de entrega 11/05/2022
Laboratorio de Fundamentos de Programación Página 1 de 8

I.- OBJETIVOS:
 Elaborar y diseñar programas en Python bajo bucles while loop y nested loops
 Elaborar programas en Python empleando while loop y nested loops con condiciones.

II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la
ingestión de alimentos o bebidas.

III.- FUNDAMENTO TEÓRICO:


 Revisar el texto guía que está en el campus Virtual.

IV.- NORMAS EMPLEADAS:


 No aplica

V.- RECURSOS:
 En este laboratorio cada alumno trabajará con un equipo con Windows 10.

VI.- METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:


 El desarrollo del laboratorio es individual.

VII.- MARCO TEÓRICO:


BUCLE WHILE

La sintaxis del bucle ‘WHILE’ es como sigue:

Siempre y cuando la condición (o condiciones) sea verdadera, se repiten las instrucciones puestas en el
bloque de instrucciones del ‘cuerpo del bucle’. Tener en cuenta que el bloque de instrucciones
correspondiente al bucle ‘WHILE’ se identifica de acuerdo a la sangría con la que está configurado. La
variable o variables puestas en la condición, se suelen llamar variables de control.

Ejemplo 1:

Mostrar en un programa Python, los números del 1 al 3.

i=i+1

Luego de ejecutar este código, tendremos el siguiente resultado:


Laboratorio de Fundamentos de Programación Página 2 de 8

Ejemplo 2:

Luego de ejecutar este código, tendremos el siguiente resultado:

Ejemplo 3:

Luego de ejecutar el código, podemos obtener los siguientes resultados:

BUCLES ANIDADOS (NESTED)

La sintaxis de bucles anidados es como se muestra a continuación:

Utilizando bucles FOR

Utilizando bucles WHILE


Laboratorio de Fundamentos de Programación Página 3 de 8

Ejemplo FOR ANIDADO

Al ejecutar este código, obtenemos el siguiente resultado:

Ejemplo WHILE ANIDADO

Al ejecutar este código, obtenemos el siguiente resultado:


Laboratorio de Fundamentos de Programación Página 4 de 8

VIII.- PROCEDIMIENTO:

EJERCICIOS DE APLICACIÓN:

Crear un nuevo proyecto llamado “Lab07”. Crear, dentro de este proyecto, un programa Python para cada
ejercicio.

1. Elabore un algoritmo que visualice los 3 primeros números naturales.

Programa en Python
i = 1
while i<4:
print(i)
i+=1

Hacemos uso de una variable con valor inicial 1, luego entramos al bucle while con la condición, si
es que i es menor a 4, entonces que imprima este numero y aumente su valor en 1, para continuar
con la secuencia, dando como resultado los 3 primeros números naturales

2. Elabore un algoritmo que calcule y visualice la suma de los 3 primeros números naturales

Programa en Python
i = 1
suma = 0
while i<4:
suma += i
print(i)
i+=1
print("Su suma es: ",suma)

Hacemos uso de 2 variables, i (contador) y suma (acumulador), i va aumentando su valor en el


bucle while de tal forma que sea menor a 4, los primeros 3 números naturales, y el acumulador va
sumando estos 3 valores, dando como resultado su suma.
Laboratorio de Fundamentos de Programación Página 5 de 8

3. Imprimir los 10 primeros números naturales, pero en forma descendente

Programa en Python
i = 10
suma = 0
while i>0:
print(i)
i-=1

Realizamos la misma operación que en el 1er problema, pero aquí la variable toma el valor final 10,
para ser restado en una unidad cada vez que cumpla la condición, si es que es mayor a 0, y el
programa los va imprimiendo.

4. Elabore un algoritmo que imprima el factorial de un número.

Programa en Python
a = int(input("Ingrese un número: "))
factorial = 1
while a>0:
factorial*=a
a-=1
print("Su factorial es: ",factorial)

En este programa su único dato de entrada es un número entero, creamos una variable factorial y lo
igualamos a 1, para luego entrar al bucle while con la condición, si es que ‘a’ es mayor a 0, para lo cual este
va disminuyendo su valor de 1 en 1 y factorial va multiplicando estos valores, obteniendo a!

5. Elabore un algoritmo que calcule y visualice la suma de todos los números de 2 cifras positivos.

Programa en Python
Laboratorio de Fundamentos de Programación Página 6 de 8

suma = 0
a = 10
while a<100:
suma +=a
a+=1
print("La suma es: ",suma)

Hacemos uso del bucle while para sumar los números del 10 al 99, la variable suma acumula
estos valores para dar como respuesta 4905; sin embargo, este problema se podía resolver con
la fórmula de sumatoria de números consecutivos n*(n+1)/2 restando los números de 1 digito.

6. Elabore un algoritmo que imprima la tabla de multiplicar (hasta 10) de un número ingresado por teclado.
Este número deberá ser positivo, en caso que ingrese un número negativo deberá emitir un mensaje de
error: NUMERO INCORRECTO

Programa en Python
a = int(input("Ingrese un número positivo: "))
while a<=0:
print("NUMERO INCORRECTO")
a = int(input("Ingrese un número positivo: "))
i = 1
while i<11:
print(i," x ",a," --> ",a*i)
i+=1

Este programa no permite que se trabaje con números no positivos (menores o iguales a 0) y lo
que hace es imprimir la tabla de multiplicar, del 1 al 10, con el número ingresado.

7. Elabore un algoritmo que calcule y visualice la suma de los todos los números impares de 3 cifras

Programa en Python
Laboratorio de Fundamentos de Programación Página 7 de 8

a = 101
suma = 0
while a<1000:
suma +=a
a+=2
print("La suma de impares es: ",suma)

Lo que se hace es crear una variable a e igualarla a 101, el primer impar de 3 dígitos, dentro del
bucle while se va sumando este valor de 2 en 2, para obtener siempre valores impares,
condicionando para que este valor sea menor a 1000 y acumulando la suma de estos valores; al
final se imprime esta suma (247500); de nuevo, este problema se puede resolver con la fórmula de
sumatorias de números impares, restando los números antecedentes.

8. Genere el siguiente programa Python, ejecútelo y muestre, al costado del código, la salida obtenida:

9. Modifique el programa anterior para que la salida sea la siguiente. Escriba, a un costado del siguiente
cuadro, las modificaciones realizadas al código:
1 for fila in range(1,6):
1 2 for columna in range(1,fila+1):
1 2 3 print(columna, "\t" , end="")
1 2 3 4 print()
1 2 3 4 5
En vez de imprimir el valor de fila, se imprime el valor de columna, ya que
de izquierda a derecha este va aumentando su valor, para que en cada
columna tenga siempre un mismo número y para obtener esa diagonal,
pues el rango de columna se altera repitiendo tantas veces como el
número de fila en la que se opera.

10. Modifique el programa anterior para que la salida sea la siguiente. Escriba, a un costado del siguiente
cuadro, las modificaciones realizadas al código:
1 for fila in range(1,6):
2 3 for columna in range(fila,fila*2):
3 4 5 print(columna, "\t" , end="")
4 5 6 7 print()
5 6 7 8 9
Aquí el rango de columna se empieza desde el número de la fila en la que
está hasta una unidad menos del doble de este número, obteniendo esa
diagonal y esos valores.

11. Desarrolle un nuevo programa que reciba dos datos por teclado (filas y columnas) e imprima un cuadro
de asteriscos. Por ejemplo, si se reciben 6 y 8 como fila y columna respectivamente, el programa debería
imprimir:
Laboratorio de Fundamentos de Programación Página 8 de 8

* * * * * * * * filas = int(input("Ingrese el número de filas: "))


* * columnas = int(input("Ingrese el número de columnas:
* * "))
* * for a in range(0,filas):
* * for b in range(0,columnas):
* * * * * * * * if a==0 or a==filas-1:
print('*',end=' ')
else:
if b==0 or b==columnas-1:
print('*',end=' ')
else:
print(' ',end=' ')
print()

Este programa pide como entrada el número de filas y columnas, al


igual que en los anteriores problemas, este realiza un bucle anidado y
condiciona para que una línea entera de asteriscos se imprima en la
primera y última fila, caso contrario, solo en los extremos.

OBSERVACIONES:

 Cuando usamos un bucle anidado, el número de operaciones que se realizan son el producto de
la cantidad de repeticiones de cada bucle, es decir, en los casos anteriores, tanto filas como
columnas, dieron como resultado un total de fila x columnas.
 Se pueden condicionar los bucles internos en la cantidad de repeticiones y lograr casos
maravillosos, como por ejemplo los últimos 4 problemas,
 Se logró observar el funcionamiento de las variables locales dentro de un bucle anidado, lo cual
comprueba que estas solo pueden ser usadas dentro de la estructura en la que fueron creadas, a
menos que las almacenemos dentro de otra variable asignada fuera de esta estructura.
 Es curioso que con un solo cambio de variable o los parámetros de la misma puede alterar el
resultado final de un programa, como se hizo en los problemas 8, 9 y 10.
 El uso de bucle while como uno anidado da casi el mismo resultado que el bucle for, pero para
ello es necesario aplicar otros parámetros de condición, como un contador o acumulador.
 En cada bucle que se anida es necesario el uso de variables distintas para su contador,
acumulador, o iterable en caso del for; caso contrario, habrá errores al momento de ejecutar el
programa.

CONCLUSIONES:
 El uso de bucles anidados es muy útil si requerimos de estructuras en 2 dimensiones, medidas
de manera interactiva, como por ejemplo en el último ejercicio de este laboratorio.

 No solamente se pueden usar bucles anidados de manera homogénea, sino también intercalando
entre distintos tipos de bucles, por ejemplo, un while dentro de un for.

 El bucle while no solo se puede repetir infinitamente de manera autónoma, sino también depende
de las decisiones que tome el usuario, por ejemplo, en uno de los primeros problemas, si no se
ingresa un número positivo, el programa hará que retorne una y otra vez hasta que se cumpla
esta condición.

 Para iterar en listas, el uso del bucle for es una muy buena opción, sin embargo, eso no impide al
bucle while a usar unas cuantas variables más para poder tomar cada valor de una lista.

 Siempre se permite la interacción entre bucles anidados, algunas de las variables usadas dentro
de la estructura superior, pueden ser recicladas hasta en el bucle más interno y alcanzar
condiciones más complejas, como en los últimos ejercicios de este laboratorio, algunas variables
usadas en el bucle más externo, fueron usadas en el más interno.

"Dime y lo olvido, enséñame y lo recuerdo, involúcrame y lo aprendo”. Benjamín Franklin (1706-1790)

También podría gustarte