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.

104 Capítulo 6. Instrucciones estructuradas<br />

begin<br />

total:= 0;<br />

{Entrada de datos y cálculo de la suma total:}<br />

for i:= 1 to 5 do begin<br />

ReadLn(<strong>en</strong>trada);<br />

total:= total + <strong>en</strong>trada<br />

<strong>en</strong>d; {for}<br />

{Cálculo de la media:}<br />

media:= total / 5;<br />

{Salida de datos:}<br />

WriteLn(’La media es ’, media:10:4)<br />

<strong>en</strong>d. {Media5}<br />

Si no se conoce previam<strong>en</strong>te cuántas repeticiones se necesitarán <strong>en</strong>tonces se<br />

usará bi<strong>en</strong> while o bi<strong>en</strong> repeat; para saber cuándo convi<strong>en</strong>e usar una u otra<br />

será conv<strong>en</strong>i<strong>en</strong>te recordar sus similitudes y difer<strong>en</strong>cias.<br />

1. Si no se sabe si se ha de ejecutar el cuerpo del bucle al m<strong>en</strong>os una vez<br />

<strong>en</strong>tonces el bucle ha de ser preprobado, con lo cual se usaría la instrucción<br />

while.<br />

2. Si, por el contrario, el cuerpo del bucle se ha de ejecutar al m<strong>en</strong>os una vez<br />

<strong>en</strong>tonces se usaría repeat, pues nos basta con un bucle postprobado.<br />

Por ejemplo, supóngase que estamos desarrollando un programa de gestión<br />

de un cajero automático, la primera tarea que se necesita es la de id<strong>en</strong>tificar<br />

al usuario mediante su número personal; si t<strong>en</strong>emos <strong>en</strong> cu<strong>en</strong>ta la posibilidad<br />

de error al teclear el número lo mejor será colocar este fragm<strong>en</strong>to de código<br />

d<strong>en</strong>tro de un bucle. Puesto que, obviam<strong>en</strong>te, es necesario que el usuario teclee<br />

su número de id<strong>en</strong>tificación al m<strong>en</strong>os una vez, se usará la instrucción repeat.<br />

var<br />

codigo, int<strong>en</strong>tos: integer;<br />

...<br />

int<strong>en</strong>tos:= 0;<br />

repeat<br />

Read(codigo);<br />

int<strong>en</strong>tos:= int<strong>en</strong>tos + 1<br />

until Código correcto or (int<strong>en</strong>tos > 3)<br />

donde se ha expresado <strong>en</strong> seudocódigo la comprobación de la validez del número<br />

tecleado y, además, se incluye un contador para no permitir más de tres int<strong>en</strong>tos<br />

fallidos.<br />

En caso de duda, si no se sabe muy bi<strong>en</strong> si el cuerpo del bucle se ha de repetir<br />

al m<strong>en</strong>os una vez o no, se ha de usar while, pero debemos asegurarnos de que

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

Saved successfully!

Ooh no, something went wrong!