September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
41
Task/Classes/Component-Pascal/classes-1.component
Normal file
41
Task/Classes/Component-Pascal/classes-1.component
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
MODULE Point;
|
||||
IMPORT
|
||||
Strings;
|
||||
TYPE
|
||||
Instance* = POINTER TO LIMITED RECORD
|
||||
x-, y- : LONGINT; (* Instance variables *)
|
||||
END;
|
||||
|
||||
PROCEDURE (self: Instance) Initialize*(x,y: LONGINT), NEW;
|
||||
BEGIN
|
||||
self.x := x;
|
||||
self.y := y
|
||||
END Initialize;
|
||||
|
||||
(* constructor *)
|
||||
PROCEDURE New*(x, y: LONGINT): Instance;
|
||||
VAR
|
||||
point: Instance;
|
||||
BEGIN
|
||||
NEW(point);
|
||||
point.Initialize(x,y);
|
||||
RETURN point
|
||||
END New;
|
||||
|
||||
(* methods *)
|
||||
PROCEDURE (self: Instance) Add*(other: Instance): Instance, NEW;
|
||||
BEGIN
|
||||
RETURN New(self.x + other.x,self.y + other.y);
|
||||
END Add;
|
||||
|
||||
PROCEDURE (self: Instance) ToString*(): POINTER TO ARRAY OF CHAR, NEW;
|
||||
VAR
|
||||
xStr,yStr: ARRAY 64 OF CHAR;
|
||||
str: POINTER TO ARRAY OF CHAR;
|
||||
BEGIN
|
||||
Strings.IntToString(self.x,xStr);
|
||||
Strings.IntToString(self.y,yStr);
|
||||
NEW(str,128);str^ := "@(" +xStr$ + "," + yStr$ + ")";
|
||||
RETURN str
|
||||
END ToString;
|
||||
END Point.
|
||||
17
Task/Classes/Component-Pascal/classes-2.component
Normal file
17
Task/Classes/Component-Pascal/classes-2.component
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
MODULE DrivePoint;
|
||||
IMPORT
|
||||
Point,
|
||||
StdLog;
|
||||
|
||||
PROCEDURE Do*;
|
||||
VAR
|
||||
p,q: Point.Instance;
|
||||
BEGIN
|
||||
p := Point.New(1,2);
|
||||
q := Point.New(2,1);
|
||||
StdLog.String(p.ToString() + " + " + q.ToString() + " = " + p.Add(q).ToString());StdLog.Ln;
|
||||
StdLog.String("p.x:> ");StdLog.Int(p.x);StdLog.Ln;
|
||||
StdLog.String("p.y:> ");StdLog.Int(p.y);StdLog.Ln
|
||||
END Do;
|
||||
|
||||
END DrivePoint.
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
MODULE Graphics;
|
||||
IMPORT StdLog;
|
||||
TYPE
|
||||
(* class *)
|
||||
Point* = POINTER TO LIMITED RECORD
|
||||
x-,y-: INTEGER; (* Instance variables *)
|
||||
END;
|
||||
|
||||
(* method *)
|
||||
PROCEDURE (p: Point) Abs*(): INTEGER,NEW;
|
||||
BEGIN
|
||||
RETURN p.x
|
||||
END Abs;
|
||||
|
||||
(* method *)
|
||||
PROCEDURE (p: Point) Ord*(): INTEGER,NEW;
|
||||
BEGIN
|
||||
RETURN p.y
|
||||
END Ord;
|
||||
|
||||
(* method *)
|
||||
PROCEDURE (p: Point) Show*,NEW;
|
||||
BEGIN
|
||||
StdLog.String("Point(");StdLog.Int(p.x);StdLog.String(",");
|
||||
StdLog.Int(p.y);StdLog.String(");");StdLog.Ln
|
||||
END Show;
|
||||
|
||||
(* constructor *)
|
||||
PROCEDURE NewPoint*(x,y: INTEGER): Point;
|
||||
VAR
|
||||
p: Point;
|
||||
BEGIN
|
||||
NEW(p);p.x := x;p.y := y;
|
||||
RETURN p
|
||||
END NewPoint;
|
||||
|
||||
PROCEDURE TestPoint*;
|
||||
VAR
|
||||
p: Point;
|
||||
BEGIN
|
||||
p := NewPoint(10,20);
|
||||
p.Show();
|
||||
StdLog.String("Abs:> ");StdLog.Int(p.Abs());StdLog.Ln;
|
||||
StdLog.String("Ord:> ");StdLog.Int(p.Ord());StdLog.Ln
|
||||
END TestPoint;
|
||||
END Graphics.
|
||||
Loading…
Add table
Add a link
Reference in a new issue