09.05.2013 Views

Programación en Pascal

Programación en Pascal

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.

VAR id<strong>en</strong>tificador : tipomatrizdefinida<strong>en</strong>TYPE;<br />

Si hay un único subrango t<strong>en</strong>emos un array unidim<strong>en</strong>sional o vector. Si exist<strong>en</strong> varios, un array<br />

multidim<strong>en</strong>sional.<br />

Un elem<strong>en</strong>to de un array puede ser utilizado <strong>en</strong> cualquier lugar donde se pueda poner una<br />

variable, la sintaxis para acceder es:<br />

id<strong>en</strong>tificador[expresión]<br />

las expresiones deb<strong>en</strong> coincidir con los valores permitidos del array correspondi<strong>en</strong>tes.<br />

Aunque un array debe ser pasado por valor <strong>en</strong> un subprograma siempre que no vaya a ser<br />

modificado, es preferible hacerlo por variable o refer<strong>en</strong>cia.<br />

Ejemplos de arrays:<br />

En nuestro caso hemos decidido definir tanto un punto como un polígono mediante arrays de la<br />

sigui<strong>en</strong>te forma:<br />

TYPE<br />

TipoPunto = array [0..1] of real;<br />

TipoPoligono = array [0..MAX_PUNTOS_POLIGONO-1] of TipoPunto;<br />

Pero recordar, esto sólo es la definición de los datos. Para poder utilizarlos se debe hacer<br />

mediante la declaración de una varialble:<br />

VAR<br />

a,b,c:TipoPunto;<br />

Ahora pued<strong>en</strong> operarse con a, b y c;<br />

AreaTriangulo2 := (a[0]*b[1]-a[1]*b[0] +<br />

b[0]*c[1]-b[1]*c[0] +<br />

c[0]*a[1]-c[1]*a[0]) ;<br />

Por supuesto también podemos hacer cosas como :<br />

a[0]:=3;<br />

b[1]:=5*a[1]-8;<br />

write (a[1]);<br />

readln( b[0]);<br />

{etcétera}<br />

La definición de TipoPolígono es algo más cojmpleja porque se trata de una matriz<br />

bidim<strong>en</strong>sional:<br />

x y<br />

Como ejemplo de uso, el sigui<strong>en</strong>te código lee una serie de puntos de teclado para formar un<br />

polígono:<br />

TYPE x=0; y=1;<br />

...<br />

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

begin<br />

write('P[',i,',x]= '); read(p[i,x]);<br />

write('P[',i,',y]='); readln(p[i,y]);<br />

4

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

Saved successfully!

Ooh no, something went wrong!