29/05/12 17:05
fabioser
Salve a tutti amici del forum. Ho il seguente problema da risolvere riguardo alla scrittura di una lista simmetrica in Pascal. La procedura da me elaborata infatti mi stampa la lista intera solo se è composta da un numero pari di cifre altrimenti me la tronca all'ultimo elemento. C'è qualcuno di voi che è in grado di suggerirmi dove sbaglio? ecco il codice:
Ringraziandovi sin da ora per la collaborazione vi saluto. Ciao!
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); new(q); read(q^.val); p^.back:=q; write(p^.val,' '); write(q^.val,' '); LeggiEScriviLista(p^.back,q,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 write('Fornire la lista: '); LeggiEScriviLista(p,q,m); end; 99 : readln; end.
Ringraziandovi sin da ora per la collaborazione vi saluto. Ciao!
aaa