program puntlist;
uses
crt;
type
string8 = string[8];
punteroejemp = ^ejemplo;
ejemplo = record
nombre : string;
fecha : string8;
sig : punteroejemp;
end;
var
tec, tecla : char;
prime, anter, actu : punteroejemp;
procedure entramosdatos;
var
tre : char;
begin
new(actu);
with actu^ do
begin
write(' Monbre : ');
readln(nombre);
write(' Fecha [xx:xx:xx] : ');
readln(fecha);
end;
end;
procedure insertaizquierda(entrada : punteroejemp);
var
pt : punteroejemp;
begin
new(pt);
pt := entrada;
pt^.sig := prime;
prime := pt;
end;
procedure insertaderecha(entrada : punteroejemp);
var
pt : punteroejemp;
begin
new(pt);
pt := entrada;
actu^.sig := pt;
pt^.sig := nil;
actu := pt;
end;
procedure insertacomo;
begin
writeln('Insertar [I] = Izquierda [D] = Derecha');
repeat
tecla := upcase(readkey);
until tecla in['I','D'];
if tecla = 'I' then
begin
insertaizquierda(actu);
end;
if tecla = 'D' then
begin
insertaderecha(actu);
end;
end;
procedure sacadatos;
var
ver : punteroejemp;
begin
ver := prime;
while ver <> nil do
begin
with ver^ do
writeln(Nombre,' ',Fecha);
ver := ver^.sig;
end;
writeln;
end;
begin
clrscr;
prime := nil;
repeat
writeln('Final Pulse [S]');
tec := upcase(readkey);
if tec <> 'S' then
begin
entramosdatos;
insertacomo;
end;
until tec = 'S';
clrscr;
sacadatos;
readkey;
if actu <> nil then
dispose(actu);
end.