41 lines
1.2 KiB
Plaintext
41 lines
1.2 KiB
Plaintext
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"
|