MODULE SantaClaus;
FROM InOut IMPORT Write, WriteString, WriteCard, WriteLn,
Done, ReadCard;
(* ... Deklarationen (siehe vorherige Folie) ... *)
PROCEDURE ReadMatrix(VAR matrix: DistanceMatrix;
VAR n: LocationIndex) : BOOLEAN;
(* Einlesen einer quadratischen Matrix, deren Groesse
zu Beginn noch nicht bekannt ist. Wir lesen solange
Zahlen ein, soweit ReadCard klappt (Done = TRUE)
und die Kapazitaet ausreicht. In n wird die
Groesse der Matrix abgelegt. Bei Misserfolg wird
eine Fehlermeldung ausgeben und FALSE
zurueckgeliefert.
*)
(* ... folgt ... *)
END ReadMatrix;
PROCEDURE ComputeRoute(distances: DistanceMatrix;
noflocations: LocationIndex);
(* ... folgt ... *)
END ComputeRoute;
BEGIN
IF ReadMatrix(distances, noflocations) THEN
ComputeRoute(distances, noflocations);
END;
END SantaClaus.
|