Oppure

Loading
04/01/11 14:34
lucca
Salve a tutti,
ho un piccolo problema riguardo il tipo di una variabile nei doppi puntatori.
L'esecizio chiede di fare una tabella :

nexts nextd
|_____|_____|_____| ---> |__|__| ---> |__|__|
|
|
V
|__|__|__| ---> |__|__| ---> |__|__|
|
|
V
|__|__|__| ---> |__|__| ---> |__|__|

dove la prima colonna ha il compito di "collegare" la riga dove essa risiede e la riga successiva.

Solamente che c'è un piccolo problema non riesco a "collegare" il campo nextd con quello alla sua sinistra!!!!!!!Il compilatore, giustamente dice che sono tipi diversi. Ecco qui il lavoro:

const
  ncar=20;
type
  Tstringa=string[ncar];
  Tpunta1=^Tnodo;
  Tnodo=record
          nexts:Tpunta1;
          riga:byte;
          nextd:Tpunta1;
        end;
  Tpunta2=^Trec;
  Trec=record
         info:Tstringa;
         next:Tpunta2
       end;
var
  Testa1:Tpunta1;
  Testa2:Tpunta2;
procedure inserisci(var FTesta1:Tpunta1;var FTesta2:Tpunta2);
var
  p,t:Tpunta1;
  q:Tpunta2;
  risp,risposta:char;
begin
  new(p);
  FTesta1:=p;
    while risp='n' do
      begin
        while risposta='n' do
          begin
            new(q);
            FTesta2:=q;
            p^.nextd:=q;    ecco dove mi dice errore
            writeln('inserisci la lettera');
            readln(q^.info);
            writeln('inserire un''altra lettera? S\N');
            readln(risposta);
          end;
         new(t);
         p^.nexts:=t;
         p:=t;
         writeln('inserire una nuova riga? S\N');
         readln(risp);
      end;

P.S. Se ci sono altri errori ditemelo grazie


Aspetto da voi una risposta di correzione o miglioramento del codice, grazie.
Ultima modifica effettuata da lucca 04/01/11 14:50
aaa
04/01/11 14:40
a_butta
metti il codice tra i tag CODE
aaa
04/01/11 16:33
gigisoft
Salve,
da quel che ho capito dovresti mettere nel record TNodo la dichiarazione:

NextD: TPunta2


Ciao :k:

Luigi
aaa
05/01/11 17:26
lucca
ok grazie molte
aaa