BCX Console Demonstration Program s154.bas
|
'=======================================================================
' Semi-OOP implementation for BCX by Kevin Diggins
'=======================================================================
TYPE FOO
MyVar
FUNCTION Squared (MyClass AS FOO_CLASS) AS INTEGER
FUNCTION Cubed (MyClass AS FOO_CLASS) AS INTEGER
FUNCTION TimesX (MyClass AS FOO_CLASS, X AS INTEGER) AS INTEGER
END TYPE
DIM IAm AS FOO : Initialize(&IAm, 3)
DIM You AS FOO : Initialize(&You, 4)
CLS
PRINT "================="
PRINT "IAm.Squared " , IAm.Squared(&IAm)
PRINT "IAm.Cubed " , IAm.Cubed(&IAm)
PRINT "IAm.TimesX " , IAm.TimesX(&IAm, 100)
PRINT "================="
PRINT "You.Squared " , You.Squared(&You)
PRINT "You.Cubed " , You.Cubed(&You)
PRINT "You.TimesX " , You.TimesX(&You, 100)
PRINT "================="
PRINT "Changing .MyVar in IAm and You"
IAm.MyVar = 6
You.MyVar = 7
PRINT "================="
PRINT "IAm.Squared " , IAm.Squared(&IAm)
PRINT "IAm.Cubed " , IAm.Cubed(&IAm)
PRINT "IAm.TimesX " , IAm.TimesX(&IAm, 100)
PRINT "================="
PRINT "You.Squared " , You.Squared(&You)
PRINT "You.Cubed " , You.Cubed(&You)
PRINT "You.TimesX " , You.TimesX(&You, 100)
PRINT "================="
SUB Initialize (ME AS FOO_CLASS, b AS INTEGER)
WITH ME
.MyVar = b
.Squared = Squared
.Cubed = Cubed
.TimesX = TimesX
END WITH
END SUB
FUNCTION Squared (ME AS FOO_CLASS)
FUNCTION = ME.MyVar * ME.MyVar
END FUNCTION
FUNCTION Cubed (ME AS FOO_CLASS)
FUNCTION = ME.MyVar * ME.MyVar * ME.MyVar
END FUNCTION
FUNCTION TimesX (ME AS FOO_CLASS, X)
FUNCTION = ME.MyVar * X
END FUNCTION
Result:
=================
IAm.Squared 9
IAm.Cubed 27
IAm.TimesX 300
=================
You.Squared 16
You.Cubed 64
You.TimesX 400
=================
Changing .MyVar in IAm and You
=================
IAm.Squared 36
IAm.Cubed 216
IAm.TimesX 600
=================
You.Squared 49
You.Cubed 343
You.TimesX 700
=================