Vectores
Un arreglo est� formado por un n�mero fijo de elementos cont�guos de un mismo
tipo. Al tipo se le llama tipo base del arreglo. Los datos individuales se
llaman elementos del arreglo.
Para definir un tipo estructurado arreglo, se debe especificar el tipo base
y el n�mero de elementos.
Un array se caracter�za por :
Almacenar los elementos del array en posiciones de memoria cont�nua
Tener un �nico nombre de variable que representa a todos los elementos,
y �stos a su vez se diferenc�an por un �ndice o sub�ndice.
Acceso directo o aleatorio a los elementos individuales del array.
Los arrays se clasifican en :
- Unidimensionales (vectores o listas)
- Multidimensionales ( tablas o matrices)
El formato para definir un tipo array es :
nombre_array = array [tipo sub�ndice] of tipo
nombre_array identificador v�lido
tipo sub�ndice puede ser de tipo ordinal:
boolean o char, un tipo
enumerado o un tipo subrango.
Existe un elemento por cada
valor del tipo sub�ndice
tipo describe el tipo de cada elemento
del vector; todos los elementos
de un vector son del mismo tipo
Las variables de tipo array se declaran en la secci�n Var o Type.
Declaraci�n en Var:
Var
nombres : array[1..30] of string[30];
calif : array[1..30] of real;
numero : array[0..100] of 1..100;
Declaraci�n en Type:
Type
nombres : array[1..30] of string[30];
calif : array[1..30] of real;
numero : array[0..100] of 1..100;
Var
nom : nombres;
califica : calif;
num : numero;
Arrays Unidimensionales
Un array de una dimensi�n (vector o lista) es un tipo de datos estructurado compuesto
de un n�mero de elementos finitos, tama�o fijo y elementos homog�neos.
Supongamos que desea conservar las edades de 10 personas. Para almacenar estas
edades se necesita reservar 10 posiciones de memoria, darle un nombre al array,
y a cada persona asignarle su edad correspondiente.

Nombre del vector edades
Sub�ndice [1],[2],...
Contenido edades[2]= 28
Ejemplo:
Program Vector_edades;
{El siguiente programa captura 20 edades
y las muestra en forma ascendente por medio
de arrays}
Uses Crt;
Const
MaxPersonas = 10;
Var
edades : array [1..MaxPersonas] of byte;
i,j,paso : byte;
begin
ClrScr;
{lectura de array}
for i:=1 to MaxPersonas do
begin
gotoxy(10,5);
ClrEol;
Write('Edad de la ',i,' persona : ');
ReadLn(edades[i])
end;
{ordenaci�n}
for i:=1 to MaxPersonas-1 do
begin
for j:=i+1 to MaxPersonas do
begin
if edades[i]>edades[j] then
begin
paso :=edades[i];
edades[i]:=edades[j];
edades[j]:=paso
end
end;
WriteLn(edades[i]) {escritura del array}
end;
Readkey
end.
Arrays Paralelos
Dos o m�s arrays que utilizan el mismo sub�ndice para referirse a t�rminos
hom�logos se llaman arrays paralelos.
Basados en el programa anterior se tienen las edades de 'x' personas, para
saber a que persona se refiere dicha edad se puede usar otro arreglo en forma
paralela y asociarle los nombres de manera simult�nea con las edades.

Ejemplo:
Program Paralelo_edades;
{El siguiente programa captura 10 edades
y nombres por medio de arrays paralelos y
los muestra ordenados en forma ascendente}
Uses Crt;
Const
MaxPersonas = 10;
Var
edades :array [1..MaxPersonas] of byte;
nombres :array [1..MaxPersonas] of string [10];
aux_nom :string[10];
i,j,aux_edad :byte;
begin
ClrScr;
{lectura de arrays paralelos de manera simult�nea}
for i:=1 to MaxPersonas do
begin
gotoxy(10,5);
ClrEol;
Write(i,'.- Nombre : ','Edad : ');
gotoxy(23,5);ReadLn(nombres[i]) ;
gotoxy(48,5);ReadLn(edades[i])
end;
{ordenaci�n}
for i:=1 to MaxPersonas-1 do
begin
for j:=i+1 to MaxPersonas do
begin
if edades[i]>edades[j] then
begin
aux_edad :=edades[i];
edades[i] :=edades[j];
edades[j] :=aux_edad;
aux_nom :=nombres[i];
nombres[i]:=nombres[j];
nombres[j]:=aux_nom
end
end;
WriteLn(nombres[i]:10,' ',edades[i]:3)
{escritura de los arrays paralelos}
end;
Readkey
end.
|