計算機(jī)等級考試二級VB常用算法(1):累加

字號:

1、算法說明
    累加形式:V=V+e
    連乘形式:V=V*e
    其中:V是變量,e是遞增表達(dá)式。累加和連乘一般通過循環(huán)結(jié)構(gòu)來實現(xiàn)。
    注意:需在執(zhí)行循環(huán)體前對變量V賦初值。一般的,累加時置初值0;連乘時置初值為1.
    舉例
    求N!的結(jié)果。
    以下是引用片段:
    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
    應(yīng)用舉例
    根據(jù)下列公式,求自然對數(shù)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) ‘與上句輸出值進(jìn)行對比以證明算法的正確性
    End Sub
    解題技巧
    1) 由于這類題目往往是根據(jù)精度要求來求值,因此我們不能預(yù)知具體循環(huán)次數(shù),所以這類題目一般用Do循環(huán),很少用For循環(huán)。設(shè)定循環(huán)變量和通項變量,注意各變量的初值;
    2) 分解通項表達(dá)式中各因子,并分別將各因子用循環(huán)變量表示;
    3) 如果步驟2中有的因子比較復(fù)雜,難以直接用變量表示,此時可以考慮使用Function過程;
    4) 根據(jù)步驟1、2、3,寫出通項表達(dá)式;
    5) 根據(jù)精度要求(往往是通項小于10負(fù)多少次方這樣一個關(guān)系表達(dá)式),寫出一條滿足精度要求后跳出循環(huán)的語句。通常是用:if 通項表達(dá)式>10^(-N) then exit do ,注意這句話一般需放在累加或者連乘式之前。
    實例說明
    以2002年春上機(jī)試卷06編程題為例
    根據(jù)X值計算:
    n=1,2,……
    要求:n項絕對值小于等于10-6為止。
    1、由于循環(huán)次數(shù)不確定,因此確定用Do循環(huán)結(jié)構(gòu)并定義循環(huán)變量用n表示(初值1);用戶輸入的值用x表示;通項用dblCos表示;累加值用sum表示,初值為0;