Em sua forma elementar, o tipo array é utilizado para armazenar, sob um mesmo nome de variável, uma quantidade fixa de elementos do mesmo tipo. Por isto, o tipo array também é conhecido como um arranjo homogêneo. Para formas de uso mais complexas recomendamos a leitura do guia de referência da linguagem.
A declaração de uma variável do tipo array é feita assim:
array [<lista de tipos enumeraveis>] of <tipo>
onde <tipo> é qualquer tipo previamente definido pelo programador ou pré-definido pela linguagem, e <lista de tipos enumeraveis> é uma lista de faixas de números separadas por vírgula.
Por restrição dos tipos enumeráveis, os valores devem ser do tipo ordinal e conhecidos em tempo de compilação.
Os casos mais comuns de arrays são de uma e de duas dimensões, embora possam ser declaradas com dimensões maiores. As de uma única dimensão são costumeiramente denominadas vetores, as de duas dimensões são chamadas de matrizes.
Exemplos:
program tipo_array_1; const MAX = 10; MIN=-5; var // exemplos de vetores alunos: array[MIN..MAX] of string; notas: array[1..3] of integer; dados: array[0..MAX-1] of real; // exemplos de matrizes tabela: array[MIN..MAX, 1..10] of real; tabuleiro: array[1..3,1..MAX+1] of integer; dados: array[0..MAX-1,MIN..MAX] of real; // exemplos de array de dimensao 3 cubo: array[MIN..MAX, 1..10, 0..50] of real; end.
Para se acessar o conteúdo de um vetor deve-se usar o nome da variável e um indexador do tipo ordinal entre colchetes.
Exemplos:
alunos[2]:= 'Fulano de Tal'; notas[1]:= 95; read(dados[9]); tabela[1,5]:= 0.405; write(tabuleiro[2,1]); read(dados[0,0]); cubo[1,2,3]:= PI-1;
Tentar acessar um índice fora da faixa definida no tipo enumerável pode gerar erro de execução no programa, dependendo do compilador. O Free Pascal não faz este teste e deixa por conta do programador, que, supõe-se, sabe o que está fazendo (mas nem sempre é verdade).
O compilador não aceita que se passe o tipo array como parâmetro em funções e procedimentos, por isto normalmente o programador deve declarar um novo tipo para o array.
Exemplo:
type vetor_de_reais = array [1..10] of real; var v: vetor_de_reais;
Vale ressaltar que o tipo string é uma forma especial de array de caracteres (char). Suponha uma palavra com 10 letras. Significa que esta string contém 10 caracteres. Para acessar cada caractere separadamente, utilize:
nome\_variavel[indice\_do\_caractere\_desejado].
O Free Pascal armazena o tamanho da string em nome\_variavel[0].
Exemplo:
var s: string; begin s := 'hello world!'; writeln (s[4]); // resultado eh a segunda letra L de hello. end.