|
10.2 Array
Corresponde a um vetor ou matriz. Cada componente
é acessado através de um índice. Todos os componentes
são de um mesmo tipo.
Diagrama Sintático
-
O índice
pode ser qualquer tipo (exceto real), ou o nome de um tipo já declarado
como subrange.
-
Cada componente do array pode ser usado como
qualquer variável de mesmo tipo.
Ex.:
Type
Dia_de_semana = (dom, seg, ter, qua,
qui, sex, sab);
Letras = ‘A’..’Z’
Vet1 = array
[1..40..] of char;
Vet2 = array
[letras] of char;
Vet3 = array
[seg..sex] of real;
Var
NOME, ENDEREÇO: Vet1;
ou
NOME, ENDEREÇO: array
[1..40] of char;
FATURA: Vet3;
ou
FATURA: array
[seg..sex] of real;
ACUMULA, ESTATÍSTICA: Vet2;
Program AULA;
Var
VET: array
[1..10] of integer;
VET2: array
[1..10] of array [1..100] of
array [‘a’..’z’] of char;
A: integer;
B: char;
Begin
A:=VET[2]+VET[3];
B:=VET[2][50][‘c’];
End. |
Operações como um todo
Var
VET_A: array
[1..10] of integer;
VET_B: array
[1..10] of integer;
Begin
VET_A:=VET_B {copia todos
os elementos do array}
End.
Alguns tipos de PASCAL aceitam a comparação
de todo o array. A comparação de igualdade é suportada
apenas por alguns compiladores.
Ex.:
If VET_A=VET_B
Then... {igualdade de arrays}
Pode-se calcular o índice de um elemento
A:= 3;
Valor:= VET1[ 1 +
2*A];
-
Um Array pode possuir várias dimensões
(Matriz )
-
Cada elemento de um Array pode ser outro Array.
Ex
Type
Coluna = Array
[1..3] of Integer;
Var
Matriz: Array
[1..4] of Coluna;
Ou Matriz: Array
[1..4] of Array [1..3] of
Integer;
Ou Matriz: Array
[1..4,1..3] of Integer;
Referência aos elementos:
MATRIZ [ I, J] ou Matriz [ I][ J]
Ex.:
Var
B: Array
[1..10] of Real;
A: Array
[1..3,1..10] of Real;
Indice, Indice2:
Integer;
Begin
B[3]:= 4.0;
A[3,4]:= 1.0;
I:= 1;
J:= 2;
B[I]:= A [I, J] + 5.7 + B[I+2];
End. |
Array de caracteres
-
representa uma STRING (cadeia de caracteres)
-
pode-se comparar duas strings de mesmo tamanho
levando-se em conta a ordem dos caracteres no alfabeto
Ex.:
‘A’<’B’ ‘A’ <
’a’
‘CASA’ > ’ALTO’
Const
Nome =’PASCAL’
Type
String = array
[1..6] of char;
Var
CADEIA: string;
Begin
CADEIA:=’PROLOG’;
If
CADEIA>nome Then
writeln (nome)
Else
writeln (CADEIA);
End. |
|