grid := recAlgo({},[], "A") union
recAlgo({},[], "B") union
recAlgo({},[], "C") union
recAlgo({},[], "D");
writef (grid); -- ); -- return self;
);
private recAlgo : Grid * Plan * String ==> Grid
recAlgo(grid, plan, station) ==
( dcl grid_temp : Grid := grid; forall r inset routeList do
( if( r.departureLocation = station and not (exists p insetelems plan &
r.arrivalLocation = p.arrivalLocation or
r.arrivalLocation = p.departureLocation) ) then ( dcl temp : Plan := plan ^ [r];
grid_temp := grid_temp union {temp};
grid_temp := recAlgo( grid_temp, temp,
r.arrivalLocation);
);
); return grid_temp;
);
pure public getGrid: () ==> Grid
getGrid()==
( return grid;
);
public setInactiveRoute : nat ==> ()
setInactiveRoute(id)==
( duration(0) (
inactiveRouteID := inactiveRouteID union {id};
inactiveGrid := inactiveGrid union
{tp | tp inset grid
& exists x insetelems tp & x.id_route = id};
grid := {x | x inset grid
& id notinset {route.id_route | route insetelems x}};
);
) preexists x inset routeList & x.id_route = id;
--------------------------------------------------------------------------------------------------------------- public test : () ==> ()
test()==
(
writef (recAlgo({},[], "A") union
recAlgo({},[], "B") union
recAlgo({},[], "C") union
recAlgo({},[], "D") );
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.