Program Grava_Inteiros;
Uses
  Crt;

Const
  Max=10;

Type
  Reg_Aluno = Record
                Nome:string[30];
                Nota1:real;
                Nota2:real;
                Media:real;
              end;

Var
  ArqReg: File of Reg_Aluno;
  Tabela: Array [1..Max] of Reg_Aluno;
  cont  : integer;

Begin
  clrscr;

  { Leitura dos dados }
  writeln('>> Entrada de dados <<');
  for cont:=1 to Max
  do begin
       writeln('Aluno nro.',cont,': ');
       write('Nome: ');
       readln(Tabela[cont].nome);
       write('Nota1: ');
       readln(Tabela[cont].nota1);
       write('Nota2: ');
       readln(Tabela[cont].nota2);
       Tabela[cont].media:= (Tabela[cont].nota1 + Tabela[cont].nota2)/2.0;
     end;
  writeln;

  { Grava em disco }
  writeln('>> Grava‡Æo dos dados <<');
  assign(ArqReg,'ArqReg.bin');
  rewrite(ArqReg);
  for cont:=1 to Max
  do write(ArqReg,Tabela[cont]);
  close(ArqReg);

  writeln;
  writeln('=> Pressione uma tecla para continuar...');
  readkey;

  { Limpa tudo... }
  clrscr;
  for cont:=1 to Max
  do begin
       Tabela[cont].nome:='';
       Tabela[cont].nota1:=0.0;
       Tabela[cont].nota2:=0.0;
     end;

  { Leitura do disco }
  writeln('>> Leitura dos dados <<');
  assign(ArqReg,'ArqReg.bin');
  reset(ArqReg);
  for cont:=1 to Max
  do begin
       read(ArqReg,Tabela[cont]);
       writeln('Nome : ',Tabela[cont].nome);
       writeln('Nota1: ',Tabela[cont].nota1:2:2);
       writeln('Nota2: ',Tabela[cont].nota2:2:2);
       writeln('M‚dia: ',Tabela[cont].media:2:2);
       if Eof(ArqReg)
       then writeln('Fim do arquivo!')
       else writeln;
     end;
  close(ArqReg);

  readln;
end.

