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.

348 Capítulo 16. Punteros<br />

var<br />

angulo, distancia: real;<br />

orig<strong>en</strong>: tPunto;<br />

pDestino: tApPunto;<br />

function Destino(orig: tPunto; ang, dist: real): tApPunto;<br />

var<br />

pPun: tApPunto;<br />

begin<br />

New(pPun);<br />

pPun^.x:= orig.x + dist * Cos(ang);<br />

pPun^.y:= orig.y + dist * Sin(ang)<br />

Destino:= pPun<br />

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

begin<br />

Write(’Introduzca la x y la y del punto orig<strong>en</strong>: ’);<br />

ReadLn(orig<strong>en</strong>.x, orig<strong>en</strong>.y);<br />

Write(’Introduzca el rumbo y la distancia: ’);<br />

ReadLn(angulo, distancia);<br />

pDestino:= Destino(orig<strong>en</strong>, angulo, distancia);<br />

WriteLn(’El punto de destino es:’);<br />

WriteLn(’X = ’, pDestino^.x:20:10,’ Y = ’, pDestino^.y:20:10)<br />

<strong>en</strong>d. {Salto}<br />

La idea más importante de este programa estriba <strong>en</strong> que la función devuelve<br />

un valor de tipo puntero, que es un tipo simple, y por lo tanto correcto, como<br />

resultado de una función. Sin embargo, la variable refer<strong>en</strong>ciada por el puntero<br />

es estructurada, y almac<strong>en</strong>a las dos coord<strong>en</strong>adas del punto de destino. Mediante<br />

esta estratagema, conseguimos obt<strong>en</strong>er un resultado estructurado de una función.<br />

16.3 Ejercicios<br />

1. Implem<strong>en</strong>tar algún algoritmo de ord<strong>en</strong>ación de registros (por ejemplo, fichas<br />

de alumnos), mediante un array de punteros, tal como se propone <strong>en</strong> el apartado<br />

16.2.1.<br />

2. Complete los tipos de datos apropiados para que sea correcta la sigui<strong>en</strong>te instrucción:<br />

for i:= 1 to n do begin<br />

New(p);<br />

p^:= i<br />

<strong>en</strong>d {for}

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

Saved successfully!

Ooh no, something went wrong!