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.

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

Otro ejemplo numérico: suma parcial de una serie<br />

En este caso pret<strong>en</strong>demos aplicar las técnicas de diseño desc<strong>en</strong>d<strong>en</strong>te para<br />

obt<strong>en</strong>er un programa que realice el cálculo de<br />

n<br />

i=1<br />

i + 1<br />

i!<br />

La primera versión de este programa podría ser la sigui<strong>en</strong>te:<br />

Leer n<br />

Calcular la suma<br />

Escribir la suma<br />

En este fragm<strong>en</strong>to de seudocódigo simplem<strong>en</strong>te se descompone la tarea <strong>en</strong>com<strong>en</strong>dada<br />

<strong>en</strong> tres subtareas: la <strong>en</strong>trada de información, su manipulación y la<br />

salida de información buscada. El sigui<strong>en</strong>te refinami<strong>en</strong>to ha de ser realizado sobre<br />

la manipulación de la información, esto es, habrá que especificar cómo se<br />

calcula la suma buscada.<br />

La suma se puede calcular mediante una variable acumulador suma y un<br />

bucle del tipo DoFor que <strong>en</strong> la iteración i-ésima calcule el término i-ésimo y lo<br />

añada a la suma parcial suma. Este refinami<strong>en</strong>to aparece reflejado <strong>en</strong> el sigui<strong>en</strong>te<br />

fragm<strong>en</strong>to:<br />

{Calcular la suma:}<br />

suma:= 0<br />

para i:= 1 hasta n hacer<br />

Hallar término i-ésimo, t<br />

Añadir t a suma<br />

Sólo queda por refinar la acción de calcular el término i-ésimo, ya que, conocido<br />

éste, añadirlo a suma no plantea mayores problemas.<br />

Conocido i, para calcular el término ti =<br />

i + 1<br />

i!<br />

bastará con calcular (iterativam<strong>en</strong>te)<br />

el d<strong>en</strong>ominador y realizar la asignación correspondi<strong>en</strong>te<br />

{Hallar término i-ésimo:}<br />

Hallar d<strong>en</strong>ominador, d<strong>en</strong>om = i!<br />

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

El refinami<strong>en</strong>to del cálculo del d<strong>en</strong>ominador vuelve a ser un bucle del tipo<br />

DoFor, que usando seudocódigo se puede escribir así:

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

Saved successfully!

Ooh no, something went wrong!