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

下載本文檔

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

文檔簡介

1、.VB常用算法-累加和連乘一、算法說明 累加形式:V=V+e連乘形式:V=V*e其中:V是變量,e是遞增表達式。累加和連乘一般通過循環(huán)構(gòu)造來實現(xiàn)。注意:需在執(zhí)行循環(huán)體前對變量V賦初值。一般的,累加時置初值0;連乘時置初值為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錯誤的寫法:Private Sub Command1_Click Dim n%, i%,

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

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

4、60;   假設(shè)步驟2中有的因子比較復(fù)雜,難以直接用變量表示,此時可以考慮使用Function過程;4        根據(jù)步驟1、2、3,寫出通項表達式;5        根據(jù)精度要求往往是通項小于10負多少次方這樣一個關(guān)系表達式,寫出一條滿足精度要求后跳出循環(huán)的語句。通常是用:if 通項表達式>10-N then exit do ,注意這句話一般需放在累加或者連乘式之前。例2. 以2002年春上機試卷06編程題為例根據(jù)X值計算:

5、n1,2,要求:n項絕對值小于等于10-6為止。1 由于循環(huán)次數(shù)不確定,因此確定用Do循環(huán)構(gòu)造并定義循環(huán)變量用n表示初值1;用戶輸入的值用x表示;通項用dblCos表示;累加值用sum表示,初值為0;2 分解通項式的組成可以分解為三部分:     可以表示為:1n+1      可以表示為:x2*n-1   比較復(fù)雜,難以直接表示3 由于步驟2中  復(fù)雜, 此時考慮使用過程實現(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ù)按地址傳遞,因此對于此題,實參的值不能在過程中被改變!也是改錯題??嫉牡胤剑? 根據(jù)步驟1、2、3,寫出通項dblCos的表達式:dblCos=1n+1* x2*n-1/compn5 根據(jù)精度要求知:If absdblCos<=10-6 then exit do 最后程序為:Option 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)試運行時出現(xiàn)死循環(huán),可以按CtrlBreak中斷死循環(huán),不需要重新啟動機器?;蛘逤trl+Scroll Lock三、實戰(zhàn)練習(xí) 1 完善程序填空2003秋二7本程序的功能是求下面數(shù)列前n項之和。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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論