\begin{vdm_al} ----------------------------------------------- -- Class: Position -- Description: Defines a X,Y position -----------------------------------------------
-- -- class definition -- class Position
-- -- instance variables -- instancevariables
private x: int; private y: int;
-- -- Types definition section -- types
-- -- Operations definition section -- operations
public Position: int * int ==> Position
Position(x_, y_) ==
(
x := x_;
y := y_;
);
pure public X: () ==> int
X() ==
( return x;
);
pure public Y: () ==> int
Y() ==
( return y;
);
public setX : int ==> ()
setX(newX) ==
(
x := newX
pure public inRange : Position * int ==> bool
inRange(p, range) ==
( let xd = x - p.X(), yd = y -p.Y() in
( let d = MATH`sqrt((xd * xd) + (yd * yd)) in
( return d <= range;
)
)
);
public deepCopy : () ==> Position
deepCopy() ==
( let newPos = new Position(x,y) in return newPos;
)
-- -- Functions definition section -- functions publicstatic Compare: Position * Position -> bool
Compare(a,b) ==
a.X() = b.X() and a.Y() = b.Y()
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.