Option Base 1
Dim D As Variant
Dim T As Variant
Dim i, j As Integer
Dim g, PI, LO, e, tol, dum, wl As Double
Private Sub Form_Load()
g = 9.81 '重力加速度
e = 2.71828
tol = e ^ (-3) '迭代计算容许误差
PI = 3.14159
T = Array(5, 8, 10, 15)
D = Array(1, 5, 8, 10, 30, 50, 80, 100, 130)
End Sub
Private Sub Form_Click()
Open "d:\输出结果.txt" For Output As #1
For j = 1 To 4
For i = 1 To 9
LO = g * T(j) ^ 2 / 2 / PI
dum = LO '中间变
Do While e > tol
wl = dum
dum = LO * (Exp(PI * 2 * D(i) / wl) - Exp(-PI * 2 * D(i) / wl)) / (Exp(PI * 2 * D(i) / wl) + Exp(-PI * 2 * D(i) / wl)) '双曲正切函数表达式
e = Abs(wl - dum)
Loop
Write #1, Format(wl, "##,###.00") '显示当地水深的波长
Next i
Next j
Print
Close #1
Unload Me
End Sub
Dim D As Variant
Dim T As Variant
Dim i, j As Integer
Dim g, PI, LO, e, tol, dum, wl As Double
Private Sub Form_Load()
g = 9.81 '重力加速度
e = 2.71828
tol = e ^ (-3) '迭代计算容许误差
PI = 3.14159
T = Array(5, 8, 10, 15)
D = Array(1, 5, 8, 10, 30, 50, 80, 100, 130)
End Sub
Private Sub Form_Click()
Open "d:\输出结果.txt" For Output As #1
For j = 1 To 4
For i = 1 To 9
LO = g * T(j) ^ 2 / 2 / PI
dum = LO '中间变
Do While e > tol
wl = dum
dum = LO * (Exp(PI * 2 * D(i) / wl) - Exp(-PI * 2 * D(i) / wl)) / (Exp(PI * 2 * D(i) / wl) + Exp(-PI * 2 * D(i) / wl)) '双曲正切函数表达式
e = Abs(wl - dum)
Loop
Write #1, Format(wl, "##,###.00") '显示当地水深的波长
Next i
Next j
Close #1
Unload Me
End Sub