09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.3. Instrucciones de iteración 99<br />

termina cuando la condición se hace verdadera, <strong>en</strong> cuyo caso se pasa a la sigui<strong>en</strong>te<br />

instrucción externa al bucle.<br />

Como ejemplo de utilización del bucle repeat, se incluye otra versión de la<br />

suma de los n primeros números naturales.<br />

ReadLn(n); {Supuesto que n >= 1}<br />

suma:= 0;<br />

contador:= 0;<br />

repeat<br />

contador:= contador + 1;<br />

suma:= suma + contador<br />

until contador = n<br />

Obsérvese que la condición n >= 1 es imprescindible para que el resultado<br />

final sea el esperado. En g<strong>en</strong>eral, siempre es conv<strong>en</strong>i<strong>en</strong>te comprobar el comportami<strong>en</strong>to<br />

del bucle <strong>en</strong> valores extremos; <strong>en</strong> este ejemplo, para n = 0 se g<strong>en</strong>eraría<br />

un bucle infinito, lo cual se evitaría sustituy<strong>en</strong>do la condición contador = n por<br />

contador >= n. En este caso, dada la característica de postprobado del bucle<br />

repeat, las instrucciones interiores se ejecutarán al m<strong>en</strong>os una vez, por lo que<br />

la suma valdrá al m<strong>en</strong>os 1 y el resultado arrojado sería incorrecto para n 0<br />

donde si alguno de los datos introducidos no es positivo <strong>en</strong>tonces la condición<br />

resultará ser falsa, con lo cual se repite la petición de los datos.<br />

Podemos mejorar el ejemplo de aplicación a la gestión de una biblioteca<br />

mostrado <strong>en</strong> el apartado 6.2.2 usando la instrucción repeat para controlar el<br />

mom<strong>en</strong>to <strong>en</strong> el que se desea terminar la ejecución.<br />

Mostrar el m<strong>en</strong>ú<br />

{Elegir una acción según la opción elegida:}<br />

WriteLn(’Elija su opción: ’);<br />

ReadLn(opcion);<br />

repeat<br />

case opcion of<br />

B: Búsqueda.<br />

P: Petición Préstamo.<br />

D: Devolución Préstamo.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!