EX_: DE UMA Lista Ordenada
Lista Ordenada
-----------------------------------------------------------------------------------
Program
lista_ordenada ;
type dados=record
nome:string[15];
prox:^dados;
end;
var px,pi:^dados;
escolha,y:char;
----------------------------------------------------------------------------------
procedure inserir;
Begin
new(px);
writeln('Introduza um nome :');
readln(px^.nome);
px^.prox:=pi;
pi:=px
end;
procedure listar;
begin
if pi=nil
then
writeln('Lista vazia')
else
while
px<>nil do
begin
writeln('Nome : ',
px^.nome);
px:=px^.prox;
end;
end ;
---------------------------------------------------------------------------------
procedure ordenar;
var p1,p2:^dados;
aux:string[15];
trocar:boolean;
begin
p1:=pi;
p2:=pi^.prox;
if p1=nil
then
writeln('Lista vazia')
else
if
p2=nil then
writeln(px^.nome)
else
while
trocar=false do
begin
trocar:=false;
p1:=pi;
p2:=pi^.prox;
repeat
begin
if
(p1^.nome>p2^.nome)then
begin
trocar:=true;
aux:=p1^.nome;
p1^.nome:=p2^.nome;
p2^.nome:=aux;
end;
p1:=p1^.prox;
p2:=p2^.prox;
end;
until
p2<>nil;
end;
end;
-----------------------------------------------------------------------------------------
begin //
Programa Principal
repeat
writeln('Selecione a opção pretendida :');
writeln;
writeln('1- Para introduzir dados');
writeln('2- Para listar dados');
writeln('3- Para ordenar dados');
writeln;
writeln('Qual a opção pretendida?');
readln(escolha);
case escolha of
'1': inserir;
'2': listar;
'3': ordenar;
end;
writeln;
writeln('Deseja continuar?(S\N)');
readln(y);
until
(y='n');
End.
Sem comentários:
Enviar um comentário