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.

Apéndice A<br />

Aspectos complem<strong>en</strong>tarios de la<br />

programación<br />

En este capítulo se estudian algunos aspectos que, aunque no se pued<strong>en</strong> considerar<br />

es<strong>en</strong>ciales para una introducción a la programación <strong>en</strong> <strong>Pascal</strong>, sí resultan<br />

interesantes como complem<strong>en</strong>to a los temas ya estudiados.<br />

En primer lugar se analiza la posibilidad de definir <strong>en</strong> <strong>Pascal</strong> subprogramas<br />

con parámetros que son, a su vez, subprogramas. Con esto se pued<strong>en</strong> conseguir<br />

programas con un alto nivel de flexibilidad. Finalm<strong>en</strong>te, se estudia la utilización<br />

de variables (seudo)aleatorias, que resultan especialm<strong>en</strong>te útiles para desarrollar<br />

programas <strong>en</strong> los que intervi<strong>en</strong>e el azar.<br />

A.1 Subprogramas como parámetros<br />

La utilización de procedimi<strong>en</strong>tos y funciones como parámetros eleva a un nivel<br />

superior la pot<strong>en</strong>cia y versatilidad, ya conocida, de los propios subprogramas.<br />

Supongamos, por ejemplo, que disponemos de dos funciones f, g : IR → IR, y<br />

queremos g<strong>en</strong>erar a partir de ellas una tercera que convierta cada x ∈ IR <strong>en</strong> el<br />

máximo <strong>en</strong>tre f(x) y g(x), como se muestra gráficam<strong>en</strong>te <strong>en</strong> la figura A.1.<br />

La dificultad del problema radica <strong>en</strong> que la función que deseamos definir<br />

no halla el máximo de dos números reales dados sino que, dadas dos funciones<br />

cualesquiera f y g y un número real x, halla f(x) y g(x) (aplicando las funciones<br />

al real) y obti<strong>en</strong>e el máximo de esos valores:<br />

⎧<br />

⎨ f(x) si f(x) < g(x)<br />

MaxFuncs(f, g, x) =<br />

⎩<br />

g(x) <strong>en</strong> otro caso

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

Saved successfully!

Ooh no, something went wrong!