以下是引用片段: Private Sub Command1_Click() Dim n%, i%, s& n = Val(InputBox("输入n")) s = 1 For i = 1 To n s = s * i Next i Print s End Sub
错误的写法:
以下是引用片段: Private Sub Command1_Click() Dim n%, i%, s& n = Val(InputBox("输入n")) For i = 1 To n s = 1 ‘赋初值语句位置不对! s = s * i Next i Print s ‘输出s的值为n,而不是n! End Sub
应用举例
根据下列公式,求自然对数e的的近似值。
要求:误差小于0.00001
以下是引用片段: Private Sub Command1_Click() Dim i%, n&, t!, e! e = 2 i = 1 t = 1 Do While t > 0.00001 i = i + 1 t = t / i e = e + t Loop Print "计算了"; i; "项目和是:"; e Print Exp(1) ‘与上句输出值进行对比以证明算法的正确性 End Sub
以下是引用片段: private Function comp(n as long)as long dim I as long dim result as long result=1 ‘此处注意,由于是连乘,初值为1 for I=1 to 2*(n-1) result=result*I next I comp=result End Function
注意:由于是参数按地址传递,因此对于本题,实参的值不能在过程中被改变!(也是改错题常考的地方!!)
4、根据步骤1、2、3,写出通项dblCos的表达式:
dblCos=(-1)^(n+1)* x^(2*(n-1))/comp(n)
5、根据精度要求知:
If abs(dblCos)<=10^(-6) then exit do
最后程序为:
以下是引用片段: Private Sub Command1_Click() Dim n As Long, dblCos As Double, x As Double x = Val(Text1.Text) n = 1 Do dblCos = (-1) ^ (n + 1) * x ^ (2 * (n - 1)) / comp(n) If Abs(dblCos) <= 10 ^ (-6) Then Exit Do Sum = Sum + dblCos n = n + 1 Loop Print Sum End Sub Private Function comp(n As Long) As Long Dim I As Long Dim result As Long result = 1 '此处注意,由于是连乘,初值为1 For I = 1 To 2 * (n - 1) result = result * I Next I comp = result End Function
以下是引用片段: Option Explicit Private Sub Command1_Click() Dim x As Single,s As Single Dim n As Integer,i As Integer x=InputBox("输入X:","求数列和",1) n=InputBox("输入N:","求数列和",1) For i=1 To n s=s+fun(x,i) Next i Label1.Caption= _(1)_ Text1=s End Sub Private Function fun(x As Single,n As Integer)As Single __(2)__ p=1 For i=1 To n __(3)___ Next i fun=x^(2*n-1)*p End Function