SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Estructuras de
                                                                 Repetición




                                 Estructuras de Repetición



Departamento de Programación y
Tecnología Educativa                                              mrodriguez@unimet.edu.ve
Estructuras de
                                                              Repetición




                Hemos visto que en la mayoría de los problemas a
                resolver existen procesos que se hacen una sola vez y
                procesos que se repiten varias veces.

Departamento de Programación y
Tecnología Educativa                                            mrodriguez@unimet.edu.ve
Estructuras de
                                                                Repetición


              Podemos codificar problemas donde las acciones se
              ejecutan sólo una vez.


              ¿Qué pasa si necesito repetir las acciones?


              La estructura de repetición nos permite indicar las acciones
              que queremos repetir, un número determinado o
              indeterminado de veces.



Departamento de Programación y
Tecnología Educativa                                             mrodriguez@unimet.edu.ve
Estructuras de
                                                                Repetición

               ¿Qué harías si se te presenta el siguiente ejercicio:

               Leer los datos de un grupo de personas. Imprimir los
               nombres solo de aquellos que sean del sexo masculino.




                 Observa que debemos repetir la lectura y chequeo de
                 los datos, tantas veces como personas haya en el
                 grupo.



Departamento de Programación y
Tecnología Educativa                                               mrodriguez@unimet.edu.ve
Estructuras de
                                                                                                  Repetición
                  Se utilizaría entonces la siguiente codificación:

                            Dim Nombre As String, Sexo As String, Respuesta As String
                            Sub Principal()
                              ' Inicializar la posicion en la hoja de calculo                   Se van a REPETIR el
                              Lineas = 2                                                        proceso de leer y escribir
                              'Variable de control del ciclo
                              Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos")
                                                                                                datos mientras Si hay más
                              ' ciclo de repeticion                                             datos que leer
                              While Respuesta <> vbYes
                              ' Lectura de Datos
                                  Nombre = InputBox("Cuál es tú nombre?", "Nombre")
                                  Sexo = InputBox("Escriba M (Masculino) o F (femenino)", "Sexo")
                              ' Escritura del reporte en la hoja de calculo
                                  If Sexo = "M" Then
                                   Sheets("Salida").Cells(Lineas, 1) = Nombre
                              ' incrementar una linea en la hoja de calculo
                                  Lineas = Lineas + 1
                                  End If
                                  ' actualizar la variable de control del ciclo
                                  Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos")
                              Wend
                            End Sub


Departamento de Programación y
Tecnología Educativa                                                                                      mrodriguez@unimet.edu.ve
Estructuras de
                                                            Repetición
          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.



Departamento de Programación y
Tecnología Educativa                                         mrodriguez@unimet.edu.ve
Estructuras de
                                                               Repetición

                    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.


                         Estructura

                                 Mientras se cumpla una condición
                                       ...
                                 fin-mientras

Departamento de Programación y
Tecnología Educativa                                                mrodriguez@unimet.edu.ve
Estructuras de
                                                               Repetición
                                       While (condición)
             En Visual Basic Sería:          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.
Departamento de Programación y
Tecnología Educativa                                            mrodriguez@unimet.edu.ve
Estructuras de
                                   Inicialización
                                                              Repetición
           Veamos el siguiente                        Y sí está
           ejemplo:                                   instrucción no se
                        Numero = 10                   coloca, ¿qué
                        While (Numero > 0)            pasa?
                         MsgBox (Numero)
                         Numero = Numero - 1
                        Wend

                                         Modificación


             La variable Numero que controla la condición de
             parada debe ser inicializada antes de la repetición y
             modifica dentro de la repetición.
             La repetición puede no ejecutarse nunca.
Departamento de Programación y
Tecnología Educativa                                             mrodriguez@unimet.edu.ve
Estructuras de
                                                                 Repetición

              La respuesta es : Si no se coloca esa

              instrucción ocurren Infinitas repeticiones!!!!




                                 Al no modificarse la variable la condición
                                 es siempre verdadera y por lo tanto la
                                 repetición no termina.



Departamento de Programación y
Tecnología Educativa                                                mrodriguez@unimet.edu.ve
Estructuras de
                                                                        Repetición


                                 ¿Y qué pasaría en este caso?
                                                            Contador se inicializa en 5
                                 Contador = 5           Entra en la repetición
         Entra de nuevo a la     While contador <> 0    porque Contador <> 0
         repetición porque Contador    contador = contador - 3
         <> 0                    Wend
                                                Contador ahora Contador ahora vale 2
                                                               vale -1
                                                Entra de nuevo a la repetición
                                                porque Contador <> 0




                  Respuesta: Nunca se sale de la repetición...
Departamento de Programación y
Tecnología Educativa                                                         mrodriguez@unimet.edu.ve
Estructuras de
                                                                                                       Repetición
                  ¿Qué vemos entonces nuestro programa?
                                 Dim Nombre As String, Sexo As String, Respuesta As String
                                 Sub Principal()                                                       Inicialización de la
                                   ' Inicializar la posicion en la hoja de calculo                     variable Respuesta
                                   Lineas = 2
                                   'Variable de control del ciclo
                                   Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos")
                                   ' ciclo de repeticion
                                   While Respuesta <> vbYes                                       Condición de parada:
                                   ' Lectura de Datos                                             Respuesta = VbNo
                                       Nombre = InputBox("Cuál es tú nombre?", "Nombre")
                                       Sexo = InputBox("Escriba M (Masculino) o F (femenino)", "Sexo")
                                   ' Escritura del reporte en la hoja de calculo
                                       If Sexo = "M" Then
                                        Sheets("Salida").Cells(Lineas, 1) = Nombre
                                   ' incrementar una linea en la hoja de calculo
                                       Lineas = Lineas + 1
                                       End If
                                                                                                        Modificación de la
                                       ' actualizar la variable de control del ciclo
                                       Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos")           variable Respuesta
                                   Wend
                                 End Sub


Departamento de Programación y
Tecnología Educativa                                                                                          mrodriguez@unimet.edu.ve
Estructuras de
                                                               Repetición


              ¿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.000            6
                                  <= 10.000           5


Departamento de Programación y
Tecnología Educativa                                              mrodriguez@unimet.edu.ve
Estructuras de
                                                                                  Repetición

       Codificación en VBA:

             Precio = InputBox (“Diga el Precio” , “Precio”)
             While ( Precio <> 0 )                           Las variaciones de la
                If (Precio > 10.000) then                    variable Precio controlan la
                                                                       cantidad de veces que se
                                 Monto = (Precio – (Precio * 0.06)) hace la repetición: si no
                     else                                              hay más productos que
                                                                       revisar, se coloca Precio=0
                                 Monto = Precio – (Precio * 0.05))     y termina la repetición
                endif
                msgbox (“El monto a pagar es:” & Monto)
                Precio = InputBox (“Diga el siguiente precio” , “Precio”)
             Wend


Departamento de Programación y
Tecnología Educativa                                                                   mrodriguez@unimet.edu.ve
Estructuras de
                                                                  Repetición



              ¿Qué pasa si a este enunciado le agregamos :


              Se desea un total de los montos a pagar por todos los productos.



              ¿Cómo calculamos ese monto total?

              Deberíamos sumar cada uno de los montos a pagar por
              producto a medida que los vayamos calculando.


Departamento de Programación y
Tecnología Educativa                                                 mrodriguez@unimet.edu.ve
Estructuras de
                                                                         Repetición
          Utilizamos un acumulador de nombre AcuMonto
             AcuMonto = 0
             Precio = InputBox (“Diga el precio” , “Precio”)
             While ( Precio <> 0 )
                If (Precio > 10.000) then
                       Monto = (Precio – (Precio * 0.06))
                     else
                                 Monto = Precio – (Precio * 0.05))   Cuando termina la
                endif                                                repetición, se
                                                                     ejecuta la siguiente
                msgbox (“El monto a pagar es:” & Monto)
                                                                     instrucción debajo
                AcuMonto = AcuMonto + Monto                          de Wend
                Precio = InputBox (“Diga el siguiente precio” , “Precio”)
             Wend
             msgbox (“El monto total es:” & AcuMonto)
Departamento de Programación y
Tecnología Educativa                                                        mrodriguez@unimet.edu.ve
Estructuras de
                                                            Repetición




                Pasemos ahora a estudiar las repeticiones indexadas….



Departamento de Programación y
Tecnología Educativa                                           mrodriguez@unimet.edu.ve

Más contenido relacionado

Similar a Repeticion condicionada

Diaposivas final
Diaposivas finalDiaposivas final
Diaposivas finalPonchale
 
Taller algoritmo
Taller   algoritmoTaller   algoritmo
Taller algoritmoleleAngie
 
Diseño y realizacion
Diseño y realizacionDiseño y realizacion
Diseño y realizacionWilliam Conya
 
Introduccion a Programación
Introduccion a ProgramaciónIntroduccion a Programación
Introduccion a Programaciónandresgrdesaing
 
Estructura selectiva
Estructura selectivaEstructura selectiva
Estructura selectivaRicardo510
 
Unidad 1: Estructuras de control y condicionales
Unidad 1: Estructuras de control y condicionalesUnidad 1: Estructuras de control y condicionales
Unidad 1: Estructuras de control y condicionalesmariabelentoledoille
 
Sistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresSistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresmetalvash
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertosAngel Reyes
 
Experimentación en la ingeniería de software
Experimentación en la ingeniería de softwareExperimentación en la ingeniería de software
Experimentación en la ingeniería de softwareEsteban Sanin Angel
 
Principios Basico de Diseño
Principios Basico de DiseñoPrincipios Basico de Diseño
Principios Basico de DiseñoIris Guerrero
 
Taller algoritmo
Taller  algoritmoTaller  algoritmo
Taller algoritmoleleAngie
 

Similar a Repeticion condicionada (16)

Diaposivas final
Diaposivas finalDiaposivas final
Diaposivas final
 
Taller algoritmo
Taller algoritmoTaller algoritmo
Taller algoritmo
 
Taller algoritmo
Taller   algoritmoTaller   algoritmo
Taller algoritmo
 
Diseño y realizacion
Diseño y realizacionDiseño y realizacion
Diseño y realizacion
 
Ana presentacion
Ana presentacionAna presentacion
Ana presentacion
 
Sistema experto
Sistema expertoSistema experto
Sistema experto
 
Introduccion a Programación
Introduccion a ProgramaciónIntroduccion a Programación
Introduccion a Programación
 
Estructura selectiva
Estructura selectivaEstructura selectiva
Estructura selectiva
 
Unidad 1: Estructuras de control y condicionales
Unidad 1: Estructuras de control y condicionalesUnidad 1: Estructuras de control y condicionales
Unidad 1: Estructuras de control y condicionales
 
Sistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresSistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadores
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Experimentación en la ingeniería de software
Experimentación en la ingeniería de softwareExperimentación en la ingeniería de software
Experimentación en la ingeniería de software
 
Principios Basico de Diseño
Principios Basico de DiseñoPrincipios Basico de Diseño
Principios Basico de Diseño
 
Reportes Java
Reportes JavaReportes Java
Reportes Java
 
Taller algoritmo
Taller  algoritmoTaller  algoritmo
Taller algoritmo
 
123qw
123qw123qw
123qw
 

Último

DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdfDocencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdfDemetrio Ccesa Rayme
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaPresentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaFarid Abud
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptxfotofamilia008
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Edith Liccioni
 
Campaña Verano 2024 en Bergara - Colonias 2024
Campaña Verano 2024 en Bergara - Colonias 2024Campaña Verano 2024 en Bergara - Colonias 2024
Campaña Verano 2024 en Bergara - Colonias 2024Bergarako Udala
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 

Último (20)

DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
Acuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptxAcuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptx
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdfDocencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
 
Acuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptxAcuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptx
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaPresentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.
 
Act#25 TDLab. Eclipse Solar 08/abril/2024
Act#25 TDLab. Eclipse Solar 08/abril/2024Act#25 TDLab. Eclipse Solar 08/abril/2024
Act#25 TDLab. Eclipse Solar 08/abril/2024
 
Campaña Verano 2024 en Bergara - Colonias 2024
Campaña Verano 2024 en Bergara - Colonias 2024Campaña Verano 2024 en Bergara - Colonias 2024
Campaña Verano 2024 en Bergara - Colonias 2024
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 

Repeticion condicionada

  • 1. Estructuras de Repetición Estructuras de Repetición Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 2. Estructuras de Repetición Hemos visto que en la mayoría de los problemas a resolver existen procesos que se hacen una sola vez y procesos que se repiten varias veces. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 3. Estructuras de Repetición Podemos codificar problemas donde las acciones se ejecutan sólo una vez. ¿Qué pasa si necesito repetir las acciones? La estructura de repetición nos permite indicar las acciones que queremos repetir, un número determinado o indeterminado de veces. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 4. Estructuras de Repetición ¿Qué harías si se te presenta el siguiente ejercicio: Leer los datos de un grupo de personas. Imprimir los nombres solo de aquellos que sean del sexo masculino. Observa que debemos repetir la lectura y chequeo de los datos, tantas veces como personas haya en el grupo. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 5. Estructuras de Repetición Se utilizaría entonces la siguiente codificación: Dim Nombre As String, Sexo As String, Respuesta As String Sub Principal() ' Inicializar la posicion en la hoja de calculo Se van a REPETIR el Lineas = 2 proceso de leer y escribir 'Variable de control del ciclo Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos") datos mientras Si hay más ' ciclo de repeticion datos que leer While Respuesta <> vbYes ' Lectura de Datos Nombre = InputBox("Cuál es tú nombre?", "Nombre") Sexo = InputBox("Escriba M (Masculino) o F (femenino)", "Sexo") ' Escritura del reporte en la hoja de calculo If Sexo = "M" Then Sheets("Salida").Cells(Lineas, 1) = Nombre ' incrementar una linea en la hoja de calculo Lineas = Lineas + 1 End If ' actualizar la variable de control del ciclo Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos") Wend End Sub Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 6. Estructuras de Repetición 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. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 7. Estructuras de Repetición 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. Estructura Mientras se cumpla una condición ... fin-mientras Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 8. Estructuras de Repetición While (condición) En Visual Basic Sería: 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. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 9. Estructuras de Inicialización Repetición Veamos el siguiente Y sí está ejemplo: instrucción no se Numero = 10 coloca, ¿qué While (Numero > 0) pasa? MsgBox (Numero) Numero = Numero - 1 Wend Modificación La variable Numero que controla la condición de parada debe ser inicializada antes de la repetición y modifica dentro de la repetición. La repetición puede no ejecutarse nunca. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 10. Estructuras de Repetición La respuesta es : Si no se coloca esa instrucción ocurren Infinitas repeticiones!!!! Al no modificarse la variable la condición es siempre verdadera y por lo tanto la repetición no termina. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 11. Estructuras de Repetición ¿Y qué pasaría en este caso? Contador se inicializa en 5 Contador = 5 Entra en la repetición Entra de nuevo a la While contador <> 0 porque Contador <> 0 repetición porque Contador contador = contador - 3 <> 0 Wend Contador ahora Contador ahora vale 2 vale -1 Entra de nuevo a la repetición porque Contador <> 0 Respuesta: Nunca se sale de la repetición... Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 12. Estructuras de Repetición ¿Qué vemos entonces nuestro programa? Dim Nombre As String, Sexo As String, Respuesta As String Sub Principal() Inicialización de la ' Inicializar la posicion en la hoja de calculo variable Respuesta Lineas = 2 'Variable de control del ciclo Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos") ' ciclo de repeticion While Respuesta <> vbYes Condición de parada: ' Lectura de Datos Respuesta = VbNo Nombre = InputBox("Cuál es tú nombre?", "Nombre") Sexo = InputBox("Escriba M (Masculino) o F (femenino)", "Sexo") ' Escritura del reporte en la hoja de calculo If Sexo = "M" Then Sheets("Salida").Cells(Lineas, 1) = Nombre ' incrementar una linea en la hoja de calculo Lineas = Lineas + 1 End If Modificación de la ' actualizar la variable de control del ciclo Respuesta = MsgBox("Hay Más Datos?", vbYesNo, "Datos") variable Respuesta Wend End Sub Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 13. Estructuras de Repetición ¿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.000 6 <= 10.000 5 Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 14. Estructuras de Repetición Codificación en VBA: Precio = InputBox (“Diga el Precio” , “Precio”) While ( Precio <> 0 ) Las variaciones de la If (Precio > 10.000) then variable Precio controlan la cantidad de veces que se Monto = (Precio – (Precio * 0.06)) hace la repetición: si no else hay más productos que revisar, se coloca Precio=0 Monto = Precio – (Precio * 0.05)) y termina la repetición endif msgbox (“El monto a pagar es:” & Monto) Precio = InputBox (“Diga el siguiente precio” , “Precio”) Wend Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 15. Estructuras de Repetición ¿Qué pasa si a este enunciado le agregamos : Se desea un total de los montos a pagar por todos los productos. ¿Cómo calculamos ese monto total? Deberíamos sumar cada uno de los montos a pagar por producto a medida que los vayamos calculando. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 16. Estructuras de Repetición Utilizamos un acumulador de nombre AcuMonto AcuMonto = 0 Precio = InputBox (“Diga el precio” , “Precio”) While ( Precio <> 0 ) If (Precio > 10.000) then Monto = (Precio – (Precio * 0.06)) else Monto = Precio – (Precio * 0.05)) Cuando termina la endif repetición, se ejecuta la siguiente msgbox (“El monto a pagar es:” & Monto) instrucción debajo AcuMonto = AcuMonto + Monto de Wend Precio = InputBox (“Diga el siguiente precio” , “Precio”) Wend msgbox (“El monto total es:” & AcuMonto) Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve
  • 17. Estructuras de Repetición Pasemos ahora a estudiar las repeticiones indexadas…. Departamento de Programación y Tecnología Educativa mrodriguez@unimet.edu.ve