Pagina anteriorIndiceProxima pagina

Algoritmos Computacionais

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


Pagina anteriorIndiceProxima pagina

araujo@eng.uerj.br