Unidad 6: Estructuras Repetitivas

 


1.- Estructura repetitiva para.

Es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces. Este tipo de estructura está presente en todos los lenguajes de programación, ya sean estructurados u orientados a objetos.
Esta sentencia incluye una expresión que especifica el valor inicial de un índice otra expresión que determina cuando se continúa o no el bucle y una tercera expresión que permite que el índice se modifique al final de cada pasada.

Tipos de variables:

Cuando se diseñan algoritmos que incluyen estructuras de control repetitivas, existen ciertas variables que cumplen una función especifica en cada iteración
del ciclo, las más comunes son:

Variables contadoras: Se usan para contar, por lo tanto debe ser de tipo entero. Una variable contadora se incrementa o decrementa en un valor constante en un valor constante con cada iteración del ciclo.
Variable acumuladora: Su función es almacenar valores numéricos que generalmente se suman o multiplican en cada iteración. Por lo tanto esta variable debe ser de tipo real.
Variable bandera: Es utilizada dentro de la condición de un ciclo, para determinar cuando un circulo se sigue iterando o cuando no. De esta forma una variable bandera debe ser de tipo booleano o entero.

Ejecuta un bloque de instrucciones un número determinado de veces, este número de veces esta controlado por una variable contadora de tipo entero, que toma valores desde un límite inferior hasta un límite inferior.


2.- Estructura repetitiva mientras.

La estructura repetitiva mientras (en ingles while), es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es evaluar la condición (una expresión booleana). Si la condición se evalúa falsa, no se entra al ciclo y se sigue con el flujo normal del problema. Si la condición es verdadera, entonces se entra al ciclo y se ejecuta el cuerpo del bucle (instrucciones dentro del mientras), después se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra vez mientras la condición sea verdadera.




3.- Estructura repetitiva repetir hasta que.

Estructura repetitiva repetir-hasta que (Do while)
La estructura repetir cumple la misma función que la estructura mientras. La diferencia está en que la estructura mientras comprueba la condición al inicio y repetir lo hace al final. Es por ello que la estructura repetir se ejecuta por lo menos una vez.

Repetir
Acción_1
Acción_2
Acción_3
Acción_n

Hasta que condición
En esta estructura primero se efectúa el bloque de instrucciones y después se evalúa la condición. Si es verdadera se vuelve a ejecutar el bloque de instrucciones y así sucesivamente hasta que la condición sea falsa.


Ejercicios:


1.- Programa que imprima los 10 primeros números.

Algoritmo Imprimir_números_10
        Repetir
                num=num+1
                Escribir num
        Hasta Que num=10
FinAlgoritmo







2.- Programa que imprima los 10 primeros números inversamente.

Algoritmo Imprimir_números_10
        num=10
        Repetir
                Escribir num
                num=num-1
        Hasta Que num=0
FinAlgoritmo






3.- 
Programa que admita ingresar una contraseña correcta, sino seguir intentando ingresar.

Algoritmo Contraseña_
                Repetir
                        Escribir "Ingrese su clave de acceso"
                        Leer clave
                        Si clave <> 1234 Entonces
                                Escribir "Clave Incorrecta"
                        FinSi
                Hasta Que clave=1234
                Escribir "Bienvenido¡!"
FinAlgoritmo





4.- Programa que permita el ingreso de números entre 0 y 999 y determine la cantidad de dígitos que contenga el número, para finalizar ingresar el número 0.

Algoritmo Dígitos_999
        Repetir
                Escribir "Ingerese un valor"
                Leer n
                Si n>=1 y n<=9
                        Escribir "El número tiene 1 dígito"
                SiNo
                        Si n>=10 y n<=99
                                Escribir "El número tiene 2 dígitos"
                        SiNo
                                Si n>=100 y n<=999
                                       Escribir "El número tiene 3 dígitos"
                                Sino
                                       Si n>=1000 o n<0
                                               Escribir "Cantidad no permitida"
                                       FinSi
                                FinSi
                        FinSi
                FinSi
        Hasta Que n=0
        Escribir "Gracias por usar el programa!"
FinAlgoritmo





5.- Programa que pida ingresar números para calcular su suma y su promedio, finalizar al ingresar el 0

Algoritmo Suma_prom
        Repetir
                Escribir "Ingrese un número"
                Leer n
                Si n>0
                        suma<-suma+n
                        cant<-cant+1
                SiNo
                        Si n<0
                                Escribir "No se permiten números negativos"
                        FinSi
                FinSi
        Hasta Que n=0
        Si cant<>0
                promedio<-suma/cant
                Escribir "La suma total es: " suma
                Escribir "El promedio es: " promedio
        SiNo
                Escribir "No se ingresaron valores"
        FinSi
FinAlgoritmo








ACTIVIDADES: UNIDAD 6

Taller: Estr. Repetir (23/02/21)


1.- Programa que realice las 4 operaciones básicas utilizando la Estr. Repetir más cualquier estructura extra.

Algoritmo Operaciones_básicas
        Definir op Como Caracter
        Repetir
                EScribir "Seleccione una opción"
                Escribir 'Opción 1: Suma'
                Escribir 'Opción 2: Resta'
                Escribir 'Opción 3: Multiplicación'
                Escribir 'Opción 4: División'
                Escribir 'Salir   : S - s'
                Leer op
                Si op="S" o op="s"
                        Escribir "Programa Finalizado"
                SiNo
                        Escribir "Número 1: " Sin Saltar
                        Leer n1
                        Escribir "Número 2: " Sin Saltar
                        Leer n2
                        Segun op Hacer
                                "1":
                                       Escribir "Suma: ",n1+n2
                                "2":
                                       Escribir "Resta : ",n1-n2
                                "3":
                                       Escribir "Multiplicación: ",n1*n2
                                "4":
                                       Si n2=0 Entonces
                                               Escribir "Error división entre cero"
                                        SiNo
                                               Escribir "División: ",n1/n2
                                       FinSi
                        FinSegun
                FinSi
                Hasta Que (op="s") o (op="S")
FinAlgoritmo







Ejercicios Propuestos


1.- Programa que sume los números ingresados y que finalice el programa al ingresar 9999 (pero que no lo sume)

Algoritmo Incre_9999
        Repetir
                Escribir "Ingrese un número"
                Leer n
                Si n<9999 y n>0
                        suma<-suma+n
                FinSi
                Si n<0 o n>9999
                        Escribir "* Valor no válido *"
                FinSi
        Hasta Que n=9999
        Escribir "Programa terminado"
        Escribir " "
        Escribir "La suma total es: " suma
        Si suma<0
                Escribir suma " es menor que cero"
        SiNo
                Si suma=0
                        Escribir suma " es igual que cero"
                SiNo
                        Si suma>0
                                Escribir suma " es mayor que cero"
                        FinSi
                FinSi
        FinSi
FinAlgoritmo





2.- Programa que determine el estado de cuenta corriente del usuario de acuerdo al saldo que posee y mostrar el total de los saldos acreedores.

Algoritmo Cuentas_Bnc
        Escribir "---Banco de Guayaquil---"
        Repetir
                Escribir " "
                Escribir "Ingrese su número de cuenta corriente"
                Leer w
                Si w<0
                        Escribir "Error de ingreso"
                SiNo
                        Escribir "Ingrese su saldo actual"
                        Leer c
                        Si c<0
                                Escribir "Deudor"
                        SiNo
                                Si c=0
                                       Escribir "Nulo"
                                Sino
                                       Si c>0
                                               t<-t+c
                                               Escribir "Acreedor"
                                       FinSi
                                FinSi
                        FinSi
                FinSi
        Hasta Que w<0
        Escribir " "
        Escribir "Programa Finalizado"
        Escribir " "
        Escribir "Saldo Acreedor Total: $ " t
FinAlgoritmo






3.- Programa que realice un censo, y que determine la cantidad de personas censadas según, su género, edad. (varones de entre 16 y 65 - mujeres de entre 16 y 60)

Algoritmo Censo_prov
Repetir
                Imprimir "Ingrese su Número de Identificación"
                Leer i
                Si i=0
                        Imprimir " "
                SiNo
                        t<-t+1
                        Imprimir "Ingrese su Género: 1:Femenino - 2:Masculino"
                        Leer g
                        Si g=1
                                f<-f+1
                        SiNo
                                m<-m+1
                        FinSi
                        Imprimir "Ingrese su Edad"
                        Leer e
                        Si e<0
                                Imprimir "Edad incorrecta"
                        SiNo
                                Si g=1 y e>=16 y e<=60
                                       fe<-fe+1
                                SiNo
                                       Si g=2 y e>=16 y e<=65
                                               va<-va+1
                                       FinSi
                                FinSi
                        FinSi
                FinSi
        Hasta Que i=0
        Imprimir "Censo finalizado"
        Imprimir "Total de personas censadas: ",t
        Imprimir "N° de Varones censados: ",m
        Imprimir "N° de Mujeres censadas: ",f
        Imprimir "Varones de entre 16 y 65 años: ",va
        Imprimir "Mujeres de entre 16 y 60 años: ",fe
FinAlgoritmo








Taller: Estr. Repetitiva Repetir Hasta Que (01/03/21)

 
1.- Programa que realice un censo, y que determine la cantidad de personas censadas según, su género y edad. Que muestre sus nombres, el código provincial y cédula de identidad.

Algoritmo Censo_Prov
             Repetir
                   Imprimir "Ingrese el Código de Provincia a Censar"
                   Leer p
                   Imprimir "Ingrese su Número de Identificación"
                   Leer i
                   Si i>0
                            t<-t+1
                   SiNo
                            Imprimir "Ingreso no Válido"
                   FinSi
                   Imprimir "Ingrese su Nombre"
                   Leer a
                   Imprimir "Ingrese su Edad"
                   Leer e
                   Si e<=0
                            Imprimir "Ingreso no Válido"
                   SiNo
                            Si e>0 y e<18
                                      md<-md+1
                            FinSi
                   FinSi
                   Imprimir "Ingrese su Sexo: M - F"
                   Leer s
                   Si s="f" o s="F" y e>15 y e<61
                            sf<-sf+1
                            me<-me+1
                   SiNo
                            Si s="m" o s="M"
                                      sm<-sm+1
                            SiNo
                                      Si s<>"f" y s<>"F"
                                               Imprimir "Ingreso no Válido"
                                      SiNo
                                               Si s<>"m" y s<>"M"
                                                         Imprimir "Ingreso no Válido"
                                               FinSi
                                      FinSi
                            FinSi
                   FinSi
                  
                   Imprimir "¿Desea continuar con el Censo? Sino, ingrese N o n"
                   Leer c
             Hasta Que (c="N") o (c="n")
            
             Imprimir "N° de Identidad ",i
             Imprimir "Nombre y Apellidos ",a
             Imprimir "Edad ",e
             Imprimir "Sexo ",s
            
             Imprimir "Código de Provincia: ",p
             Imprimir "Total de Personas Censadas: ",t
             Imprimir "Total de menores a 18 años: ",md
             Imprimir "Total de mayores a 65 años: ",ms
             Imprimir "N° de Varones Censados: ",sm
             Imprimir "N° de Mujeres Censadas: ",sf
             Imprimir "Mujeres de entre 16 y 60 años: ",me
FinAlgoritmo






Taller: Estr. Repetitivas Para, Mientras y Repetir (03/03/21)


1.- Programa que determine el valor a pagar por la compra de cacao, dependiendo del peso de los sacos, de la humedad, y las libras.

Algoritmo Para_
Imprimir "Comercial Pepa de Oro"
      Para m<-1 Hasta 1
            Imprimir "¿Cuántos sacos desea pesar?" Sin Saltar
            Leer cant
            Si cant<=0
                  Imprimir "Error de Ingreso"
            SiNo
                  c<-c+cant
                  Imprimir "Ingrese el peso del cacao (libras)" Sin Saltar
                  Leer libra
                  Si libra<=0
                        Imprimir "Error de Ingreso"
                  SiNo
                        t<-t+libra
                        Imprimir " "
                        Imprimir "CONTINUAR PROCESO: x número positivo   -   AGREGAR OTRO PESO: 0 - x número negativo"
                        Leer m
                  FinSI
            FinSi
      FinPara
     
      //    //Mientras_
      //    Imprimir "Comercial Pepa de Oro"
      //    Mientras x>=m
      //          Imprimir "¿Cuántos sacos desea pesar?" Sin Saltar
      //          Leer cant
      //          Si cant<=0
      //                Imprimir "Error de Ingreso"
      //          SiNo
      //                c<-c+cant
      //                Imprimir "Ingrese el peso del cacao (libras)" Sin Saltar
      //                Leer libra
      //                Si libra<=0
      //                      Imprimir "Error de Ingreso"
      //                SiNo
      //                      t<-t+libra
      //                      Imprimir " "
      //                      Imprimir "CONTINUAR PROCESO: x número positivo   -   AGREGAR OTRO PESO: 0 - x número negativo"
      //                      Leer m
      //                FinSI
      //          FinSi
      //          x<-x+x
      //    FinMientras
     
      //    //Repetir_
      //    Imprimir "Comercial Pepa de Oro"
      //    Repetir
      //          Imprimir "¿Cuántos sacos desea pesar?" Sin Saltar
      //          Leer cant
      //          Si cant<=0
      //                Imprimir "Error de Ingreso"
      //          SiNo
      //                c<-c+cant
      //                Imprimir "Ingrese el peso del cacao (libras)" Sin Saltar
      //                Leer libra
      //                Si libra<=0
      //                      Imprimir "Error de Ingreso"
      //                SiNo
      //                      t<-t+libra
      //                      Imprimir " "
      //                      Imprimir "CONTINUAR PROCESO: x número positivo   -   AGREGAR OTRO PESO: 0 - x número negativo"
      //                      Leer m
      //                FinSI
      //          FinSi
      //    Hasta Que m>="1"
     
      Si libra>0
            Imprimir "Ingrese la tara de sacos" Sin Saltar
            Leer peso
            Si peso>0
                  Imprimir "Ingrese la humedad del cacao" Sin Saltar
                  Leer humedad
                  Si humedad>0
                        total<-t-peso
                        total2<-(total*humedad/100)
                        total3<-total-total2
                        quintal<-total3/100
                        Imprimir " "
                        Imprimir "Ingrese el precio actual del Cacao por quintal"
                        Leer precio
                        Si precio>0
                              Imprimir "¿Cuenta con RUC?"
                              Imprimir "Si: 1  -  No: x número"
                              Leer r
                              Imprimir " "
                              Si r<>1
                                   total4<-quintal*precio
                                   total5<-(total4*1/100)
                                   total6<-total4-total5
                                   Imprimir "Total de sacos de cacao: ",c
                                   Imprimir "Total de Libras: ",t
                                   Imprimir "Tara de sacos: ",peso," Lb"
                                   Imprimir "Tara por humedad: ",humedad," %"
                                   Imprimir "Total de quintales: ",quintal
                                   Imprimir "Precio del Cacao: $",precio
                                   Imprimir "SubTotal: $",total4
                                   Imprimir "Impuesto a la Renta 1%: ",total5
                                   Imprimir "Total: $",total6
                                   Imprimir " "
                              SiNo
                                   total4<-quintal*precio
                                   total6<-total4-total5
                                   Imprimir "Total de sacos de cacao: ",c
                                   Imprimir "Total de Libras: ",t
                                   Imprimir "Tara de sacos: ",peso," Lb"
                                   Imprimir "Tara por humedad: ",humedad," %"
                                   Imprimir "Total de quintales: ",quintal
                                   Imprimir "Precio del Cacao: $",precio
                                   Imprimir "SubTotal: $",total4
                                   Imprimir "Total: $",total6
                                   Imprimir " "
                              FinSi
                        SiNo
                              Imprimir "Error de ingreso"
                        FinSi
                  SiNo
                        Imprimir "Error de ingreso"
                  FinSi
            SiNo
                  Imprimir "Error de ingreso"
            FinSi
      SiNo
      FinSi
FinAlgoritmo


Tarea: Combinación de las Estr. Repetitivas Para, Mientras y Repetir (04/03/21)

1.- Programa que transforme unidades de temperatura a otras temperaturas.

Algoritmo Fusión_temperal
Imprimir "Transformación a los distintos tipos de temperaturas "
        Mientras w>=r
                Repetir
                        Imprimir "¿Cuántos números desea convertir?"
                        Leer r
                        Para w<-1 Hasta r
                                Imprimir " "
                                Imprimir "======================================"
                                Imprimir "Ingrese el valor a convertir"
                                Leer h
                                Imprimir "Elija una opción"
                                Imprimir " "
                                Imprimir "Celcius     a  Kelvin         -> 1"
                                Imprimir "Kelvin      a  Celcius        -> 2"
                                Imprimir "Celcius     a  Fahrenheit     -> 3"
                                Imprimir "Fahrenheit  a  Celcius        -> 4"
                                Imprimir "Fahrenheit  a  Kelvin         -> 5"
                                Imprimir "Kelvin      a  Fahrenheit     -> 6"
                                Imprimir " "
                                Leer x
                                Segun x Hacer
                                       1:
                                               K<-h+273.15
                                               imprimir "Celcius a Kelvin: ",K,"°"
                                       2:
                                               C<-h-273.15
                                               Imprimir "Kelvin a Celcius: ",C,"°"
                                       3:
                                               F<-h*(5/9)+32
                                               Imprimir "Celcius a Fahrenheit: ",F,"°"
                                       4:
                                               C2<-(h-32)*5/9
                                               Imprimir "Fahrenheit a Celcius: ",C2,"°"
                                       5:
                                               K2<-(h+459.67)*5/9
                                               Imprimir "Fahrenheit a Kelvin: ",K2,"°"
                                       6:
                                               F2<-h*(5/9)-459.67
                                               Imprimir "Kelvin a Fahrenheit: ",F2,"°"
                                       De Otro Modo:
                                               Imprimir "Opción no disponible"
                                Fin Segun
                        FinPara
                        Imprimir " "
                        Imprimir "======================================"
                        Imprimir "¿Desea agregar otro número?"
                        Imprimir "Si: cualquier tecla  -  No: b"
                        Leer z
                Hasta Que (z="b") o (z="B")
        FinMientras
        Imprimir "¡Gracias por usar nuestro servicio!"
FinAlgoritmo








Comentarios