Array/es
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Un array es un tipo (type) que agrupa un número de variables del mismo tipo. Se los llama vectores, arreglos o matrices (unidimensionales). Ejemplos son un array of char, un array of integer, y un array of real. De hecho, cualquier tipo, incluyendo tipos definidos por el usuario, se pueden usar en un vector. De todos modos, los elementos de un vector son siempre del mismo tipo. No se pueden agrupar en un vector diferentes tipos. Para ese propósito ver records.
Los arrays reflejan el concepto matemático de
- vectores (una matriz unidimensional) y
- matrices (matriz de dos o más dimensiones))
Vectores estáticos
La declaración funciona de forma similar a la de los tipos simples, pero es necesario agregar el número de elementos a través de un intervalo de índices, así como el tipo de elemento del vector o matriz.
program
...
var
nombredelavariable : array [indiceinicial..indicefinal] of type;
begin
...
indiceinicial debe ser menor o igual a indicefinal, y ambos deben resolverse a una constante de enteros, ya sea un valor entero o un valor const que sea un entero. Cualquiera o ambos números pueden ser negativos o cero.
Vector o matriz de una dimensión
Ejemplo de vector unidimensional:
type
vector_de_enteros = array [1..10] of integer;
var
Numeros: vector_de_enteros;
Vectores multidimencionales o matrices
Se admiten Multidimensional arrays como [x..y, z..t] y así sucesivamente.
Ejemplo de matriz:
type
matriz = array [0..5, 1..3] of extended;
var
matriz_dos_dimensiones: matriz;
Vectores dinámicos
Si no es posible conocer el número exacto de elementos necesarios del vector o matriz en tiempo de diseño, se puede utilizar el tipo dynamic array. Una matriz dinámica puede crecer o reducirse en tamaño durante la ejecución del programa.
Acceso a los elementos
Para acceder al elemento de un vector debe indicarse el índice entre corchetes [] después del nombre de la variable del tipo array. Luego ese elemento puede utilizarce como una variable común.
Var
vector : array [1..3] of Integer;
matriz : array[1..5,1..5] of Integer;
unvalor : Integer;
...
begin
vector[2] := 4 + 2;
matriz[2,3] := 7;
...
unvalor := vector[2]; // 6
unvalor := matriz[2,3]; // 7
end.
Vectores literales
Hay dos formatos que se utilizan para vectores o arreglos literales, dependiendo del lugar donde se utilicen. En la sección de declaración de variables, se puede inicializar un vector estático (no es posible hacerlo con dynamic arrays) con una serie de valores entre paréntesis. En un bloque instrucciones es posible crear un vector anónimo con una serie de valores entre corchetes. Por ejemplo:
Var
// inicializar un vector estático de enteros vía vector literal
Numeros : array [1..3] of Integer = (1, 2, 3);
procedure ImprimirVector(entrada : array of String);
var
i : integer;
begin
for i := 0 to length(entrada)-1 do
write(entrada[i],' ');
writeln;
end;
begin
Writeln( Numeros[2] ); // 2
// crear tres elementos de vector de cadenas anónimas mediante un vector literal
ImprimirVector( ['uno', 'dos', 'tres'] );
end.
Resultados:
2 uno dos tres
simple data types |
|
---|---|
complex data types |