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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

158 Capítulo 8. Procedimi<strong>en</strong>tos y funciones<br />

8.1 Introducción<br />

La pres<strong>en</strong>tación de los principales cont<strong>en</strong>idos de este capítulo se hará <strong>en</strong> base<br />

al ejemplo que se describe a continuación. Supongamos que queremos escribir<br />

un programa que pida al usuario el valor de un cierto ángulo <strong>en</strong> grados sexagesimales,<br />

calcule su tang<strong>en</strong>te y escriba su valor con dos decimales. En una primera<br />

aproximación podríamos escribir:<br />

Sean a, t ∈ IR<br />

Leer el valor del ángulo a (<strong>en</strong> grados)<br />

Calcular la tang<strong>en</strong>te, t, de a<br />

Escribir el valor de t con dos decimales<br />

Este nivel de refinami<strong>en</strong>to 1 se puede escribir <strong>en</strong> <strong>Pascal</strong>, dejando sin definir<br />

la expresión tang<strong>en</strong>te de a (dado <strong>en</strong> grados) y la acción Escribir un valor dado,<br />

con dos decimales:<br />

Program CalculoTang<strong>en</strong>te (input, output);<br />

{Se halla la tang<strong>en</strong>te de un ángulo, dado <strong>en</strong> grados}<br />

var<br />

a, {ángulo}<br />

t: real; {su tang<strong>en</strong>te}<br />

begin<br />

Leer el valor del ángulo a (<strong>en</strong> grados)<br />

t:= tang<strong>en</strong>te de a;<br />

Escribir el valor de t, con 2 decimales<br />

<strong>en</strong>d. {CalculoTang<strong>en</strong>te}<br />

Desde el punto de vista del seudoprograma principal, tanto la lectura del<br />

ángulo a, como la expresión tang<strong>en</strong>te de a y la acción Escribir el valor de t,<br />

con dos decimales son abstractas: se ignora su particular modo de operar. Por<br />

otra parte, al no estar predefinidas, es necesario concretarlas, usando recursos<br />

del l<strong>en</strong>guaje (predefinidos o añadidos por el programador), para que puedan ser<br />

ejecutadas.<br />

Como se puede ver, resulta útil empezar utilizando acciones o expresiones<br />

abstractas, aun sin estar definidas todavía. En principio, basta con saber qué<br />

ti<strong>en</strong>e que hacer (o calcular) cada acción (o expresión) abstracta e introducir un<br />

nombre adecuado para ellas, por ejemplo<br />

LeerGrados(a);<br />

t:= TanGrados(a);<br />

EscrDosDec(t)<br />

1 En la pres<strong>en</strong>tación de estos primeros ejemplos seguiremos un proceso de refinami<strong>en</strong>to, pero<br />

sin detallar las especificaciones, para no <strong>en</strong>torpecer la exposición de los cont<strong>en</strong>idos del capítulo.

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

Saved successfully!

Ooh no, something went wrong!