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.

5.4. Desarrollo de programas correctos 73<br />

{Cálculos:}<br />

sumCuadr:= Sqr(catA) + Sqr(catB);<br />

hipo:= SqRt(sumCuadr);<br />

{Resultados:}<br />

WriteLn (’La hipot<strong>en</strong>usa mide: ’, hipo:8:4)<br />

<strong>en</strong>d. {Prog. Hipot<strong>en</strong>usa}<br />

Resum<strong>en</strong><br />

El programa Hipot<strong>en</strong>usa se ha desarrollado <strong>en</strong> fases sucesivas, a partir de un<br />

boceto a grandes rasgos del mismo. En esta primera versión aparec<strong>en</strong> acciones<br />

y datos escritos <strong>en</strong> los términos del propio problema.<br />

Entonces empieza un proceso de refinami<strong>en</strong>to por pasos sucesivos, desarrollando<br />

esas acciones <strong>en</strong> cada fase: las más s<strong>en</strong>cillas podrán escribirse directam<strong>en</strong>te<br />

<strong>en</strong> <strong>Pascal</strong>; otras requerirán varios pasos <strong>en</strong> esa dirección. En ambos casos pued<strong>en</strong><br />

aparecer nuevos objetos que será preciso incluir <strong>en</strong> las secciones de constantes o<br />

variables.<br />

Este modo de proceder se llama diseño desc<strong>en</strong>d<strong>en</strong>te y refinami<strong>en</strong>to por pasos<br />

sucesivos, ya que el desarrollo de un programa se lleva a cabo id<strong>en</strong>tificando<br />

primero grandes acciones y desc<strong>en</strong>di<strong>en</strong>do a sus detalles progresivam<strong>en</strong>te. En el<br />

apartado 7.3 se desarrollan estas ideas ampliam<strong>en</strong>te.<br />

5.4 Desarrollo de programas correctos<br />

En este apartado se establece la base necesaria para razonar sobre la corrección<br />

de los programas durante su desarrollo, <strong>en</strong> vez de hacerlo a posteriori.<br />

Por el mom<strong>en</strong>to, at<strong>en</strong>demos al efecto que ti<strong>en</strong><strong>en</strong> las instrucciones elem<strong>en</strong>tales<br />

sobre los datos manejados por el programa. De hecho, se puede garantizar<br />

que un programa es correcto cuando el efecto que produce a partir de unos<br />

datos g<strong>en</strong>éricos consiste <strong>en</strong> desembocar <strong>en</strong> los resultados deseados. En suma, un<br />

programa es correcto si cumple con su cometido para unos datos cualesquiera, o<br />

sea, g<strong>en</strong>éricos.<br />

Nuestra propuesta consiste <strong>en</strong> habituarse, desde el principio, a conc<strong>en</strong>trar la<br />

dosis de at<strong>en</strong>ción necesaria para estar seguro de que un programa es correcto.<br />

Para ello, se debe seguir este principio durante todas las fases del desarrollo.<br />

5.4.1 Estado de los cómputos<br />

El modelo de programación adoptado <strong>en</strong> este libro es el imperativo (véase<br />

el apartado 5.1.3 de [PAO94]). En él, el efecto concreto de una instrucción <strong>en</strong>

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

Saved successfully!

Ooh no, something went wrong!