mainwin 50 10 print " Adding" call cprint cadd$( complex$( 1, 1), complex$( 3.14159265, 1.2)) print " Multiplying" call cprint cmulti$( complex$( 1, 1), complex$( 3.14159265, 1.2)) print " Inverting" call cprint cinv$( complex$( 1, 1)) print " Negating" call cprint cneg$( complex$( 1, 1)) end sub cprint cx$ print "( "; word$( cx$, 1); " + i *"; word$( cx$, 2); ")" end sub function complex$( a , bj ) ''complex number string-object constructor complex$ = str$( a ) ; " " ; str$( bj ) end function function cadd$( a$ , b$ ) ar = val( word$( a$ , 1 ) ) ai = val( word$( a$ , 2 ) ) br = val( word$( b$ , 1 ) ) bi = val( word$( b$ , 2 ) ) cadd$ = complex$( ar + br , ai + bi ) end function function cmulti$( a$ , b$ ) ar = val( word$( a$ , 1 ) ) ai = val( word$( a$ , 2 ) ) br = val( word$( b$ , 1 ) ) bi = val( word$( b$ , 2 ) ) cmulti$ = complex$( ar * br - ai * bi _ , ar * bi + ai * br ) end function function cneg$( a$) ar = val( word$( a$ , 1 ) ) ai = val( word$( a$ , 2 ) ) cneg$ =complex$( 0 -ar, 0 -ai) end function function cinv$( a$) ar = val( word$( a$ , 1 ) ) ai = val( word$( a$ , 2 ) ) D =ar^2 +ai^2 cinv$ =complex$( ar /D , 0 -ai /D ) end function