Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted by ignacio vacca ( 15 years ago )
program entrega3;
const corte='nul';
Type
str=string[15];
pasajero= record
apellido:str;
nombre:str;
destino:str;
end;
l=^lista;
lista=record
dato:pasajero;
sig:l;
end;
{leer pasajero}
procedure leerpasajero (var r:pasajero);
begin
with r do begin
readln(apellido);
if (apellido<>corte) then begin
readln(nombre);
readln(destino);
end;
end;
end;
{agregar en la lista}
procedure agregar (r:pasajero; var pri,ult:l);
var
nue:l;
begin
new (nue);
nue^.sig := nil;
nue^.dato:= r;
if (pri = nil) then
pri := nue
else
ult^.sig := nue;
ult := nue;
end;
{agregar en la lista de manera ordenada}
procedure agregarordenado (r:pasajero;var pri:l);
var
nue,act,ult:l;
begin
new(nue);
nue^.dato:=r;
nue^.sig:=nil;
act:=pri;
ult:=pri;
while (act<>nil)and(act^.dato.apellido<nue^.dato.apellido) do begin
ult:=act;
act:=act^.sig;
end;
if (act=ult) then
pri:=nue
else
ult^.sig:=nue;
nue^.sig:=act;
end;
{proceso crear lista inciso a}
procedure crearlista (var pri:l);
var
r:pasajero;
ult:l;
begin
pri:=nil;
leerpasajero (r);
while (r.apellido<>corte) do begin
agregar(r,pri,ult);
leerpasajero (r);
end;
end;
{proceso lista ordenada}
procedure listaordenada (var first:l);
var
r:pasajero;
begin
first:=nil;
leerpasajero (r);
while (r.apellido<>corte) do begin
agregarordenado (r,first);
leerpasajero (r);
end;
end;
{proceso para imprimir en b y d}
procedure imprimir (lis:l);
begin
while (lis <> nil) do begin
writeln('Apellido: ',lis^.dato.apellido);
writeln('Nombre: ',lis^.dato.nombre);
writeln('Destino: ',lis^.dato.destino);
lis:=lis^.sig;
end;
end;
{programa principal}
var
pri:l;
begin
listaordenada (pri);
imprimir (pri);
readln;
readln;
end.
Revise this Paste