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