5.10. DISEÑO DE BUCLES (LAZOS)

click to edit

click to edit

click to edit

click to edit

El diseño de un bucle requiere tres partes:

  1. El cuerpo del bucle.
  1. Las sentencias de inicialización.
  1. Las condiciones para la terminación del bucle.

5.10.1. Bucles para diseño de sumas y productos

Muchas tareas frecuentes implican la lectura de una lista de números y calculan su suma. Si se conoce cuántos nú-

meros habrá, tal tarea se puede ejecutar fácilmente por el siguiente pseudocódigo. El valor de la variable total es

el número de números que se suman. La suma se acumula en la variable suma.

image

5.10.2. Fin de un bucle

Existen cuatro métodos utilizados normalmente para terminar un bucle de entrada. Estos cuatro métodos son2

:

click to edit

  1. Lista encabezada por tamaño.
  1. Preguntar antes de la iteración.
  1. Lista terminada con un valor centinela.
  1. Agotamiento de la entrada.

Lista encabezada por el tamaño

Si su programa puede determinar el tamaño de una lista de entrada por anticipado, bien preguntando al usuario o por

algún otro método, se puede utilizar un bucle “repetir n veces” para leer la entrada exactamente n veces, en

donde n es el tamaño de la lista.

click to edit

click to edit

click to edit

Preguntar antes de la iteración

El segundo método para la terminación de un bucle de entrada es preguntar, simplemente, al usuario, después de cada

iteración del bucle, si el bucle debe ser o no iterado de nuevo. Por ejemplo:

Valor centinela

El método más práctico y eficiente para terminar un bucle que lee una lista de valores del teclado es mediante un

valor centinela. Un valor centinela es aquél que es totalmente distinto de todos los valores posibles de la lista que

se está leyendo y de este modo sirve para indicar el final de la lista. Un ejemplo típico se presenta cuando se lee una

lista de números positivos; un número negativo se puede utilizar como un valor centinela para indicar el final de la

lista.

Agotamiento de la entrada

Cuando se leen entradas de un archivo, se puede utilizar un valor centinela. Aunque el método más frecuente es

comprobar simplemente si todas las entradas del archivo se han leído y se alcanza el final del bucle cuando no hay

más entradas a leer. Éste es el método usual en la lectura de archivos, que suele utilizar una marca al final de archi-

vo, eof. En el capítulo de archivos se dedicará una atención especial a la lectura de archivos con una marca de final

de archivo.