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