Post on 20-Aug-2015
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructuras de Repetición
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
En la mayoría de los problemas a resolver pueden existir procesos
que se hacen una sola vez y procesos que se repiten varias
veces.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Podemos codificar problemas donde las acciones se ejecutan sólo una vez, pero la mayoría de las veces
La estructura de repetición nos permite indicar las acciones que queremos repetir, un número determinado o indeterminado de veces.
necesitamos repetir varias veces esas acciones
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Veamos el siguiente ejercicio:
Observa que debemos repetir la lectura y chequeo de los datos, tantas veces como personas haya en el
grupo.
Leer los datos de un grupo de personas. Imprimir los nombres solo de aquellos que sean del sexo masculino.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Se utilizaría entonces la siguiente codificación:
Se va a REPETIR el proceso de leer los datos mientras haya más datos que leer y se va escribiendo el reporte en la hoja de cálculo.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Observa el uso que se le da aquí a la caja de diálogo msgbox.
La caja de diálogo que aparece es:
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Hay dos tipos de estructuras de repetición:
La primera es aquella en la cual el número de repeticiones es desconocido y se hará mientras se cumpla cierta condición. Se conoce como Repetición Condicionada.
La segunda es aquella en donde se tiene perfectamente establecido el número de veces que un grupo de acciones se va a ejecutar (20, 5, 2 veces). Esta se conoce como Repetición Indexada.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructura
Mientras se cumpla una condición...
fin-mientras
Repetición un número indeterminado de veces
La primera forma de estructura repetitiva es para aquellos casos donde no se conoce el número de
repeticiones o iteraciones en que se va a ejecutar una acción o un bloque de acciones.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
While (condición)acción1
accion2
...Wend
Las instrucciones acción1, acción2 hasta la instrucción Wend se repetirán mientras la condición sea verdadera.
Debemos identificar la condición de parada, la cual indica cuándo termina la repetición.
Se trata entonces, de una toma de decisión para repetir un proceso mientras se cumpla una condición, y salir de él al momento de no cumplirse.
En Visual Basic Sería:
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
La variable numero que controla la condición de parada debe ser inicializada antes de la repetición y modificada dentro de la repetición.
La repetición puede no ejecutarse nunca.
Veamos el
siguiente ejemplo:
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
La respuesta es :
Al no modificarse la variable la condición es siempre verdadera y por lo tanto la
repetición no termina.
Si no se coloca esa instrucción ocurren Infinitas
repeticiones!!!!
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
¿Y qué pasaría en este caso?
Respuesta: Nunca se sale de la repetición...
contador Contador<> 0
5 SI
5-3 = 2 SI
2-3 = -1 SI
-1 -3 = -4 SI
-4 -3 = -7 SI
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
¿Qué vemos entonces nuestro programa?
Inicialización de la variable Respuesta
Condición de parada: Respuesta = VbNo
Modificación de la variable Respuesta
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
¿Cómo resolvemos el siguiente enunciado?
Dado el precio de varios productos, codifique las instrucciones para calcular el monto final a pagar por cada uno, sabiendo que se hace un descuento de acuerdo a la siguiente tabla:
precio (Bs.) descuento (%) > 10 6
<= 10 5
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Codificación en VBA:
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Si a este enunciado le agregamos :
¿Cómo calculamos ese monto total?
Deberíamos sumar cada uno de los montos a pagar por producto a medida que los vayamos calculando.
Se desea un total de los montos a pagar por todos los productos.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Y si además le agregamos :
¿Cómo contamos?
Utilizando una variable especial que llamamos contador a la cual le sumamos 1 en cada vuelta del ciclo de cálculo.
Se desea saber cuanto clientes fueron atendidos.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
El reporte de los acumuladores y contadores se debe hacer siempre al finalizar el ciclo while
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Y si además le agregamos :
¿Cómo lo calculamos?
Para calcular el promedio debemos dividir el monto total pagado por los clientes entre el numero de clientes atendidos, este cálculo se hace al salir del ciclo: Prom = acuMonto/cont
Se desea saber conocer el monto promedio en Bs pagado por cliente.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Estructuras de Repetición
mrodriguez@unimet.edu.veby Dpto de Programacion y Tecnologia Educativa UNIMET is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
Pasemos ahora a estudiar las repeticiones indexadas….