Los programas que hemos creado hasta ahora incluyen conceptos de programación esenciales tales como entradas, salidas, asignaciones, expresiones y operaciones, sentencias secuenciales y estructuras de selección. Sin embargo, muchos de los problemas con los que nos topamos en la práctica del desarrollo de software requieren de características de repetición de instrucciones el las que algunos cálculos o sentencias se repiten una y otra vez, utilizando diferentes conjuntos de datos. Algunos ejemplos de tareas de repetición son las verificaciones de entradas de datos de usuario hasta que se introduce una entrada aceptable (por ejemplo una contraseña válida), acumulación de valores, aceptación constante de valores de entrada, dibujar muchos renglones de una tabla de datos, etc.
Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se llaman ciclos y se le llama iteración al hecho de repetir la ejecución de una secuencia de acciones. Tratemos de entender la necesidad de estas estructuras con un ejemplo. Supongamos que necesitamos leer una lista de 10 números para calcular la suma de todos ellos. El algoritmo que resuelve este problema se vería algo así:
algoritmo Suma
var
entero: suma, numero
inicio
suma <- 0
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
leer(numero)
suma <- suma + numero
escribir(suma)
fin
Como vemos, este algoritmo está repitiendo diez veces las mismas dos instrucciones. Puede que no sea tan complicado crear este algoritmo pero, ¿y si tuviéramos que calcular la suma de 1000 números en vez de sólo 10? Peor aún, ¿qué tal si no conozco la cantidad exacta de números que se van a sumar y en su lugar debo preguntar al usuario si desea introducir un número más y, en caso afirmativo, leerlo y sumarlo? En ese caso la situación se complica todavía más. Les estructuras repetitivas nos ayudarían a resolver cualquiera de los dos problemas planteados y, en programación, contamos con las siguientes:
- Estructura mientras (while)
- Estructura hacer-mientras (do-while)
- Estructura repetir (repeat)
- Estructura desde/para (for)
Cada una de ellas, aunque en esencia hace lo mismo (repetir instrucciones), tiene sus propias características, ventajas, desventajas y usos, todos los cuales iremos conociendo a partir de la siguiente lección.
0 comentarios:
Publicar un comentario