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.

146 Capítulo 7. <strong>Programación</strong> estructurada<br />

se puede hacer, simplem<strong>en</strong>te,<br />

{Actualizar d<strong>en</strong>om = i! (desde d<strong>en</strong>om=(i-1)!}<br />

d<strong>en</strong>om:= d<strong>en</strong>om * i<br />

con el mismo efecto e indudablem<strong>en</strong>te más rápido. En este caso se requiere<br />

establecer el d<strong>en</strong>ominador inicialm<strong>en</strong>te a uno antes de <strong>en</strong>trar <strong>en</strong> el bucle. En<br />

resum<strong>en</strong>,<br />

suma:= 0;<br />

d<strong>en</strong>om:= 1;<br />

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

{Cálculo del término i-ésimo: (i + 1)/i!}<br />

d<strong>en</strong>om:= d<strong>en</strong>om * i;<br />

term:= (i + 1)/d<strong>en</strong>om;<br />

{Acumular al término:}<br />

suma:= suma + term<br />

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

Este método se basa <strong>en</strong> la posibilidad de calcular cierta(s) (sub)expresión(es)<br />

reciclando otras anteriores, economizando así los cálculos. Precisam<strong>en</strong>te, el nombre<br />

de difer<strong>en</strong>ciación finita procede de la actualización de las expresiones necesarias<br />

hallando sólo la “difer<strong>en</strong>cia” con respecto a las anteriores. 4<br />

En el ejercicio 5f del capítulo 18 se comprueba cómo esta segunda versión<br />

constituye una mejora importante <strong>en</strong> cuanto al tiempo de ejecución del programa.<br />

7.4 Refinami<strong>en</strong>to correcto de programas con<br />

instrucciones estructuradas<br />

La idea de este apartado es aplicar la metodología anterior para resolver,<br />

con garantías, un problema mediante un programa descomponi<strong>en</strong>do el problema<br />

<strong>en</strong> subproblemas y refinando (resolvi<strong>en</strong>do) éstos posteriorm<strong>en</strong>te. Para que el<br />

refinami<strong>en</strong>to sea correcto habrá que definir con precisión el cometido de cada<br />

subproblema, garantizar su corrección y organizar (estructurar) bi<strong>en</strong> <strong>en</strong>tre sí los<br />

(sub)algoritmos respectivos.<br />

Dicho de otro modo, para lograr programas correctos mediante el método<br />

de los refinami<strong>en</strong>tos progresivos, debe asegurarse la corrección <strong>en</strong> cada paso del<br />

4 El esquema de mejora ejemplificado ti<strong>en</strong>e su orig<strong>en</strong> <strong>en</strong> la tabulación de polinomios de forma<br />

efici<strong>en</strong>te por el método de las difer<strong>en</strong>cias (Briggs, s. xvi).

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

Saved successfully!

Ooh no, something went wrong!