Code:
'=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 'SED_PBCC '------------------------------------------------------------------------------ 'A simple Box class that calculates it's volume showing multiple instances of the class 'This was translated from some online C++ instruction somewhere?? '****************************************************************************** ' James C. Fuller ' [email protected] ' August 4,2008 '****************************************************************************** #COMPILE EXE #DIM ALL %TRUE = -1 %FALSE = 0 '=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* CLASS cBox INSTANCE side1,side2,side3,volume AS SINGLE INSTANCE sides_not_set AS LONG CLASS METHOD CREATE sides_not_set = %TRUE END METHOD INTERFACE iBox : INHERIT IUNKNOWN PROPERTY GET volume() AS SINGLE PROPERTY = volume END PROPERTY METHOD SetSides(BYVAL A AS SINGLE,BYVAL B AS SINGLE, BYVAL C AS SINGLE) side1 = A side2 = B side3 = C sides_not_set = %FALSE END METHOD METHOD FindVolume() IF ISFALSE(sides_not_set) THEN volume = side1 * side2 * side3 END IF END METHOD END INTERFACE END CLASS FUNCTION PBMAIN () AS LONG LOCAL oBox() AS iBox LOCAL loBox AS iBox LOCAL NumOfBoxes,i AS LONG, TotVol AS SINGLE LOCAL side1,side2,side3 AS SINGLE NumOfBoxes = DATACOUNT/3 'Array of Objects REDIM oBox(1 TO NumOfBoxes) PRINT "Number of Boxes = ";NumOfBoxes FOR i = 1 TO NumOfBoxes oBox(i) = CLASS "cBox" side1 = VAL(READ$(i*3))-2 side2 = VAL(READ$(i*3))-1 side3 = VAL(READ$(i*3)) '=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* oBox(i).SetSides(side1,side2,side3) oBox(i).FindVolume PRINT "Box #";FORMAT$(i);" (A=";FORMAT$(Side1);",B=";FORMAT$(Side2);",C=";FORMAT$(Side3);") Volume = ";oBox(i).volume TotVol += oBox(i).volume '=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* NEXT i ? "Total Volume of ";FORMAT$(NumOfBoxes);" Boxes = " + FORMAT$(TotVol,"######.000") WAITKEY$ DATA 12,5,6 DATA 7,7,7 DATA 8,4,6 DATA 2,3,4 DATA 19.88,4.8,7.92 END FUNCTION