VB常用算法1累加連乘_第1頁
VB常用算法1累加連乘_第2頁
VB常用算法1累加連乘_第3頁
VB常用算法1累加連乘_第4頁
VB常用算法1累加連乘_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.VB常用算法-累加和連乘一、算法說明 累加形式:V=V+e連乘形式:V=V*e其中:V是變量,e是遞增表達(dá)式。累加和連乘一般通過循環(huán)構(gòu)造來實(shí)現(xiàn)。注意:需在執(zhí)行循環(huán)體前對(duì)變量V賦初值。一般的,累加時(shí)置初值0;連乘時(shí)置初值為1。舉例說明:求N! 的結(jié)果。Private Sub Command1_Click Dim n%, i%, s& n = ValInputBox"輸入n" s = 1 For i = 1 To n s = s * i Next i Print sEnd Sub錯(cuò)誤的寫法:Private Sub Command1_Click Dim n%, i%,

2、s& n = ValInputBox"輸入n" For i = 1 To n s = 1 賦初值語句位置不對(duì)!s = s * i Next i Print s 輸出s的值為n,而不是n!End Sub二、應(yīng)用舉例例1. 根據(jù)以下公式,求自然對(duì)數(shù)e的的近似值。要求:誤差小于0.00001Private 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ì)算&q

3、uot; i+1; "項(xiàng)后,自然對(duì)數(shù)e值為:" e Print Exp1 與上句輸出值進(jìn)展比照以證明算法的正確性End Sub解題技巧1        由于這類題目往往是根據(jù)精度要求來求值,因此我們不能預(yù)知詳細(xì)循環(huán)次數(shù),所以這類題目一般用Do循環(huán),很少用For循環(huán)。設(shè)定循環(huán)變量i和通項(xiàng)變量t,注意各變量的初值;2        分解通項(xiàng)表達(dá)式中各因子,并分別將各因子用循環(huán)變量表示;3    

4、60;   假設(shè)步驟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 ,注意這句話一般需放在累加或者連乘式之前。例2. 以2002年春上機(jī)試卷06編程題為例根據(jù)X值計(jì)算:

5、n1,2,要求:n項(xiàng)絕對(duì)值小于等于10-6為止。1 由于循環(huán)次數(shù)不確定,因此確定用Do循環(huán)構(gòu)造并定義循環(huán)變量用n表示初值1;用戶輸入的值用x表示;通項(xiàng)用dblCos表示;累加值用sum表示,初值為0;2 分解通項(xiàng)式的組成可以分解為三部分:     可以表示為:1n+1      可以表示為:x2*n-1   比較復(fù)雜,難以直接表示3 由于步驟2中  復(fù)雜, 此時(shí)考慮使用過程實(shí)現(xiàn)。定義過程,輸入值是n,返回值是   于是有:private Function compn as longas

6、 longdim I as longdim result as longresult=1 此處注意,由于是連乘,初值為1for I=1 to 2*n-1result=result*Inext Icomp=resultEnd Function注意:由于是參數(shù)按地址傳遞,因此對(duì)于此題,實(shí)參的值不能在過程中被改變!也是改錯(cuò)題常考的地方!4 根據(jù)步驟1、2、3,寫出通項(xiàng)dblCos的表達(dá)式:dblCos=1n+1* x2*n-1/compn5 根據(jù)精度要求知:If absdblCos<=10-6 then exit do 最后程序?yàn)椋篛ption ExplicitPrivate Sub Comm

7、and1_Click Dim n As Long, dblCos As Double, x As Double Dim sum As Double x = ValText1.Text n = 1 Do dblCos = -1 n + 1 * x 2 * n - 1 / comp2 * n - 1 If AbsdblCos <= 10 -6 Then Exit Do sum = sum + dblCos n = n + 1 Loop Text2.Text = sumEnd SubPrivate Function compn As Long As Long Dim I As Long Dim

8、 result As Long result = 1 '此處注意,由于是連乘,初值為1 For I = 1 To n result = result * I Next I comp = resultEnd Function注意:假設(shè)調(diào)試運(yùn)行時(shí)出現(xiàn)死循環(huán),可以按CtrlBreak中斷死循環(huán),不需要重新啟動(dòng)機(jī)器。或者Ctrl+Scroll Lock三、實(shí)戰(zhàn)練習(xí) 1 完善程序填空2003秋二7本程序的功能是求下面數(shù)列前n項(xiàng)之和。Sx,n=x/2+2!*x3/2*4+3!*x5/2*4*6+.+n!*x2n-1/2*4*6.2nOption ExplicitPrivate Sub Command1_ClickDim x As Single , s As SingleDim n As Integer , i As Integerx=InputBox"輸入:",求數(shù)列和,n=InputBox"輸入:",求數(shù)列和,F(xiàn)or i=1 To ns=s+funx,iNext iLabel1.Caption= 1Text1=sEnd SubPrivate Function funx As Single , n As Integer As Single Dim i As Integer2 p=1For

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論