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.

196 Capítulo 9. <strong>Programación</strong> con subprogramas<br />

sustantivos para las funciones (como LetraMayuscula), salvo las booleanas,<br />

que se indican con predicados (por ejemplo EsDiaLaborable).<br />

• También <strong>en</strong> el <strong>en</strong>cabezami<strong>en</strong>to, los parámetros deb<strong>en</strong> nombrarse adecuadam<strong>en</strong>te,<br />

y su tipo y modo ya ofrec<strong>en</strong> una información sobre los datos y<br />

resultados.<br />

• Además del tipo, frecu<strong>en</strong>tem<strong>en</strong>te los datos deb<strong>en</strong> acogerse a ciertos requisitos<br />

(precondición del subprograma), lo que se indicará <strong>en</strong> forma de<br />

com<strong>en</strong>tario:<br />

function Division (numerador, d<strong>en</strong>ominador: integer): integer;<br />

{PreC.: d<strong>en</strong>ominador 0}<br />

• Cuando el id<strong>en</strong>tificador del subprograma deje lugar a dudas sobre su cometido,<br />

se indicará con otro com<strong>en</strong>tario. En el caso de las funciones, indicando<br />

el valor que calculan:<br />

function Division (numerador, d<strong>en</strong>ominador: integer): integer;<br />

{Dev. el coci<strong>en</strong>te de la división <strong>en</strong>tera <strong>en</strong>tre numerador y<br />

d<strong>en</strong>ominador}<br />

ya sea informal o formalm<strong>en</strong>te. Y <strong>en</strong> el caso de los procedimi<strong>en</strong>tos, se indicará<br />

qué efecto ti<strong>en</strong><strong>en</strong> y qué parámetros se modifican cuando sea necesario:<br />

procedure Dividir (num, d<strong>en</strong>: integer; var coc, resto: integer);<br />

{Efecto: coc:= coci<strong>en</strong>te <strong>en</strong>tero de la división num/d<strong>en</strong><br />

resto:= resto de la división <strong>en</strong>tera num/d<strong>en</strong>}<br />

9.3.4 Tamaño de los subprogramas<br />

En g<strong>en</strong>eral, el tamaño dep<strong>en</strong>de de lo complicado que sea el problema, si<strong>en</strong>do<br />

aconsejable descomponer un problema de complejidad considerable <strong>en</strong> subproblemas.<br />

Si los subprogramas obt<strong>en</strong>idos <strong>en</strong> una primera descomposición son excesivam<strong>en</strong>te<br />

complejos, pued<strong>en</strong> descomponerse a su vez <strong>en</strong> nuevos subprogramas<br />

auxiliares que son llamados por los subprogramas de los que proced<strong>en</strong>. Sin embargo,<br />

esta división no puede proseguir indefinidam<strong>en</strong>te, puesto que también<br />

aum<strong>en</strong>ta el esfuerzo necesario para <strong>en</strong>lazarlas. Se debe parar la descomposición<br />

cuando el problema por resolver no pres<strong>en</strong>te especial dificultad o afronte una<br />

tarea de difícil descomposición <strong>en</strong> partes. 1<br />

1 Aunque es difícil hablar de tamaño físico, rara vez se requier<strong>en</strong> subprogramas que supere<br />

una página de ext<strong>en</strong>sión (<strong>en</strong> <strong>Pascal</strong>), si bi<strong>en</strong> éste es un valor relativo que dep<strong>en</strong>de además de la<br />

expresividad del l<strong>en</strong>guaje adoptado.

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

Saved successfully!

Ooh no, something went wrong!