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.

5.4. Desarrollo de programas correctos 77<br />

Si llamamos a y b a los caracteres leídos del input, se pued<strong>en</strong> insertar los<br />

sigui<strong>en</strong>tes predicados:<br />

{c1 = a, c2 = b}<br />

c1:= c2;<br />

{c1 = b, c2 = b}<br />

c2:= c1;<br />

{c1 = b, c2 = b}<br />

con lo que no se obti<strong>en</strong>e el resultado deseado.<br />

En cambio, el sigui<strong>en</strong>te programa sí consigue llevar a cabo el intercambio de<br />

dos caracteres cualesquiera. La prueba de ello se da <strong>en</strong> el propio programa:<br />

Program Intercambio (input, output);<br />

var<br />

c1, c2, {los dos caracteres}<br />

aux : char; {variable auxiliar}<br />

begin<br />

Write (’Caracteres: ’);<br />

ReadLn(c1, c2);<br />

{c1 = a, c2 = b}<br />

aux:= c1;<br />

{c1 = a, c2 = b, aux = a}<br />

c1:= c2;<br />

{c1 = b, c2 = b, aux = a}<br />

c2:= aux;<br />

{c1 = b, c2 = a, aux = a}<br />

WriteLn (’Invertidos: ’, c1, c2)<br />

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

• En el razonami<strong>en</strong>to anterior, se ha partido de un programa y, para verificar<br />

su funcionami<strong>en</strong>to, se han incluido aserciones sobre el estado de los cálculos,<br />

averiguando así el efecto que ti<strong>en</strong><strong>en</strong> una o varias instrucciones sobre los<br />

mismos.<br />

Recíprocam<strong>en</strong>te, se puede partir del efecto que un (fragm<strong>en</strong>to de) programa<br />

debe producir para buscar instrucciones que lo logr<strong>en</strong>. Por ejemplo, se<br />

puede plantear la búsqueda de un fragm<strong>en</strong>to de programa I que modifique<br />

el valor de las variables x, y, z: integer del sigui<strong>en</strong>te modo:<br />

{x = x0, y = y0, z = z0}<br />

I<br />

{x = y0, y = z0, z = x0}

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

Saved successfully!

Ooh no, something went wrong!