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.

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

donde el programa se plantea como la secu<strong>en</strong>cia de dos acciones: la primera<br />

consiste <strong>en</strong> conocer el tamaño de la tabla deseada, Leer n, y la segunda <strong>en</strong><br />

construir tal tabla. La primera de las acciones está sufici<strong>en</strong>tem<strong>en</strong>te refinada<br />

(se puede traducir directam<strong>en</strong>te a un l<strong>en</strong>guaje de programación) pero no así la<br />

segunda.<br />

La construcción de la tabla se puede realizar fácilm<strong>en</strong>te escribi<strong>en</strong>do <strong>en</strong> una<br />

fila los múltiplos de 1, <strong>en</strong> la fila inferior los múltiplos de 2. . . hasta que lleguemos<br />

a los múltiplos de n. Ésta es la idea subyac<strong>en</strong>te al sigui<strong>en</strong>te refinami<strong>en</strong>to de la<br />

función que construye la tabla de tamaño n ×n<br />

i←i+1<br />

i←1 i≤n Escribir Fila i<br />

donde aparece la acción Escribir Fila i, que escribe cada una de las filas de la<br />

tabla (no se debe olvidar añadir un salto de línea detrás del último número de<br />

la fila). Esta función aparece especificada con mayor detalle a continuación<br />

NO<br />

j←1 j≤n Escribir i*j<br />

NO<br />

S Í<br />

j←j+1<br />

S Í<br />

Saltar Línea<br />

<strong>en</strong> esta función todos los bloques aparec<strong>en</strong> completam<strong>en</strong>te refinados, con lo cual<br />

se habría terminado.<br />

El desarrollo desc<strong>en</strong>d<strong>en</strong>te de programas no suele hacerse mediante diagramas<br />

como hemos hecho <strong>en</strong> este ejemplo, aunque se ha pres<strong>en</strong>tado así para ilustrar<br />

de forma gráfica los conceptos estudiados <strong>en</strong> este capítulo. En la práctica, lo<br />

que se hace es refinar progresivam<strong>en</strong>te usando seudocódigo, de modo que al<br />

llegar al último refinami<strong>en</strong>to la traducción a un l<strong>en</strong>guaje de programación sea<br />

prácticam<strong>en</strong>te inmediata.<br />

La primera aproximación <strong>en</strong> seudocódigo al programa que calcula la tabla de<br />

n × n podría ser la sigui<strong>en</strong>te:

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

Saved successfully!

Ooh no, something went wrong!