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.

346 Capítulo 16. Punteros<br />

(x,y)<br />

pDestino<br />

dist*Sin(ang)<br />

« angulo<br />

distancia<br />

dist*Cos(ang)<br />

Figura 16.6.<br />

La ord<strong>en</strong>ación de vectores de elem<strong>en</strong>tos grandes es un problema <strong>en</strong> el que la<br />

aplicación mostrada demuestra su utilidad. Por ejemplo, la definición<br />

type<br />

tListaAlumnos = array [1..100] of tFicha;<br />

se puede sustituir por un array de punteros,<br />

type<br />

tListaAlumnos = array [1..100] of tApFicha;<br />

de este modo la ord<strong>en</strong>ación se realizará de una manera mucho más rápida, debido<br />

es<strong>en</strong>cialm<strong>en</strong>te al tiempo que se ahorra al no t<strong>en</strong>er que copiar literalm<strong>en</strong>te todas<br />

las fichas que se cambian de posición.<br />

16.2.2 Funciones de resultado no simple<br />

Esta aplicación ti<strong>en</strong>e la misma base que la anterior, cambiar el objeto por<br />

el puntero al mismo. A continuación vemos un s<strong>en</strong>cillo ejemplo <strong>en</strong> el que se<br />

aprovecha esta característica.<br />

Supongamos, por ejemplo, que hemos de definir un programa que, dado un<br />

punto del plano, un ángulo y una distancia, calcule un nuevo punto, alcanzado<br />

al recorrer la distancia según el rumbo dado, según la figura 16.6.<br />

Una primera aproximación al diseño del programa podría ser la sigui<strong>en</strong>te:<br />

Lectura de datos: punto base, distancia y ángulo<br />

Cálculo del punto final<br />

Escritura de resultados<br />

Naturalm<strong>en</strong>te, <strong>en</strong> primer lugar se deb<strong>en</strong> definir los tipos, constantes y variables<br />

que se usarán <strong>en</strong> el programa: se definirá un tipo tPunto como un registro

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

Saved successfully!

Ooh no, something went wrong!