ESTRUCTURAS DE CONTROL REPETITIVAS (PARTE IV)
Continuando con las estructuras de control repetitivas, este post está dedicado a la estructura repeat-until (repetir-hasta).
ESTRUCTURA REPETITIVA repeat-until
Esta estructura es otra de las alternativas cuando hablamos de ciclos o bucles, aunque a mi parecer la menos utilizada, recordemos que el while-do puede hacer lo mismo que un for y cualquier repetición de instrucciones bajo una condición que no sólo sea controlado por un contador, sino también por una comparación con cualquier tipo de datos (númericos, alfanuméricos, booleanos, cadenas, objetos, etc.) como interruptores o banderas, entradas controladas por el usuario, etc., pues todo lo que hace un while-do lo hace el repeat-until, con la diferencia de que este último, primero ejecuta el conjunto de instrucciones y después evalúa la condición.
La condición se comprueba al final del bucle por la cual la nube de instrucciones se pueden ejecutar una o más veces.
Representación gráfica
La estructura repetitiva repeat-until cuenta con una variable inicial de cualquier tipo de datos, luego en la nube de instrucciones dentro del bucle cabe aclarar que esta variable inicial tiene que tomar diferentes valores para que en algún momento cumpla la condición del bucle y sea finito, finalmente esta variable inicial participa en la condición del bucle repeat-until.
No me canso de repetir: "Una estructura repetitiva tiene que ser finita, sino no habría lógica al realizar un programa donde no muestre un resultado específico".
Bucle repeat-until controlado por contador
Se utiliza un bucle controlado por contador cuando queremos ejecutar un número de veces un conjunto de instrucciones, con la diferencia que esta estructura ejecuta primero las instrucciones y después la condición.
Bucle repeat-until controlado por interruptor o bandera
Cuando usamos el bucle repeat-until controlado por un interruptor, necesitamos la variable bandera la cual es un valor booleano inicializado con un valor true(verdadero o uno) o false(falso o cero), luego ejecuta un conjunto de instrucciones hasta que cumpla la condición de que la variable bandera sea verdadera o falsa, esta variable bandera en algún momento de la ejecución del programa la condición cambiará a otro estado por una estructura condicional if.
Cabe aclarar que la variable bandera podemos inicializar en falso, lo mismo en la comparación (condición) y en el cambio de estado obviamente a verdadero.
Se utiliza un bucle controlado por interruptor o bandera cuando queremos ejecutar un conjunto de instrucciones tantas veces sea posible hasta que cumpla la condición que la variable bandera sea igual al valor que nosotros le asignemos. Cabe mencionar que este bucle controlado por interruptor no se puede implementar con la estructura for.
Bucle repeat-until controlado por el usuario
Cuando usamos el bucle repeat-until controlado por un usuario, necesitamos la variable centinela y un valor a comparar que le llamaremos en este caso valorAComparar, ya sea números, cadenas de caracteres, caracteres y otros, pero no booleanos sino ya sería controlado por interruptor o bandera, la variable centinela es un valor especial usado para señalar el final de la ejecución del bucle, este(estos) valor(es) elegido(s) es necesario que sean distintos a un posible rango de valores para que se pueda utilizar para señalar el final del bucle, en otras palabras, no debe pertenecer al rango de valores válidos.
Se utiliza un bucle controlado por el usuario cuando queremos ejecutar un conjunto de instrucciones tantas veces sea posible hasta que cumpla la condición de que variableAComparar sea igual a la variable centinela, de lo contrario el bucle sigue ejecutándose. Cabe mencionar que este bucle controlado por el usuario no se puede implementar con la estructura for.
EJEMPLOS DE ALGORITMOS CON SUS RESPECTIVOS DIAGRAMAS DE FLUJO
Implementaremos a continuación algoritmos de contadores, acumuladores, interruptores o banderas, controlados por el usuario y otros más utilizando la estructura repetitiva while.
Ejercicio 001.
Realizar un algoritmo que permita imprimir n veces en pantalla cualquier mensaje ingresado por teclado. (bucle controlado por contador)
Ejercicio 002.
Realizar un algoritmo que permita contar desde un número m hasta otro número n sin importar cuál de los dos sea mayor, con un intervalo ingresado por el usuario. (bucle controlado por contador)
Ejercicio 003.
Determinar si un número ingresado por teclado es primo. Elaborar el diagrama de flujo. (bucle controlado por contador y por interruptor).
La función rc([número]) es una función que viene predefinida en el programa del PseInt y devuelve la raíz cuadrada de un número.
Ejercicio 004.
Confeccionar un algoritmo que permita ingresar varios números hasta ingresar un número que sea múltiplo de 3 y muestre la suma de tales números.
Ejercicio 005.
Desarrollar un algoritmo que ingrese diversos números cualesquiera, siempre y cuando el programa solicite al usuario si quiere seguir ingresando más números y muestre el total acumulado de los numero ingresados por teclado. (bucle controlado por usuario)
Escribir un programa para calcular la potencia de dos números (base y exponente), éstos serán ingresados por el usuario y positivos.
Ejercicio 007.
Elaborar un diagrama de flujo que permita mostrar la cantidad de dígitos que tiene un número natural ingresado por teclado.
diagrama de la suma de dos numeros
ResponderEliminar