Instituto de Computação - UNICAMP

MC111 - Introdução ao Processamento de Dados

Laboratório 8: Vetores e Arquivos

Islene Calciolari Garcia

Primeiro semestre de 2002

O procedimento le, implementado abaixo, lê valores inteiros de um arquivo e os armazena em um vetor de inteiros sendo que a primeira linha do arquivo indica o número de elementos a serem lidos. O procedimento escreve escreve o conteúdo de um vetor em um arquivo de saída, também colocando na primeira linha o número de elementos do vetor.

Basendo-se no procedimento escreve, você deve implementar o procedimento intercala que intercala os elementos de dois vetores e os escreve em um arquivo de saída (veja o exemplo na outra página).

Em seguida, você deve implementar o procedimento casa, que dados dois vetores ordenados, escreve no arquivo de saída a união destes elementos formando uma única seqüência ordenada. Para simplificar, considere que os seus arquivos de entrada já contêm elementos ordenados.

program arq_vet;

const tam_vet   =  100;
type tipo_vetor = array [1..tam_vet] of integer;
     tipo_nome  = string[40]; 

procedure le(nome_arq: tipo_nome ; var vet: tipo_vetor; var n: integer);
var
   i        : integer;
   arq      : text;
begin
   assign(arq, nome_arq);
   reset (arq);
   readln(arq, n);
   if (n > tam_vet) then
      n := tam_vet;
   for i:= 1 to n do
      readln (arq, vet[i]);
   close(arq);
end; 

procedure escreve(nome_arq: tipo_nome; var vet: tipo_vetor; var n: integer);
var
   i        : integer;
   arq      : text;
begin
   assign(arq, nome_arq);
   rewrite(arq);
   writeln(arq, n);
   for i:= 1 to n do
      writeln (arq, vet[i]);
   close(arq);
end; 

procedure intercala (nome_arq : tipo_nome;
                     var vet1, vet2: tipo_vetor; n1, n2: integer);
...

procedure casa (nome_arq   : tipo_nome;
                var vet1, vet2 : tipo_vetor; n1, n2: integer);
...

var
   vet1, vet2 : tipo_vetor;
   n1, n2     : integer;
begin
   le('dados1.txt', vet1, n1);
   le('dados2.txt', vet2, n2);
   escreve('copia1.txt', vet1, n1);
   intercala('intercala.txt', vet1, vet2, n1, n2);
   casa ('casa.txt', vet1, vet2, n1, n2);
end.

Resolução parcial (o procedimento casa deve ser implementado no projeto 3)


Islene Calciolari Garcia