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.

8.1. Introducción 159<br />

De esta forma, se puede proceder al diseño g<strong>en</strong>eral del algoritmo <strong>en</strong> ese nivel<br />

posponi<strong>en</strong>do el desarrollo de cada acción abstracta. Cuando, más tarde, se<br />

concret<strong>en</strong> sus detalles, el l<strong>en</strong>guaje de programación se habrá ampliado (<strong>en</strong> el<br />

ámbito de nuestro programa, véase el apartado 8.5) con esta acción o expresión,<br />

legitimando <strong>en</strong>tonces su uso.<br />

En <strong>Pascal</strong>, una acción se introduce mediante un procedimi<strong>en</strong>to. Por ejemplo,<br />

la lectura del ángulo se puede hacer así:<br />

procedure LeerGrados(var angulo: real);<br />

begin<br />

Write(’¿ángulo <strong>en</strong> grados?: ’);<br />

ReadLn(angulo);<br />

<strong>en</strong>d; {LeerGrados}<br />

En <strong>Pascal</strong>, una expresión abstracta se introduce mediante una función. En<br />

nuestro ejemplo, vamos a crear una función IR → IR, a la que llamaremos<br />

TanGrados, que recibe un argum<strong>en</strong>to real, lo pasa a radianes y devuelve el valor<br />

de la tang<strong>en</strong>te, calculado a partir de las funciones predefinidas Sin y Cos: 2<br />

function TanGrados(angSexa: real): real;<br />

{Dev. la tang<strong>en</strong>te de angSexa, <strong>en</strong> grados}<br />

const<br />

Pi = 3.141592;<br />

var<br />

angRad: real;<br />

begin<br />

{Conversión de grados <strong>en</strong> radianes:}<br />

angRad:= angSexa * Pi/180;<br />

{Cálculo de la tang<strong>en</strong>te:}<br />

TanGrados:= Sin(angRad)/Cos(angRad)<br />

<strong>en</strong>d; {TanGrados}<br />

Ahora, la asignación de t <strong>en</strong> el programa principal definitivo:<br />

t:= TanGrados(a)<br />

es válida.<br />

Finalm<strong>en</strong>te, <strong>en</strong> nuestro ejemplo utilizaremos otro procedimi<strong>en</strong>to al que llamaremos<br />

EscrDosDec, que recibe un valor de tipo real y lo muestra con dos<br />

decimales.<br />

2 En adelante emplearemos Dev. como abreviatura de Devuelve <strong>en</strong> las especificaciones de las<br />

funciones.

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

Saved successfully!

Ooh no, something went wrong!