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.

74 Capítulo 5. Primeros programas completos<br />

un mom<strong>en</strong>to dado puede variar dep<strong>en</strong>di<strong>en</strong>do del conjunto de valores asociados<br />

a los objetos (constantes y variables) <strong>en</strong> ese instante. Esos valores (así como<br />

el conjunto de los datos de <strong>en</strong>trada y los resultados producidos) constituy<strong>en</strong><br />

la noción de estado de un programa, que se altera mediante cualquiera de las<br />

s<strong>en</strong>t<strong>en</strong>cias básicas a medida que avanza la ejecución del programa.<br />

Por ejemplo, si consideramos declaradas a, b: integer, el efecto de la<br />

instrucción Write(a + b) dep<strong>en</strong>de del estado (valor) de ambas variables, a y<br />

b, por lo que su interpretación <strong>en</strong> los puntos del programa donde aparezca<br />

...<br />

ReadLn(a, b);<br />

WriteLn(a + b);<br />

a:= a + b;<br />

WriteLn(a + b);<br />

b:= Sqr(a);<br />

WriteLn(a + b);<br />

...<br />

requiere una interpretación histórica basada <strong>en</strong> los sucesivos estados preced<strong>en</strong>tes.<br />

En concreto, si el input consiste <strong>en</strong> una línea con los números 2 3 ← , las<br />

instrucciones WriteLn(a + b) produc<strong>en</strong> tres salidas distintas: 5, 8 y 30.<br />

Trazado y depuración de un programa<br />

Una forma de comprobar el comportami<strong>en</strong>to de un programa para un juego<br />

concreto de datos de <strong>en</strong>trada consiste <strong>en</strong> simular su funcionami<strong>en</strong>to a mano y<br />

seguir la evolución de los estados por los que atraviesa. Típicam<strong>en</strong>te, esos estados<br />

incluy<strong>en</strong> información sobre el input por leer, el output emitido, los valores de<br />

las variables que intervi<strong>en</strong><strong>en</strong> y el punto <strong>en</strong> que estamos <strong>en</strong> un mom<strong>en</strong>to dado<br />

(véase el apartado 1.2.2).<br />

Sigui<strong>en</strong>do con el fragm<strong>en</strong>to de programa anterior, el estado de los cómputos<br />

se puede mant<strong>en</strong>er <strong>en</strong> una tabla como la de la figura 5.1, <strong>en</strong> la que las posiciones<br />

repres<strong>en</strong>tan los estados sucesivos <strong>en</strong>tre las instrucciones.<br />

Así, resulta fácil analizar cómo las instrucciones modifican el valor de las<br />

variables. Sin embargo, este s<strong>en</strong>cillo método se vuelve inviable a poco que un<br />

programa se complique. Por ello, algunos <strong>en</strong>tornos de desarrollo de programas<br />

incorporan facilidades para efectuar este seguimi<strong>en</strong>to de forma automática, permiti<strong>en</strong>do<br />

establecer las variables o expresiones de nuestro interés, así como las<br />

posiciones <strong>en</strong> que deseamos que se produzca una susp<strong>en</strong>sión mom<strong>en</strong>tánea de los<br />

cómputos para examinar su estado. Entre esos <strong>en</strong>tornos se <strong>en</strong>cu<strong>en</strong>tra Turbo<br />

<strong>Pascal</strong> (véase el apartado C.2.6).

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

Saved successfully!

Ooh no, something went wrong!