DIM Complex{r, i} DIM a{} = Complex{} : a.r = 1.0 : a.i = 1.0 DIM b{} = Complex{} : b.r = PI# : b.i = 1.2 DIM o{} = Complex{} PROCcomplexadd(o{}, a{}, b{}) PRINT "Result of addition is " FNcomplexshow(o{}) PROCcomplexmul(o{}, a{}, b{}) PRINT "Result of multiplication is " ; FNcomplexshow(o{}) PROCcomplexneg(o{}, a{}) PRINT "Result of negation is " ; FNcomplexshow(o{}) PROCcomplexinv(o{}, a{}) PRINT "Result of inversion is " ; FNcomplexshow(o{}) END DEF PROCcomplexadd(dst{}, one{}, two{}) dst.r = one.r + two.r dst.i = one.i + two.i ENDPROC DEF PROCcomplexmul(dst{}, one{}, two{}) dst.r = one.r*two.r - one.i*two.i dst.i = one.i*two.r + one.r*two.i ENDPROC DEF PROCcomplexneg(dst{}, src{}) dst.r = -src.r dst.i = -src.i ENDPROC DEF PROCcomplexinv(dst{}, src{}) LOCAL denom : denom = src.r^2 + src.i^ 2 dst.r = src.r / denom dst.i = -src.i / denom ENDPROC DEF FNcomplexshow(src{}) IF src.i >= 0 THEN = STR$(src.r) + " + " +STR$(src.i) + "i" = STR$(src.r) + " - " + STR$(-src.i) + "i"