作者PianoSpirit (琴键)
看板Visual_Basic
标题[VB6 ] 求助!自订变数型态「复数」的问题
时间Fri Apr 27 14:34:17 2007
最近需要写一份程式,必须可以运算复数的程式。
由於VB似乎没有内建复数的这种资料型态。
所以我就新增一个模组自订资料型态 Complex:
Type Complex
r As Single
i As Single
End Type
'------复数相加-----------
Public Function Add(a As Complex, b As Complex) As Complex
Add.r = a.r + b.r
Add.i = a.i + b.i
End Function
'------复数相减-----------
Public Function Subtract(a As Complex, b As Complex) As Complex
Subtract.r = a.r - b.r
Subtract.i = a.i - b.i
End Function
'------复数相乘-----------
Public Function Multiply(a As Complex, b As Complex) As Complex
Multiply.r = (a.r * b.r) - (a.i * b.i)
Multiply.i = (a.r * b.i) + (a.i * b.r)
End Function
'------复数相除-----------
Public Function Divide(a As Complex, b As Complex) As Complex
Dim d As Single
d = b.r * b.r + b.i * b.i
Divide.r = (a.r * a.r + a.i * b.i) / d
Divide.i = (a.i * b.r - a.r * b.i) / d
End Function
问题来了,由於之後的运算需要计算复数的n次方
我现在只会在表单中用下面这样(例如运算复数x的n次方),
可是感觉不好,因为n越大就要运算越多次
Dim t as Complex
Dim k as Integer
t = x
For k = 1 to n-1
t = Multiply(x,t)
next k
请问各位有没有其他方法,或是能直接在模组内设Function就好?
如果是你们会怎麽写呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.230.75