program DriverGrafiEtichettati;
const
NumNodi = 10;
type
TipoEtichettaArco = real;
TipoEtichettaNodo = integer;
TipoNomeFile = string[128];
const
ArcoNonEsiste = 0.0;
var
nome_file : TipoNomeFile;
grafo : TipoGrafoEtic;
etichetta : TipoEtichettaArco;
i, j : TipoNodo;
scelta : char;
begin
InitGrafoEtic(grafo);
repeat
writeln('Opzioni:');
writeln('Inizializza Grafo : 0');
writeln('Test esistenza arco : 1');
writeln('Inserisci arco : 2');
writeln('Elimina arco : 3');
writeln('Etichetta arco : 4');
writeln('---------------------------');
writeln('Stampa grafo su schermo : 5');
writeln('Leggi grafo da file : 6');
writeln('Scrivi grafo su file : 7');
writeln('---------------------------');
writeln('FINE : F');
write('Scelta: ');
readln(scelta);
case scelta of
'0' : InitGrafoEtic(grafo);
'1' : begin
write('Esistenza. Scrivere Arco i j da testare: ');
readln(i,j);
if TestEsisteArcoEtic(grafo,i,j) then
writeln('Arco (', i, ',', j, ') esiste')
else
writeln('Arco (', i, ',', j, ') NON esiste')
end;
'2' : begin
write('Inserimento. Scrivere Arco i j etichetta da inserire: ');
readln(i,j,etichetta);
InserArcoEtic(grafo,i,j,etichetta)
end;
'3' : begin
write('Eliminazione. Scrivere Arco i j da eliminare: ');
readln(i,j);
ElimArcoEtic(grafo,i,j)
end;
'4' : begin
write('Etichetta. Scrivere Arco i j di cui si vuole etichetta: ');
readln(i,j);
EtichettaArco(grafo,i,j,etichetta);
write('Etichetta di ', i, '->', j, ' ', etichetta:5:2)
end;
'5' : StampaGrafoEtic(grafo);
'6' : begin
write('Scrivi il nome del file di ingresso: ');
readln(nome_file);
LeggiGrafoEticDaFile(grafo,nome_file)
end;
'7' : begin
write('Scrivi il nome del file di uscita: ');
readln(nome_file);
ScriviGrafoEticSuFile(grafo,nome_file)
end;
end;
writeln;
writeln('[invio]');
readln;
until (scelta = 'F') or (scelta = 'f')
end.