program Problema2;
type
tabella = ^elemento_tabella;
elemento_tabella = record
info : integer;
riga, colonna : integer;
next : tabella;
end;
var
nomefile : string;
table, lista : tabella;
elim : integer;
procedure StampaLista (l: tabella);
begin
while l <> NIL do
begin
write(l^.info:4, l^.riga:3,l^.colonna:2, ' * ');
l := l^.next;
end;
writeln;
end;
procedure CancellaLista (var l: tabella);
var
paux : tabella;
begin
while l <> NIL do
begin
paux := l;
l := l^.next;
dispose(paux);
end;
end;
begin
writeln;
writeln('--- Inizio programma ---');
writeln;
writeln('Memora disponibile all''inizio del programma :', memavail);
writeln;
write('Nome del file contenente la tabella? ');
readln(nomefile);
writeln;
writeln('CHIAMATA procedura Esercizio2');
Esercizio2(table,nomefile);
write('Tabella letta: ');
StampaLista(table);
writeln;
write ('Inserire un valore per ELIM : ');
readln(elim);
writeln;
writeln('CHIAMATA procedura Esercizio3');
Esercizio3 (lista, table, elim);
writeln('Lista degli elementi con somma indice riga e colonna pari a ELIM ');
StampaLista (lista);
writeln('Tabella dopo l''esecuzione della procedura Esercizio3');
StampaLista(table);
writeln;
CancellaLista(table);
CancellaLista(lista);
writeln('Memora disponibile alla fine del programma :', memavail);
writeln;
writeln('--- Fine programma, premere return ---');
readln;
end.