習題六
第1,2,6-8題答案可在教材中找到。
3.指出過程說明中的錯誤
(1)Sub子過程不應該定義類型
(2)函數(shù)與形式參數(shù)不應該同名
(3)數(shù)組作為形式參數(shù)時,應使用傳地址方式,不可使用傳值(ByVal)
(4)形式參數(shù)應該是變量或數(shù)組名,不可以是一個數(shù)組元素
4.指出調(diào)用過程語句的錯誤
(1)無語法錯誤,但因形參sum所對應的實參是常量3,故計算結果無法傳遞給主調(diào)程序。
(2)實參變量c與形參sum的類型不一致。
(3)類似于(1),形參sum所對應的實參是表達式a+b,故計算結果無法傳遞給主調(diào)程序。
(4)類似于(1)和(2),形參sum所對應的實參是表達式Sqr(c),故計算結果無法傳遞給主調(diào)程序。另外srq(a)存在語法錯誤(拼寫錯)。
(5)與(2)相同,實參c與形參sum的類型不一致。
5.迭代法求平方根
(1)自定義函數(shù)的定義及調(diào)用
Function FSqr1(a As Single) As Single
Dim x0 As Single, x As Single
x = a
Do
x0 = x
x = (x0 + a / x0) / 2
Loop While Abs(x - x0) > 0.00001
FSqr1 = x
End Function
Private Sub Command1_Click()
Dim x!, y!
x = Val(InputBox("x="))
If x >= 0 Then
y = FSqr1(x)
Print y
End If
End Sub
(2)自定義子過程的定義及調(diào)用
Sub FSqr2(a As Single, x As Single)
Dim x0 As Single
x = a
Do
x0 = x
x = (x0 + a / x0) / 2
Loop While Abs(x - x0) > 0.00001
End Sub
Private Sub Command2_Click()
Dim x!, y!
x = Val(InputBox("x="))
If x >= 0 Then
Call FSqr2(x, y)
Print y
End If
End Sub
(3)遞歸函數(shù)及調(diào)用 [略]