Programación en Pascal
Programación en Pascal
Programación en Pascal
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