Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: