1、算法說明
累加形式:V=V+e
連乘形式:V=V*e
其中:V是變量,e是遞增表達(dá)式。累加和連乘一般通過循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
注意:需在執(zhí)行循環(huán)體前對變量V賦初值。一般的,累加時(shí)置初值0;連乘時(shí)置初值為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 "計(jì)算了"; i; "項(xiàng)目和是:"; e
Print Exp(1) ‘與上句輸出值進(jìn)行對比以證明算法的正確性
End Sub
解題技巧
1) 由于這類題目往往是根據(jù)精度要求來求值,因此我們不能預(yù)知具體循環(huán)次數(shù),所以這類題目一般用Do循環(huán),很少用For循環(huán)。設(shè)定循環(huán)變量和通項(xiàng)變量,注意各變量的初值;
2) 分解通項(xiàng)表達(dá)式中各因子,并分別將各因子用循環(huán)變量表示;
3) 如果步驟2中有的因子比較復(fù)雜,難以直接用變量表示,此時(shí)可以考慮使用Function過程;
4) 根據(jù)步驟1、2、3,寫出通項(xiàng)表達(dá)式;
5) 根據(jù)精度要求(往往是通項(xiàng)小于10負(fù)多少次方這樣一個(gè)關(guān)系表達(dá)式),寫出一條滿足精度要求后跳出循環(huán)的語句。通常是用:if 通項(xiàng)表達(dá)式>10^(-N) then exit do ,注意這句話一般需放在累加或者連乘式之前。
希望與更多計(jì)算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計(jì)算機(jī)等級考試論壇
更多信息請?jiān)L問:考試吧計(jì)算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |