49 lines
916 B
Plaintext
49 lines
916 B
Plaintext
PROGRAM COMPLEX_ARITH
|
|
|
|
TYPE COMPLEX=(REAL#,IMAG#)
|
|
|
|
DIM X:COMPLEX,Y:COMPLEX,Z:COMPLEX
|
|
|
|
!
|
|
! complex arithmetic routines
|
|
!
|
|
DIM A:COMPLEX,B:COMPLEX,C:COMPLEX
|
|
|
|
PROCEDURE ADD(A.,B.->C.)
|
|
C.REAL#=A.REAL#+B.REAL#
|
|
C.IMAG#=A.IMAG#+B.IMAG#
|
|
END PROCEDURE
|
|
|
|
PROCEDURE INV(A.->B.)
|
|
LOCAL DENOM#
|
|
DENOM#=A.REAL#^2+A.IMAG#^2
|
|
B.REAL#=A.REAL#/DENOM#
|
|
B.IMAG#=-A.IMAG#/DENOM#
|
|
END PROCEDURE
|
|
|
|
PROCEDURE MULT(A.,B.->C.)
|
|
C.REAL#=A.REAL#*B.REAL#-A.IMAG#*B.IMAG#
|
|
C.IMAG#=A.REAL#*B.IMAG#+A.IMAG#*B.REAL#
|
|
END PROCEDURE
|
|
|
|
PROCEDURE NEG(A.->B.)
|
|
B.REAL#=-A.REAL#
|
|
B.IMAG#=-A.IMAG#
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
PRINT(CHR$(12);) !CLS
|
|
X.REAL#=1
|
|
X.IMAG#=1
|
|
Y.REAL#=2
|
|
Y.IMAG#=2
|
|
ADD(X.,Y.->Z.)
|
|
PRINT(Z.REAL#;" + ";Z.IMAG#;"i")
|
|
MULT(X.,Y.->Z.)
|
|
PRINT(Z.REAL#;" + ";Z.IMAG#;"i")
|
|
INV(X.->Z.)
|
|
PRINT(Z.REAL#;" + ";Z.IMAG#;"i")
|
|
NEG(X.->Z.)
|
|
PRINT(Z.REAL#;" + ";Z.IMAG#;"i")
|
|
END PROGRAM
|