A beneficio di tutti gli utenti del Forum pubblico la soluzione del problema.
codice:
program ScritturaDiUnaListaSimmetrica(input,output);
label 99;
const bell=07;
type punt=^elem;
elem= record
val: integer;
back : punt;
next : punt;
end;
var p,q : punt;
m : integer;
procedure LeggiEScriviLista( var p,q : punt; k : integer);
begin
if k=0
then p:=nil
else begin
new(p);
read(p^.val);
write(p^.val,' ');
new(q);
read(q^.val);
p^.back:=q;
write(q^.val,' ');
LeggiEScriviLista(q,p^.back,k-1);
end;
end;{ Fine procedura LeggiEScriviLista }
{ Corpo del programma }
begin
writeln('------------------------- Dati di ingresso --------------------------');
writeln;
write('Fornire la lunghezza della lista: ');
readln(m);
writeln;
if m>=20 then begin
writeln(chr(bell),'Errore nei dati di ingresso!- STOP -');
goto 99;
end
else begin
writeln('Fornire la lista: ');
writeln;
LeggiEScriviLista(q,p,m);
end;
99 :
readln;
end.
Grazie a Tutti.