O programa permite incluir um registro de carro ordenadamente em um arquivo. Ele lê os dados do novo carro, verifica se o mesmo já está cadastrado ou insere em ordem alfabética de placa no arquivo.
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Algoritmos - Inclusão Ordenada em Arquivos
1. INCLUSÃO ORDENADA
program inclui_ordenado;
uses crt;
type carro = record
placa : string
marca : string
ano : integer
end;
frota = file of carro;
var
detran : frota;
carros : carro;
placa : string;
marca : string;
p, ano, k, i, posicao : integer;
achou : boolean;
begin
clrscr;
assign(detran, ‘carros.dat’);
reset(detran);
k := filesize(detran);
writeln(‘digite a placa a ser incluída’);
readln(placa);
writeln(‘digite a marca a ser incluída’);
readln(marca);
writeln(‘digite o ano a ser incluído’);
readln(ano);
while( (ano<0) or (ano>2012) ) do
readln(ano); //fim do while
if(k=0) then
begin
carros.placa := placa;
carros.marca := marca;
carros.ano := ano;
write(detran, carros);
writeln(‘carro incluído’);
end //fim do if
else
begin
i := 0;
achou := false;
posicao := 0;
reset(detran);
while(i<=(k-1)) do
2. begin
read(detran, carros);
if(carros.placa=placa) then
begin
achou := true;
i := k+2;
end //fim do if
else
begin
if(placa<carros.placa) then
begin
posicao := filepos(detran)-1;
i := k+2;
end //fim do if
else
begin
i := i+1;
seek(detran, i);
end; //fim do else
end; //fim do else
end; //fim do while
if(achou=true) then
begin
writeln(‘Este carro já está cadastrado’);
end //fim do if
else
begin
if(i=filesize(detran)) then
begin
seek(detran, filesize(detran));
carros.placa := placa;
carros.marca := marca;
carros.ano := ano;
write(detran, carros);
writeln(‘Carro Incluído’);
end //fim do if
else
begin
p := filesize(detran)-1;
while(p>=posicao) do
begin
seek(detran, p);
read(detran, carros);
write(detran, carros);
p := p-1;
end; //fim do if
seek(detran, posicao);
carros.placa := placa;
carros.marca := marca;
carros.ano := ano;