Ciclos 2
Ciclos 2
Ciclos 2
PROGRAMACIÓN
ESTRUCTURAS ITERATIVAS
De la clase anterior
Funciones
Laboratorio 2
Idea de proyecto
EISC
Universidad del Valle
Slide 2
Contenido
Estructuras de Repetición
While
Ejercicios
Contadores y acumuladores
For
Ciclos anidados
Contadores y acumuladores
EISC
Universidad del Valle
Slide 3
Estructuras de Repetición
EISC
Universidad del Valle
Slide 4
Estructuras de Repetición
Ejercicio: Suponga que debe mostrar los números del 1 a 100 en Python.
Se podría hacer con la siguiente función:
def mostrarNumeros():
EISC
Universidad del Valle
Slide 5
Estructuras de Repetición
Son un grupo de instrucciones que permite la ejecución repetitiva de
otro grupo de instrucciones. Hay una variable asociada al ciclo o
estructura de repetición que controla el número de veces que se
repetirán las instrucciones.
while
for
EISC
Universidad del Valle
Slide 6
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: ??
Salidas: ??
Proceso:??
EISC
Universidad del Valle
Slide 7
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: n
Salidas: ??
Proceso:??
EISC
Universidad del Valle
Slide 8
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: n
Salidas:
imprimir (número 1)
imprimir (número 2)
.
.
imprimir (número n)
Proceso:??
EISC
Universidad del Valle
Slide 9
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: n
Salidas:
imprimir (número 1)
imprimir (número 2)
.
.
imprimir (número n)
Proceso:
desde 1 hasta n
EISC
Universidad del Valle
Slide 10
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: n
Salidas:
imprimir (número 1)
imprimir (número 2)
.
.
imprimir (número n)
Proceso:
desde 1 hasta n
Imprimir 1,2,3,.....n
EISC
Universidad del Valle
Slide 11
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Entradas: n
Salidas:
imprimir (número 1)
imprimir (número 2)
… .
imprimir (número n)
Proceso:
Mientras sea menor que n Haga
imprimir 1,2,3…n
EISC
Universidad del Valle
Slide 12
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Inicio
n: entero
leer (n)
???
Fin
EISC
Universidad del Valle
Slide 13
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
Inicio
n: entero
i: entero (Variable de control)
leer (n)
Fin
EISC
Universidad del Valle
Slide 14
Estructuras de Repetición
Problema: Desarrollar un programa que solicite un número y muestre
los números desde el 1 hasta el número solicitado.
pseudocódigo Python
EISC
Universidad del Valle
Slide 15
Estructura while
Evalúa una condición dada para determinar si repite un conjunto
de instrucciones. Si la condición es verdadera se repiten las
instrucciones.
Observe que el primer paso es validar la condición y luego se
ejecutan las instrucciones (en caso de que la condición cumpla).
Pseudocódigo Python
Mientras condición Haga while( condicion):
instrucción 1
instrucción 2 instrucción 1
……. instrucción 2
Fin mientras ……
EISC
Universidad del Valle
Slide 16
Estructura while
Debe existir una variable
de control del ciclo La variable de control se
inicializa antes del ciclo
Iniciar condiciones
La variable de control se
while (condiciones): compara contra el valor final
# Instrucciones a repetir
La variable debe
actualizarse dentro de
cada ciclo
EISC
Universidad del Valle
Slide 17
Estructura while
Ejemplo:
a=5
b=7
c=3
while (a < b):
c = c *2
a=a+1
print (c)
print(a)
EISC
Universidad del Valle
Slide 18
Estructura while
Ejemplo:
a=5
Número Valor variable Valor variable
b=7 Iteración a c
c=3 0 5 3
while (a < b): 1 6 6
c = c *2 2 7 12
a=a+1 Se
interrumpe
EISC
Universidad del Valle
Slide 19
Estructura while
Ejemplo:
EISC
Universidad del Valle
Slide 20
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero tiene un peso de 30% y el segundo 35%), una nota de
laboratorios (25%) y una nota del trabajo final del curso (10%)
EISC
Universidad del Valle
Slide 21
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero tiene un peso de 30% y el segundo 35%), una nota de
laboratorios (25%) y una nota del trabajo final del curso (10%)
Análisis:
Entradas
Salida
Proceso
EISC
Universidad del Valle
Slide 22
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero tiene un peso de 30% y el segundo 35%), una nota de
laboratorios (25%) y una nota del trabajo final del curso (10%)
EISC
Universidad del Valle
Slide 23
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero tiene un peso de 30% y el segundo 35%), una nota de
laboratorios (25%) y una nota del trabajo final del curso (10%)
EISC
Universidad del Valle
Slide 24
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero tiene un
peso de 30% y el segundo 35%), una nota de laboratorios (25%) y una nota del
trabajo final del curso (10%). Hallar la nota definitiva para n estudiantes.
EISC
Universidad del Valle
Slide 25
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero tiene un
peso de 30% y el segundo 35%), una nota de laboratorios (25%) y una nota del
trabajo final del curso (10%). Hallar la nota definitiva para n estudiantes.
Ahora trabajamos en el algoritmo principal:
Inicio
nombre: texto
par1, par2, lab, tra: real
numeroEst, j = 1: entero
Leer (numeroEst)
EISC
Universidad del Valle
Slide 27
Estructura while - Contadores
Son variables usadas para realizar, como su nombre lo indica,
conteos de la cantidad de veces que se cumple una
situación específica.
EISC
Universidad del Valle
Slide 28
Estructura while - Contadores
Diseñe un algoritmo que permita contar los números pares existentes en
una serie de 1 a n, siendo n un número digitado por un usuario.
1 2 3 4 5 6 7 8 …. n
EISC
Universidad del Valle
Slide 29
Estructura while - Contadores
Diseñe un algoritmo que permita contar los números pares existentes en
una serie de 1 a n, siendo n un número digitado por un usuario.
Entrada: ?
Salida: ?
Proceso: ?
EISC
Universidad del Valle
Slide 30
Estructura while - Contadores
Diseñe un algoritmo que permita contar los números pares existentes en
una serie de 1 a n, siendo n un número digitado por un usuario.
EISC
Universidad del Valle
Slide 31
Estructura While- Acumuladores
Son variables usadas para ir acumulando el resultado de una operación.
EISC
Universidad del Valle
Slide 32
Estructura While - Acumuladores
Diseñe un algoritmo que permita contar y sumar los números pares
existentes en una serie de 1 a n, siendo n un número digitado por un
usuario.
La variable suma va
while (int i < num): acumulando el valor de la
suma de los números pares
if ( i % 2 == 0):
conPares=conPares+1 en cada iteración del ciclo
suma=suma + i principal.
i=i+1
EISC
Universidad del Valle
Slide 33
Ejercicio Estructura while
Ejercicio: Para ingresar al curso de Producción
Cinematográfica se realizó un prueba clasificatoria. Se tiene
los resultados de dicho examen por aspirante (una nota
comprendida entre 0.0 y 5.0) y se desea saber cuántos
aspirantes aprobaron el examen, cuántos lo perdieron (nota
menor que 3.0) y cuál fue el promedio de todo el grupo de
aspirantes. No sabemos cuántos aspirantes son, pero
sabemos que cuando se quiera indicar que se finalizó el
ingreso de notas se digitará un valor negativo.
EISC
Universidad del Valle
Slide 34
Ejercicio Estructura while
determinarEstadisticasSegunNotas()
Inicio
nota, promedioCalificaiones: real numAprobados, numReprobados : entero
leer(nota)
Mientras nota>=0 Haga
Si (nota<=5 ){
Si (nota>=3 ){
numAprobados = numAprobados +1
}
sino{
numReprobados = numReprobados + 1
}
promedioCalificaciones = promedioCalificaciones + nota
}
leer(nota)
Fin mientras
promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados)
imprimir(numAprobados, numReprobados, promedioCalificaciones)
Fin
EISC
Universidad del Valle
Slide 35
Ejercicio Estructura while
EISC
Universidad del Valle
Slide 36
Ejercicios Estructura while
1. Diseñe un algoritmo que reciba números digitados por el
usuario y los imprima en pantalla, el programa debe terminar
cuando el usuario digite un número negativo.
2. Diseñe un algoritmo que reciba números digitados por el
usuario y al final imprima la suma de los números digitados,
el programa debe terminar cuando el usuario digite 0 (cero).
3. Cree un algoritmo que permita digitar palabras y al final
imprima la concatenación de las palabras digitadas, el
programa debe terminar cuando el usuario digite la palabra
“terminar”.
NOTA:
Para cada ejercicio realice su respectiva implementación en
Python
EISC
Universidad del Valle
Slide 37
Ejercicios Estructura while
4. Suponga que el administrador de una tienda desea
calcular el total de ventas del día, para ello debe registrar el
nombre del producto, el valor del producto y la cantidad de
unidades vendidas. Al final el sistema debe mostrar la lista
de productos digitados, el total de ventas por cada
producto, el total de ventas del día y el valor global cobrado
por concepto del IVA.
EISC
Universidad del Valle
Slide 38
Ejercicios Estructura while
5. Suponga que el cálculo de la pensión de una persona se realiza
de la siguiente manera: por cada año de servicio se paga $80 si el
empleado ingresó en o después de 1995 y $100 si ingresó antes,
dicho valor (80 o 100) se multiplica por el número de cada año más
la edad que tenía en el año (ej (100*1994+32)+(100*1995+33)+…),
el descuento de seguridad social en salud es del 12%. El programa
debe recibir el año de ingreso y la edad del empleado en el año de
ingreso, devolver el sueldo o mesada bruta, la mesada neta y el
valor del descuento por salud.
EISC
Universidad del Valle
Slide 39
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con
dos parciales (el primero tiene un peso de 30% y
el segundo 35%), una nota de laboratorios (25%)
y una nota del trabajo final del curso (10%).
Se pide calcular la nota definitiva, pero ahora NO se
conoce el número de estudiantes. Cómo sabría
cuando parar?
EISC
Universidad del Valle
Slide 40