




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 過(guò)程和變量的作用域4.1 Visual Basic 的代碼模塊構(gòu)造化程序設(shè)計(jì)思想:把較大的程序劃分為假設(shè)干個(gè)模塊(窗體);每個(gè)模塊(窗體)只完成一個(gè)或假設(shè)干個(gè)功能;Visual Basic 運(yùn)用程序的構(gòu)造:VB運(yùn)用程序.VBP窗體模塊.Frm類模塊.Cls規(guī)范模塊.Bas函數(shù)過(guò)程Sub過(guò)程事件過(guò)程函數(shù)過(guò)程Sub過(guò)程1. 1. 引例引例4-24-2知多邊形的各條邊的長(zhǎng)度,知多邊形的各條邊的長(zhǎng)度,要計(jì)算多邊形的面積。要計(jì)算多邊形的面積。計(jì)算多邊形面積,可將多邊形分解計(jì)算多邊形面積,可將多邊形分解成假設(shè)干個(gè)三角形。成假設(shè)干個(gè)三角形。計(jì)算三角形面積的公式如下:計(jì)算三角形面積的公式如下: abc
2、defgS1S2S3)(21)()(zyxczcycxccareaxyzS=S1+S2+S3傳統(tǒng)方法:下面的公式寫三次4.2.1 4.2.1 函數(shù)過(guò)程的創(chuàng)建和調(diào)用函數(shù)過(guò)程的創(chuàng)建和調(diào)用除了系統(tǒng)提供的內(nèi)部函數(shù)過(guò)程和事件除了系統(tǒng)提供的內(nèi)部函數(shù)過(guò)程和事件過(guò)程外,用戶可自定義過(guò)程:過(guò)程外,用戶可自定義過(guò)程: 以以SubSub保管字開場(chǎng)的為子過(guò)程通用保管字開場(chǎng)的為子過(guò)程通用過(guò)程;過(guò)程; 以以FunctionFunction保管字開場(chǎng)的為函數(shù)過(guò)保管字開場(chǎng)的為函數(shù)過(guò)程。程。1 1函數(shù)過(guò)程的創(chuàng)建函數(shù)過(guò)程的創(chuàng)建 函數(shù)過(guò)程方式:函數(shù)過(guò)程方式: Function Function 函數(shù)過(guò)程名函數(shù)過(guò)程名(參數(shù)列表參數(shù)列
3、表( (形參形參) As ) As 類型類型 部分變量或常數(shù)定義部分變量或常數(shù)定義 語(yǔ)句塊語(yǔ)句塊 函數(shù)名函數(shù)名 = = 前往值前往值 函數(shù)過(guò)程函數(shù)過(guò)程體體 Exit Function Exit Function 語(yǔ)句塊語(yǔ)句塊 函數(shù)名函數(shù)名 = = 前往值前往值 End Function End Function 自定義函數(shù)過(guò)程有兩種方法:自定義函數(shù)過(guò)程有兩種方法: (1) (1)利用利用“工具菜單下的工具菜單下的“添加過(guò)程命令定義,生添加過(guò)程命令定義,生成一個(gè)函數(shù)的框架。成一個(gè)函數(shù)的框架。 (2) (2)利用代碼窗口直接定義。利用代碼窗口直接定義。2.2.函數(shù)過(guò)程的調(diào)用函數(shù)過(guò)程的調(diào)用 函數(shù)過(guò)程
4、調(diào)用同規(guī)范函數(shù)調(diào)用,函數(shù)過(guò)程調(diào)用同規(guī)范函數(shù)調(diào)用,方式:函數(shù)過(guò)程名方式:函數(shù)過(guò)程名(參數(shù)列表參數(shù)列表) ) 參數(shù)列表:稱為實(shí)參,它必需與形參個(gè)數(shù)一樣,位置參數(shù)列表:稱為實(shí)參,它必需與形參個(gè)數(shù)一樣,位置與類型一一對(duì)應(yīng)。可以是同類型的常量、變量、表達(dá)與類型一一對(duì)應(yīng)。可以是同類型的常量、變量、表達(dá)式。式。Private Sub Command1_Click()A=val ( Inputbaox(“) )End sub定義一個(gè)函數(shù):多次調(diào)用abcdefgS1S2S3xyz定義函數(shù)過(guò)程area:Public Function area(x!, y!, z!) As Single Dim c! c = 1
5、/ 2 * (x + y + z) area = Sqr(c * (c - x) * (c - y) * (c - z)End Function調(diào)用函數(shù)過(guò)程:Sub command1_click() 輸入假設(shè)干個(gè)三角形邊長(zhǎng) S=area(a,b,c)+area(c,d,e) S=S+area(e,f,g) Print SEnd Sub例例4-3 編寫定義計(jì)算恣意整數(shù)編寫定義計(jì)算恣意整數(shù)a階乘的函數(shù)過(guò)程階乘的函數(shù)過(guò)程fac(n).參考代碼:參考代碼:Public Function fac(a as Integer) as Longdim p as Long, i as Integerp=1 累乘
6、初值為累乘初值為1For i=1 to a p=p * iNext ifac=p 程序中對(duì)函數(shù)名賦值程序中對(duì)函數(shù)名賦值End Function調(diào)用:a=fac(10)4.2.2 4.2.2 子子 過(guò)過(guò) 程的創(chuàng)建和調(diào)用程的創(chuàng)建和調(diào)用2.2.子過(guò)程創(chuàng)建子過(guò)程創(chuàng)建 Sub Sub 子過(guò)程名子過(guò)程名(參數(shù)列表參數(shù)列表) 部分變量或常數(shù)定義部分變量或常數(shù)定義 語(yǔ)句語(yǔ)句 Exit SubExit Sub 語(yǔ)句語(yǔ)句 End SubEnd Sub3.3.子過(guò)程的調(diào)用子過(guò)程的調(diào)用 子過(guò)程名子過(guò)程名 參數(shù)列表參數(shù)列表 或或 Call Call 子過(guò)程名子過(guò)程名( (參數(shù)列表參數(shù)列表) ) 1.引例 編寫一個(gè)兩個(gè)數(shù)
7、交換的過(guò)程供多次調(diào)用。Swap (x,y)子過(guò)程的定義主調(diào)程序調(diào)用Swap子過(guò)程Public Sub Swap(x, y) Private Sub Form_Click() Dim t Dim a, b t = x a = 10 x = y b = 20 y = t Call Swap (a, b)End Sub Print a=;a,,b=; b End Sub例4-1,編寫一個(gè)能找出兩個(gè)數(shù)中大數(shù)的子過(guò)程,然后在運(yùn)用程序中調(diào)用它。4.2.3 4.2.3 參數(shù)傳送參數(shù)傳送 指主調(diào)過(guò)程的實(shí)參傳送給被調(diào)過(guò)程的形參。指主調(diào)過(guò)程的實(shí)參傳送給被調(diào)過(guò)程的形參。形參和實(shí)參對(duì)應(yīng)關(guān)系:形參和實(shí)參對(duì)應(yīng)關(guān)系:1 1
8、對(duì)應(yīng)變量名不用一樣,但變量個(gè)數(shù)對(duì)應(yīng)變量名不用一樣,但變量個(gè)數(shù)相等;相等;2 2各實(shí)參的書寫順序必需和對(duì)應(yīng)的形各實(shí)參的書寫順序必需和對(duì)應(yīng)的形參順序一致,且類型相符。參順序一致,且類型相符。1. 1. 傳址與傳值傳址與傳值 傳址:傳址: 形參得到的是實(shí)參的地址,當(dāng)形參值形參得到的是實(shí)參的地址,當(dāng)形參值的改動(dòng)同時(shí)也改動(dòng)實(shí)參的值。的改動(dòng)同時(shí)也改動(dòng)實(shí)參的值。 傳值:傳值:ByValByVal 形參得到的是實(shí)參的值,形參值的改形參得到的是實(shí)參的值,形參值的改動(dòng)不會(huì)影響實(shí)參的值。動(dòng)不會(huì)影響實(shí)參的值。4.2.3 4.2.3 參數(shù)傳送參數(shù)傳送。例例4-5 4-5 兩個(gè)變量的交換。兩個(gè)變量的交換。Sub Swap
9、1(ByVal x%, ByVal y%)Sub Swap1(ByVal x%, ByVal y%) t% = x: x = y: y = t t% = x: x = y: y = tEnd SubEnd SubPrivate Sub Command1_Click()Private Sub Command1_Click() a% = 10: b% = 20: Swap1 a, b a% = 10: b% = 20: Swap1 a, b 傳值傳值 Print A1=; a, B1=; bPrint A1=; a, B1=; b a = 10: b = 20: Swap2 a, b a = 10
10、: b = 20: Swap2 a, b 傳址傳址 Print A2=; a, B2=; bPrint A2=; a, B2=; bEnd SubEnd SubSub Swap2(x%, y%) t% = x: x = y: y = tEnd Suba的地址 10 10 10aa x x形參實(shí)參ByVal 傳值傳地址4.3 變量、過(guò)程的作用域作用域:變量、過(guò)程隨所處的位置不同,可被訪問(wèn)的范圍。 1.過(guò)程的作用域(了解) 窗體/模塊級(jí):加Private關(guān)鍵字的過(guò)程,只能被定義的窗體或模塊中的過(guò)程調(diào)用。 全局級(jí):加Public關(guān)鍵字缺省的過(guò)程,可供該運(yùn)用程序的一切窗體和一切規(guī)范模塊中的過(guò)程調(diào)用。2
11、. 2. 變量的作用域變量的作用域 部分變量:在過(guò)程內(nèi)用聲明的變量,只部分變量:在過(guò)程內(nèi)用聲明的變量,只能在本過(guò)程中運(yùn)用。能在本過(guò)程中運(yùn)用。 窗體窗體/ /模塊級(jí)變量:在模塊級(jí)變量:在“通用聲明段中通用聲明段中用用DimDim語(yǔ)句或用語(yǔ)句或用PrivatePrivate語(yǔ)句語(yǔ)句 聲明的變量聲明的變量, ,可被本可被本窗體窗體/ /模塊的任何過(guò)程訪問(wèn)。模塊的任何過(guò)程訪問(wèn)。 全局變量:在全局變量:在“通用聲明段中用通用聲明段中用PublicPublic語(yǔ)句聲明的變量,可被本運(yùn)用程序的任何語(yǔ)句聲明的變量,可被本運(yùn)用程序的任何過(guò)程或函數(shù)訪問(wèn)。過(guò)程或函數(shù)訪問(wèn)。例如在下面一個(gè)規(guī)范模塊文件中不同級(jí)的變量聲明
12、:option explicitPublic Pa As integer 全局變量Private Mb As string *10 窗體/模塊級(jí)變量Sub F1( ) Dim Fa As integer 部分變量可以訪問(wèn)Pa,Mb,不能訪問(wèn)FbEnd SubSub F2( ) Dim Fb As Single 部分變量可以訪問(wèn)Pa,Mb,不能訪問(wèn)FaEnd SubSub f1(x) x=f2(xx)*3End SubSub Command1_Click() Call f1(y)End SubFunction f2(x) f2=f3(x)+3End SubFunction f3(x) f3=x*
13、xEnd SubSub f1(x) Call f1(y)End Sub過(guò)程的直接調(diào)用過(guò)程的直接調(diào)用Sub Command1_Click() Call f1(y)End Sub過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用4.4 4.4 遞歸遞歸1.1.遞歸的概念遞歸的概念 用本身的構(gòu)造來(lái)描畫本身就稱為用本身的構(gòu)造來(lái)描畫本身就稱為“遞歸。例對(duì)階乘的遞歸。例對(duì)階乘的定義:定義: )!2() 1()!1()!1(!nnnnnn2. 遞歸過(guò)程遞歸過(guò)程 過(guò)程在本身定義的內(nèi)部調(diào)用本人。過(guò)程在本身定義的內(nèi)部調(diào)用本人。 例例4-8 編編fac(n)=n! 的遞歸函數(shù)的遞歸函數(shù) Function fac(n As Integer
14、) As Integer If n = 1 Then fac = 1 Elsefac = n * fac(n - 1) End If End Function11)fac(*11)fac(nnnnnSub Command1_Click() Print “fac(4)=;fac(4)End Sub結(jié)果:結(jié)果:fac(4)=24遞推回歸fac(2)=2*fac(1)fac(1)=1fac(4)=4*6fac(3)=3*2fac(2)=2*1fac(3)=3*fac(2)fac(4)=4*fac(3)11)fac(*11)fac(nnnnnn問(wèn)題: 遞歸方程:寫出遞歸函數(shù)思索假設(shè)上述fac函數(shù)中少了
15、 : If n = 1 Then fac = 1 即僅有語(yǔ)句:fac = n * fac(n - 1) 程序運(yùn)轉(zhuǎn)將呵斥何結(jié)果?由此可見構(gòu)成遞歸的構(gòu)造如下: 1、遞歸終了條件及終了時(shí)的值;2、本身的調(diào)用,并且遞歸向終止條件開展。假設(shè)在不同級(jí)聲明一樣的變量名如: Public Temp As integer 全局變量 Sub Form_Load Dim Temp As Integer 部分變量 Temp=10 訪問(wèn)部分變量 Form1.Temp=20 訪問(wèn)全局變量必需加窗體名 Print Form1.Temp, Temp 顯示 20 10 End Sub2. 2. 數(shù)組參數(shù)的傳送數(shù)組參數(shù)的傳送 當(dāng)
16、參數(shù)是數(shù)組經(jīng)過(guò)傳址方式進(jìn)展傳送。留意:當(dāng)參數(shù)是數(shù)組經(jīng)過(guò)傳址方式進(jìn)展傳送。留意: 在實(shí)參和形參中寫數(shù)組名,忽略維數(shù)的定義,但圓在實(shí)參和形參中寫數(shù)組名,忽略維數(shù)的定義,但圓括號(hào)不能省。括號(hào)不能省。 被調(diào)過(guò)程可經(jīng)過(guò)被調(diào)過(guò)程可經(jīng)過(guò)LboundLbound和和UboundUbound函數(shù)確定實(shí)參數(shù)組函數(shù)確定實(shí)參數(shù)組的下、上界。的下、上界。LboundLbound和和UboundUbound函數(shù)的方式如下:函數(shù)的方式如下:L|Ubound(L|Ubound(數(shù)組名數(shù)組名) )例 6.7 編一函數(shù)tim,求恣意一維數(shù)組中各元素之積。 調(diào)用tim,求 和 Function tim(a() As Integer
17、) Dim t#, i% t = 1 For i = Lbound(a) To Ubound(a)t = t * a(i) Next i tim = tEnd Function511iiat832iibt調(diào)用:調(diào)用:Sub Command1_Click() Dim a%(1 To 5),b%(3 To 8) t1# = tim(a() t2 #= tim(b() Print t1, t2 End Sub4.4.子過(guò)程與函數(shù)過(guò)程區(qū)別:子過(guò)程與函數(shù)過(guò)程區(qū)別:(1)(1)函數(shù)過(guò)程名有值,有類型,在函數(shù)體內(nèi)至少賦值函數(shù)過(guò)程名有值,有類型,在函數(shù)體內(nèi)至少賦值一次;一次; 子過(guò)程名無(wú)值,無(wú)類型,在子過(guò)程體
18、內(nèi)不能對(duì)子子過(guò)程名無(wú)值,無(wú)類型,在子過(guò)程體內(nèi)不能對(duì)子過(guò)程名賦值;過(guò)程名賦值;(2)(2)調(diào)用時(shí),子過(guò)程調(diào)用是一句獨(dú)立的語(yǔ)句。調(diào)用時(shí),子過(guò)程調(diào)用是一句獨(dú)立的語(yǔ)句。 函數(shù)過(guò)程不能作為單獨(dú)的語(yǔ)句加以調(diào)用,必需函數(shù)過(guò)程不能作為單獨(dú)的語(yǔ)句加以調(diào)用,必需參與表達(dá)式運(yùn)算。參與表達(dá)式運(yùn)算。(3)(3)普通當(dāng)過(guò)程有一個(gè)前往值,運(yùn)用函數(shù)過(guò)程較直觀普通當(dāng)過(guò)程有一個(gè)前往值,運(yùn)用函數(shù)過(guò)程較直觀; 反之假設(shè)過(guò)程無(wú)前往值,或有多個(gè)前往值,運(yùn)用反之假設(shè)過(guò)程無(wú)前往值,或有多個(gè)前往值,運(yùn)用子過(guò)程較直觀。子過(guò)程較直觀。4.4 用戶自定義類型自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型一組不同類型變量的集合。相當(dāng)于一組不同類型變量的集合。相當(dāng)于C言
19、語(yǔ)言語(yǔ)中的構(gòu)造中的構(gòu)造(Struct)類型;類型;當(dāng)遇到簡(jiǎn)單數(shù)據(jù)類型不能表示問(wèn)題的時(shí)候,運(yùn)當(dāng)遇到簡(jiǎn)單數(shù)據(jù)類型不能表示問(wèn)題的時(shí)候,運(yùn)用復(fù)合數(shù)據(jù)類型來(lái)表示用復(fù)合數(shù)據(jù)類型來(lái)表示 由假設(shè)干根本數(shù)據(jù)類型組成。由假設(shè)干根本數(shù)據(jù)類型組成。1.1.自定義類型的定義自定義類型的定義 方式如下:方式如下: Type Type 自定義類型名自定義類型名元素名元素名(下標(biāo)下標(biāo)) As ) As 類型名類型名 元素名元素名(下標(biāo)下標(biāo)) As ) As 類型名類型名 End Type End Type 例如,以下定義了一個(gè)有關(guān)學(xué)生信息的自定義類例如,以下定義了一個(gè)有關(guān)學(xué)生信息的自定義類型型 Type StudType T
20、ype StudType No As IntegerNo As Integer 學(xué)號(hào)學(xué)號(hào) Name As String Name As String * * 20 20 姓名姓名 Sex As String Sex As String * * 1 1 性別性別 Mark(1 To 4) As SingleMark(1 To 4) As Single 4 4門課程成門課程成果果 Total As SingleTotal As Single 總分總分 End Type End Type元素名:表示自定義類型元素名:表示自定義類型中的一個(gè)成員中的一個(gè)成員下標(biāo):表示是數(shù)組下標(biāo):表示是數(shù)組類型名:為規(guī)范
21、類型類型名:為規(guī)范類型2 2自定義類型變量的聲明和運(yùn)用自定義類型變量的聲明和運(yùn)用(1) (1) 聲明方式:聲明方式: Dim Dim 變量名變量名 As As 自定義類型名自定義類型名 例例 Dim Student As StudType Dim Student As StudType (2) (2) 援用援用 方式:變量名方式:變量名. .元素名元素名 例例 表示表示StudentStudent變量中的姓名,第變量中的姓名,第4 4門課程門課程的成果,那么表示如下:的成果,那么表示如下:Student.NameStudent.Name,Student.Mark(4)Student.Mark(
22、4)3 3自定義類型數(shù)組的運(yùn)用自定義類型數(shù)組的運(yùn)用 例例4-12 4-12 利用自定義類型數(shù)組,編寫一個(gè)輸入、顯示程利用自定義類型數(shù)組,編寫一個(gè)輸入、顯示程序。序。例 打印分形圖 二叉樹加密和解密加密和解密簡(jiǎn)單加密的思想是:簡(jiǎn)單加密的思想是: 將每個(gè)字母將每個(gè)字母C C加一序數(shù)加一序數(shù)K K,式子,式子 c=chr(Asc(c)+k), c=chr(Asc(c)+k), 例如序數(shù)例如序數(shù)k k為為5 5,這時(shí),這時(shí) “A A“F F,“a a“f f,“B B“G G 當(dāng)加序數(shù)后的字母超越當(dāng)加序數(shù)后的字母超越“Z Z或或“z z那么那么 c=chr(Asc(c)-k) c=chr(Asc(c)
23、-k)。 解密為加密的逆過(guò)程。解密為加密的逆過(guò)程。常用算法常用算法 1.數(shù)制轉(zhuǎn)換 例 將一個(gè)十進(jìn)制整數(shù)m轉(zhuǎn)換成 r (216)進(jìn)制字符串。 方法:將m不斷除 r 取余數(shù),直到商為零,以反序得到結(jié)果。4.54.5常用算法常用算法 ( (三三3.3.查找查找 (1)(1)順序查找順序查找 例。例。 順序查找根據(jù)查找的關(guān)鍵值與數(shù)組中的元素逐一比順序查找根據(jù)查找的關(guān)鍵值與數(shù)組中的元素逐一比較較( (數(shù)組可無(wú)序數(shù)組可無(wú)序) )Public Sub Search(a() As Variant, ByVal key As Public Sub Search(a() As Variant, ByVal key
24、 As Variant, index%)Variant, index%) Dim i% Dim i% For i = LBound(a) To UBound(a) For i = LBound(a) To UBound(a) If key = a(i) Then If key = a(i) Then 找到,元素找到,元素的下標(biāo)在的下標(biāo)在indexindex中,終了查找中,終了查找 index = iindex = i Exit Sub Exit Sub End If End If Next i Next i index = -1 index = -1 找不到,找不到, indexindex形參
25、的值為形參的值為-1-1End SubEnd Sub平均查找次數(shù)平均查找次數(shù) n/2n/2Keya(mid) low=mid+1 查找區(qū)域減少一半,繼續(xù)直到找到或查找區(qū)域中無(wú)元素.本例用遞歸實(shí)現(xiàn)6.16 Sub birsearch(a(), low%, high%, key , index%)(2)二分法查找要查找的數(shù)組必需有序。 思想:要查找的關(guān)鍵值Key同數(shù)組的中間mid項(xiàng)元素比較:12345678111222333444555666777888Lowhighmid444Key4.4.排序排序選擇、冒泡、插入法排序等。選擇、冒泡、插入法排序等。前兩種排序欲排序的數(shù)據(jù)全部輸入后,再進(jìn)展排序;
26、前兩種排序欲排序的數(shù)據(jù)全部輸入后,再進(jìn)展排序;插入法排序每輸入一項(xiàng),馬上插入到數(shù)組應(yīng)在的位置,數(shù)組插入法排序每輸入一項(xiàng),馬上插入到數(shù)組應(yīng)在的位置,數(shù)組一直有序。一直有序。例例6.17 6.17 實(shí)現(xiàn)的步驟:實(shí)現(xiàn)的步驟: (1)(1)輸入欲排序的數(shù)據(jù)項(xiàng)輸入欲排序的數(shù)據(jù)項(xiàng)x x;在數(shù)組;在數(shù)組a a中找中找x x應(yīng)所處的位置應(yīng)所處的位置j;j; (2) (2)從數(shù)組的最后一個(gè)元素開場(chǎng)到下標(biāo)從數(shù)組的最后一個(gè)元素開場(chǎng)到下標(biāo)j j依次往后移,使依次往后移,使j j位置空出;位置空出; (3)(3)將將x x放入位置放入位置j j處,一個(gè)數(shù)據(jù)插入完成;處,一個(gè)數(shù)據(jù)插入完成; (4)(4)有假設(shè)干個(gè)數(shù)反復(fù)有
27、假設(shè)干個(gè)數(shù)反復(fù)(1)(1)(3)(3)。)( )(1iiiixfxfxx5. 5. 例例6.18 6.18 高次方程求根高次方程求根 有牛頓迭代法、二分法、弦截法等有牛頓迭代法、二分法、弦截法等1 1牛頓迭代法牛頓迭代法迭代公式:迭代公式:思想:思想: 對(duì)方程給定一個(gè)初值對(duì)方程給定一個(gè)初值x0 x0作為方程的作為方程的 近似根,利用迭代公式,求得近似根,利用迭代公式,求得x1, x1, 當(dāng)當(dāng) x1x1為求得的近似根,否那么為求得的近似根,否那么x1x1作為作為x0 x0再迭代。再迭代。01xx x0 x1 )( xf (2) (2) 二分法求根二分法求根 思想:思想: 知求根區(qū)間知求根區(qū)間a,
28、ba,b有一根,每次把求根區(qū)間減少一有一根,每次把求根區(qū)間減少一半,直到找到解或求根區(qū)間足夠小。半,直到找到解或求根區(qū)間足夠小。 方法:求方法:求a,ba,b的中點(diǎn)的中點(diǎn)c c,判別:,判別: f(c)=0,f(c)=0,,c c為求得的根,終了;為求得的根,終了; f(a)f(a)與與f(c)f(c)同號(hào),那么同號(hào),那么a,ca,c無(wú)根,替代無(wú)根,替代a a; 否那么否那么c,bc,b無(wú)根,無(wú)根,c c替代替代b b; 使求根區(qū)間減少一半,反復(fù)上述步驟,直到區(qū)使求根區(qū)間減少一半,反復(fù)上述步驟,直到區(qū)間小于精度。間小于精度。 x b a a c f(x) Public Function hal
29、fRoot(ByVal a!, ByVal b!) Dim c! Do While Abs(b - a) 0.00001 c = (a + b) / 2 If f(c) = 0 Then Exit Do ElseIf f(a) * f(c) 0 Then a = c Else b = c End If Loop halfRoot = cEnd Function6.6.例例6.196.19數(shù)值積分?jǐn)?shù)值積分有矩形法、梯形法、拋物線法又稱辛卜生法等。有矩形法、梯形法、拋物線法又稱辛卜生法等。梯形法積分的思想是:梯形法積分的思想是: 將積分區(qū)間將積分區(qū)間aa,bnbn等分,小區(qū)間的長(zhǎng)度為,等分,小區(qū)間
30、的長(zhǎng)度為, 第第i i塊小矩形的近似面積為:塊小矩形的近似面積為: 整個(gè)積分的結(jié)果為這整個(gè)積分的結(jié)果為這n n塊小面積的累加,即塊小面積的累加,即 :nabhhxfxfsiii2)()(1hxfxfSniii112)()(Public Function trapez(ByVal a!, ByVal b!, ByVal n%) As Single Dim sum!, h!, x! h = (b - a) / n sum = (f(a) + f(b) / 2 For i = 1 To n - 1 x = a + i * h sum = sum + f(x) Next itrapez = sum * hEnd Functionhxfbfafnii11)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳統(tǒng)技能中介合同
- 2025年食品烘焙設(shè)備合作協(xié)議書
- 分布式光伏發(fā)電購(gòu)售電合同
- 新型流動(dòng)人衛(wèi)激光測(cè)距儀戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 人教版六年級(jí)數(shù)學(xué)教學(xué)計(jì)劃評(píng)估方案
- 部編版四年級(jí)語(yǔ)文游戲?qū)W習(xí)的創(chuàng)新方法
- 老舊設(shè)施加固與施工保障措施
- 稅務(wù)部門服務(wù)意識(shí)提升述職范文
- 家電行業(yè)市場(chǎng)部市場(chǎng)分析計(jì)劃
- 初中憲法教育課程實(shí)施方案
- 《馬克思主義政治經(jīng)濟(jì)學(xué)概論》課程教學(xué)大綱
- 倉(cāng)庫(kù)管理基礎(chǔ)知識(shí)培訓(xùn)模板課件
- 孤獨(dú)癥康復(fù)教育人員上崗培訓(xùn)練習(xí)題庫(kù)及答案
- 環(huán)境心理學(xué)課件
- 《質(zhì)量保證體系》情況說(shuō)明
- 親人意外逝世的訃告微信群通知五篇-正式的去世訃告模板
- DB62∕T 4134-2020 高速公路服務(wù)區(qū)設(shè)計(jì)規(guī)范
- 中電朝陽(yáng)250兆瓦智慧風(fēng)儲(chǔ)一體化風(fēng)電項(xiàng)目環(huán)評(píng)報(bào)告書
- 做一個(gè)幸福教師
- 國(guó)家自然科學(xué)基金申請(qǐng)標(biāo)書模板
- 車間斷針記錄表
評(píng)論
0/150
提交評(píng)論