terça-feira, 29 de junho de 2010

programa_agenda;

program AGENDA_LISTA;
uses
Crt;
type
LISTA = ^DADOS;
DADOS = record
NOME : string;
{CEP : integer;}
CEP : string;
BAIRRO,
CIDADE,
ENDERECO,
ESTADO : string;
PROX : lista;
end;
var
AGEN_CAD, ATUAL, LIST_CAD : lista;
(*
REGISTRO : dados;
//nao esta sendo usada
*)
ENT_NOME : string;
{ENT_CEP : integer;}
ENT_CEP : string;
ENT_BAIRRO : string;
ENT_CIDADE : string;
ENT_ENDERECO : string;
ENT_ESTADO : string;
I, LINHA : longint;
resposta: char;
begin
I := 1;
AGEN_CAD := nil;
repeat
clrscr;
writeln('AGEN_CAD');
writeln;
new(AGEN_CAD);
writeln('Entre o ',I:4,'o. registro');
writeln;
write('Nome ..............:'); readln(ENT_NOME);
write('Endereco...........:'); readln(ENT_ENDERECO);
write('Bairro ............:'); readln(ENT_BAIRRO);
write('Cep ...............:'); readln(ENT_CEP);
write('Cidade.............:'); readln(ENT_CIDADE);
write('Estado.............:'); readln(ENT_ESTADO);
AGEN_CAD^.NOME := ENT_NOME;
AGEN_CAD^.ENDERECO := ENT_ENDERECO;
AGEN_CAD^.BAIRRO := ENT_BAIRRO;
AGEN_CAD^.CEP := ENT_CEP;
AGEN_CAD^.CIDADE := ENT_CIDADE;
AGEN_CAD^.ESTADO := ENT_ESTADO;
if (LIST_CAD=nil) or (ENT_NOME < LIST_CAD^.NOME) then
begin
AGEN_CAD^.PROX := LIST_CAD;
LIST_CAD := AGEN_CAD;
end
else
begin
ATUAL := LIST_CAD;
while (ATUAL^.PROX <> nil) and (ENT_NOME > ATUAL^.PROX^.NOME) do
ATUAL := ATUAL^.PROX;
AGEN_CAD^.PROX := ATUAL^.PROX;
ATUAL^.PROX := AGEN_CAD;
end;
I := I + 1;
writeln;
writeln('Deseja continuar? [S]im ou [N]ao: '); readln(resposta;
until (UpCase(resposta = 'N');
clrscr;
I := 1;
LINHA := 3;
gotoxy( 1, 1); write('Reg#');
gotoxy( 6, 1); write('Nome');
gotoxy(46, 1); write('Endereco');
gotoxy(61, 1); write('Bairro');
gotoxy(81, 1); write('Cep');
gotoxy(101,1); write('Cidade');
gotoxy(121,1); write('Estado');
while (LIST_CAD <> nil) do
begin
gotoxy( 1,LINHA); write(I:4);
gotoxy( 6,LINHA); write(LIST_CAD^.NOME);
gotoxy(46,LINHA); write(LIST_CAD^.ENDERECO);
gotoxy(61,LINHA); write(LIST_CAD^.BAIRRO);
gotoxy(81,LINHA); write(LIST_CAD^.CEP);
gotoxy(101,LINHA); write(LIST_CAD^.CIDADE);
gotoxy(121,LINHA); write(LIST_CAD^.ESTADO);
LIST_CAD := LIST_CAD^.PROX;
LINHA := LINHA + 1;
I := I + 1;
end;
readln; {pause antes de fechar}
end.

Nenhum comentário:

Postar um comentário