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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

for<br />

Id<strong>en</strong>tif.<br />

:= Expresi—n Expresi—n<br />

to<br />

downto<br />

Figura 6.6. Diagrama de flujo de las instrucciones for.<br />

do<br />

Instrucci—n<br />

el cual se especifica una tarea repetitiva (la inspección) que ha de realizarse<br />

exactam<strong>en</strong>te <strong>en</strong> 11 ocasiones (para los bloques A,. . . , K ).<br />

La s<strong>en</strong>t<strong>en</strong>cia for admite dos variantes: la for-to-do (instrucción for asc<strong>en</strong>d<strong>en</strong>te)<br />

y la for-downto-do (instrucción for desc<strong>en</strong>d<strong>en</strong>te). El diagrama sintáctico<br />

de estas s<strong>en</strong>t<strong>en</strong>cias aparece <strong>en</strong> la figura 6.6. De otro modo:<br />

for variable:= expresi«on ordinal (to|downto) expresi«on ordinal do instrucci«on<br />

donde se acostumbra a llamar variable de control o índice del bucle a la variable<br />

variable.<br />

El funcionami<strong>en</strong>to del bucle for es el sigui<strong>en</strong>te: primero se comprueba si el<br />

índice rebasa el límite final, con lo que es posible que el cuerpo del bucle no<br />

llegue a ejecutarse ninguna vez, <strong>en</strong> caso positivo se le asigna el valor inicial a la<br />

variable de controlvble, se ejecuta la instrucción interior una vez y se increm<strong>en</strong>ta<br />

(o decrem<strong>en</strong>ta, según se trate de to o downto respectivam<strong>en</strong>te) una unidad el<br />

valor devble, si este nuevo valor está compr<strong>en</strong>dido <strong>en</strong>tre el valor inicial y el valor<br />

final, <strong>en</strong>tonces se vuelve a ejecutar la instrucción interior, y así sucesivam<strong>en</strong>te<br />

hasta que vble alcanza el valor final.<br />

En particular, si <strong>en</strong> una instrucción for-to-do el valor inicial de la variable<br />

es posterior al valor final <strong>en</strong>tonces no se ejecutan las instrucciones interiores y se<br />

sale del bucle. La instrucción for-downto-do ti<strong>en</strong>e un comportami<strong>en</strong>to análogo<br />

cuando el valor inicial de la variable es anterior al valor final.<br />

❡❡ <br />

En teoría, nada impide que <strong>en</strong> el cuerpo de un bucle for se modifique<br />

el valor de la variable de control o las expresiones inicial y final del bucle;<br />

sin embargo, debe ponerse el mayor cuidado <strong>en</strong> evitar que esto ocurra.<br />

En particular, convi<strong>en</strong>e recordar que la variable de control se actualiza<br />

automáticam<strong>en</strong>te. El sigui<strong>en</strong>te fragm<strong>en</strong>to de código es un ejemplo<br />

sintácticam<strong>en</strong>te correcto<br />

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

Write(i);<br />

i:= i - 1<br />

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

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

Saved successfully!

Ooh no, something went wrong!