信息技術(shù)vb選修知識(shí)點(diǎn)_第1頁(yè)
信息技術(shù)vb選修知識(shí)點(diǎn)_第2頁(yè)
信息技術(shù)vb選修知識(shí)點(diǎn)_第3頁(yè)
信息技術(shù)vb選修知識(shí)點(diǎn)_第4頁(yè)
信息技術(shù)vb選修知識(shí)點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、選修知識(shí)點(diǎn) (二)算法 、 算法定義:是解決問(wèn)題的方法和步驟。算法是程序設(shè)計(jì)的“靈魂”。算法+數(shù)據(jù)結(jié)構(gòu)=程序。 二、算法的描述方法:分自然語(yǔ)言、流程圖和偽代碼三種。 1、 自然語(yǔ)言:人們?nèi)粘I钪械恼Z(yǔ)言(本國(guó)語(yǔ)言),用自然語(yǔ)言描述符合我們的習(xí)慣,且容易理解。 2、流程圖:也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。 3、偽代碼:是介于自然語(yǔ)言和計(jì)算機(jī)程序語(yǔ)言之間的一種算法描述。是專業(yè)軟件開(kāi)發(fā)人員常用方法。 2、確定性:每一步都有確切的含義。 3、可行性:原則上能精確運(yùn)行,用紙和筆做有限次運(yùn)算后即可完成。 4、輸入:有零個(gè)或多個(gè)輸入。 5、輸出:至少產(chǎn)生一個(gè)輸出。

2、 (三)程序設(shè)計(jì)基礎(chǔ) 計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言經(jīng)歷了 機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言的發(fā)展過(guò)程。 常用高級(jí)語(yǔ)言:BASIC VB Pascal、C、C+、Java、Delphi、Fortran、Powerbuilder 等。 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,如vb :其中的對(duì)象主要是系統(tǒng)設(shè)計(jì)好的對(duì)象,包括窗體、控件等。 控件:是指工具箱中的工具在窗體中畫(huà)出的能實(shí)現(xiàn)一定功能的部件,如標(biāo)簽、文本框、命令按鈕等。 控件 對(duì)象的類型 前綴 名子舉例 窗體 Form frm frmfind 命令按鈕 Comma nd cmd cmdok 標(biāo)簽 Label lbl lbli nput 文本框 TextBox txt tx

3、tClock 右命令按鈕(Command的 Enabled屬性設(shè)置為T(mén)rue時(shí)按鈕有效,設(shè)置為False時(shí)按鈕無(wú)效 對(duì)象的三要素:屬性、方法、事件 屬性 Name 設(shè)置對(duì)象的名稱 Font 設(shè)置控件中子體格式 Capti on 決定控件中顯示的內(nèi)容 BackColor 設(shè)置控件背景色 Text 決定窗體中文本框中顯示的內(nèi)容 ForeColor 設(shè)置控件的前景色(即文字顏色) Height 決定控件高度 Top 決定控件與窗體頂部的距離 Width 決定控件寬度 Left 決定控件與窗體左邊的距離 Visible 設(shè)置控件是否可見(jiàn) BorderStyle 設(shè)置控件的邊框風(fēng)格 Alig nment

4、 即標(biāo)簽文字對(duì)齊屬性:(0)Left Justify時(shí)文本左對(duì)齊; (1)Right Justify時(shí)文本右對(duì)齊;設(shè)置為(2)Center 時(shí)文本居中。 對(duì)象中屬性可以在設(shè)計(jì)界面時(shí)通過(guò)屬性窗中設(shè)置,也可以在運(yùn)行時(shí)通過(guò)賦值語(yǔ)句在代碼窗口設(shè)置: 對(duì)象名屬性名=屬性值 例:給文本框Txt123的Text屬性賦值為字符串” 20”,代碼如下:=“ 20 ” 注意:如果直接給對(duì)象名賦值的話,是賦值給對(duì)象的默認(rèn)屬性。 例:Txt123 =“ 20 ” 相當(dāng)于 =“ 20 ”都是給文本框Txt123的text屬性賦值。 如果要獲取對(duì)象的狀態(tài)或特性,這時(shí)就要讀取對(duì)象的屬性值,方法如下:變量名=對(duì)象名屬性名 例

5、:讀取文本框“ txt123 ”的“ Text ”屬性的代碼如下:a = 方法常見(jiàn)的方法如下: Print Cis Move Show 格式:對(duì)象.方法參數(shù)名表例:”歡迎使用” 事件及事件驅(qū)動(dòng)常見(jiàn)的事件如下:Click 、DblClick 、KeyPress、Load、MouseUp等。 事件是對(duì)象對(duì)外部操作的響應(yīng),如在程序執(zhí)行時(shí),單擊命令按鈕會(huì)產(chǎn)生一個(gè)Click事件。如需要命令按 鈕響應(yīng)Click事件,就把完成 Click事件功能的代碼寫(xiě)到 Click事件的事件過(guò)程中,與事件對(duì)應(yīng)。 事件過(guò)程的形式如下:Private Sub 對(duì)象名_事件名() (事件過(guò)程代碼) End Sub 一、常量:指

6、在程序進(jìn)行過(guò)程中不變的量,在VB中一般分?jǐn)?shù)值常量與字符常量?jī)煞N 數(shù)值常量:就是數(shù)學(xué)中說(shuō)的常數(shù),分整型常量和實(shí)型常量?jī)煞N 整型常量:即整數(shù),指不帶小數(shù)點(diǎn)的數(shù)值如1、0、-10、+35等都是合法的整數(shù) 實(shí)型常量:即實(shí)數(shù),指帶小數(shù)點(diǎn)的數(shù)值。 實(shí)型常量又分為定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種。 例:定點(diǎn)數(shù):和,浮點(diǎn)數(shù):2E6、1E5 88E 3 例:X 10可表示為,字母 E表示底數(shù)10 浮點(diǎn)數(shù)就是數(shù)學(xué)上的科學(xué)計(jì)數(shù)法。 字符串常量:被一對(duì)英文雙引號(hào)括起來(lái)的若干個(gè)合法的字符稱為字符串常量。例如:” China ”、” Visual Basic”、” 18 ”、”等,是指英文雙引號(hào)中的字符,不包括英文雙引號(hào)本身。 符號(hào)常

7、量:如果多次用到同一個(gè)常量,則可用一個(gè)有意義的名字表示這個(gè)常量。 二、變量:在程序執(zhí)行過(guò)程中,其值可以改變的量稱為變量。變量命名注意要點(diǎn): 1、必須以字母或漢字 開(kāi)頭,不能以數(shù)字或其他字符開(kāi)頭。 2、只能由字母、漢字、數(shù)字或下劃線 組成,不能含有小數(shù)點(diǎn)、空格等字符。 3、最長(zhǎng)不超過(guò)255個(gè)字符 4、 不能以VB保留字作變量名,如語(yǔ)句定義符、函數(shù)名(Integer、End、Print、Dim)等。 5、 VB不區(qū)分變量名中字母 大小寫(xiě)。女口 HELLO和Hello是同一個(gè)變量。 三、數(shù)據(jù)及運(yùn)算 1、常用數(shù)據(jù)類型:(框選的內(nèi)容都要熟記) 關(guān)輩字 所占內(nèi)存 取值范國(guó) Integer 2字節(jié) -327

8、68 - 32767 Long 4字節(jié) -2147483648 -2147483647 Single 4字節(jié) 直數(shù) -3.402823E38 - L4O1298E-45 單抗度理 正毀:1.40129WE-45 3.402823 貢敎:-3.797693134E308 - -4.940656458E-324 畝持度型 Double 當(dāng)字節(jié) 4.940656458E-324- 1,797693134E308 String 1字節(jié)+4 :定悅竽祐申: 0-65535個(gè)字苻 字舟串璽 苻串從廈 衣定長(zhǎng)字軒串* D 2仆億個(gè)字苻 Buulcan 2字節(jié) True 或 False 口期世 Date *字

9、節(jié) 100/1/1 -9999“ 2 2、常量和變量的命名、聲明及賦值(注意:符號(hào)常量聲明和賦值必須一起完成,變量卻必須分2句) 符號(hào)常量的聲明和賦值Const常量名As常量類型=常量值(或表達(dá)式) 女口: Con st pi As Si ngle =常量名為 pi 注意:常量必須在聲明的時(shí)候 立馬賦值,如果沒(méi)有 “=3”部分就是錯(cuò)誤的。 變量的聲明:Dim 變量名As 變量類型 女口: Dim a As Integer定義一個(gè)整型變量,變量名為 a 變量的賦值 VB中使用“=”給變量賦值,其形式為:變量名=表達(dá)式 四、運(yùn)算符 1、算術(shù)運(yùn)算符 (注意 :算術(shù)運(yùn)算符的優(yōu)先級(jí)問(wèn)題、區(qū)分/ Mod

10、三個(gè)運(yùn)算符) 實(shí)例 X 1 2*10 1024 注意: 和 mod 冷 -5+2 -3 的運(yùn)算 * - 5*4 20 量如果 / 除 J 乞2 2 5 帶小數(shù), 4 5 2 r 要先四 舍五入 M(m1 5 52 1 取整,再 + 2、字符串運(yùn)算符 加 威 “ +”和 6 “ 姓名 ”;Tab (30); 成績(jī)” (2) Space函數(shù)。 功能:產(chǎn)生由n個(gè)空格所組成的字符串。 6、用戶交互函數(shù) VB提供InputBox() 和MsgBox()函數(shù)用于人機(jī)交互。 (1) InputBox ()格式:InputBox(提示,標(biāo)題,默認(rèn)值,X 坐標(biāo),丫坐標(biāo)) 功能:在程序中調(diào)用InputBox函數(shù),

11、將產(chǎn)生一個(gè)提示用戶輸入內(nèi)容的輸入框,等待用戶輸入信息,并返 Lined 回字符串類型的數(shù)據(jù)。 用戶要想得到InputBox ()函數(shù)的 返回值,就必須將函數(shù)的結(jié)果賦值給指定的變量。 格式為:變量=InputBox(提示,標(biāo)題,默認(rèn)值)注意:每執(zhí)行一次In putBox()函數(shù),用戶只能輸入一個(gè)數(shù)據(jù)。輸入框的樣式是固定的,我們可以改變的 是輸入框的“提示”和“標(biāo)題”的內(nèi)容。 例如:r = InputBox ( 請(qǐng)輸入r, 輸入圓半徑) 2. MsgBox()格式為:MsgBox(提示信息,按鈕,標(biāo)題) 功能:用于在程序運(yùn)行過(guò)程中產(chǎn)生一個(gè)消息框,可以看作是輸出對(duì)話框,該函數(shù)的返回值為數(shù)值型數(shù)據(jù)。

12、格式:MsgBox(提示信息,按鈕,標(biāo)題) 例如:p=MsgBox(你輸入的密碼不正確,是否繼續(xù),vbYesNo ,錯(cuò)誤提示) 錯(cuò)誤提示 您輸入的密碼鄧正確是否繼續(xù)? 當(dāng)用戶單擊消息框中的一個(gè)按鈕后,消息框即從屏幕上消失。在上面的語(yǔ)句中,將函數(shù)的返回值賦 給變量P,在程序中可引用P作相應(yīng)的處理。 六、常用語(yǔ)句 1、賦值語(yǔ)句 格式1: Let變量=表達(dá)式功能:將右邊表達(dá)式的結(jié)果賦給左邊變量。 通常情況,Let可以省略。”=為賦值號(hào)。它與數(shù)學(xué)中的”=是不同的。特別要 跟方程式區(qū)分開(kāi)。如: X=5即把數(shù)值5賦值給變量X Y =5 Mod 2 + 7即先計(jì)算表達(dá)式5 Mod 2 + 7 的值,再將值8

13、賦值給變量Y N =N + 1即將N的值加1后后再賦給N X=Y即將變量丫的值賦值給變量X 也可以在一行內(nèi)給多個(gè)變量賦值,兩條語(yǔ)句之間用冒號(hào)”: 隔開(kāi),如:s=0: a=l: b=2 格式2:對(duì)象名.屬性名=表達(dá)式如果省略屬性名,則直接賦值給對(duì)象的默認(rèn)屬性。 女口: Text1. Text = 你好!即把字符串你好! 賦給Text l 的Text屬性。 注意:賦值語(yǔ)句一般都獨(dú)立成行,如果有類似賦值的語(yǔ)句出現(xiàn)在一些結(jié)構(gòu)中,大家要會(huì)辨別。 例如跟在以下關(guān)鍵字之后If x=5 While x=5 Un til x=5 Print x=5 以上結(jié)構(gòu)中的x=5 不再是賦值語(yǔ)句,因?yàn)?在這里是個(gè)關(guān)系運(yùn)算符

14、,判斷左右是否相等,所 以x=5是一個(gè)關(guān)系表達(dá)式,其值應(yīng)該是個(gè)邏輯型,不是True 就是False。 2、Print 語(yǔ)旬 格式:對(duì)象名.Print 表達(dá)式列表 功能:Print方法具有計(jì)算和輸出雙重功能。對(duì)于表達(dá)式,它先計(jì)算其值,然后再在指定的對(duì) 象上輸出文本,對(duì)于常量、變量則直接輸出其值。對(duì)象可以是窗體、圖片框、打印機(jī)等?!睂?duì)象名” 可以省略,省略時(shí)表示在當(dāng)前窗體上輸出數(shù)據(jù)。 說(shuō)明:(1 )表達(dá)式列表可以是一個(gè)或多個(gè)表達(dá)式,之間用英文的”;”或”,”隔開(kāi)。如果用 逗號(hào)分 隔,則按標(biāo)準(zhǔn)輸出格式 輸出各數(shù)據(jù),此時(shí)以14個(gè)字符位置為一個(gè)區(qū)段,逗號(hào)后的表達(dá)式在下一個(gè)區(qū)段輸 出;如果之間用 分號(hào)分隔

15、,則按 緊湊格式 輸出數(shù)據(jù)。 例:Print 1 ; 2 ; 3 ; 4 + 3Print l , 2,3,4 + 3 輸出結(jié)果為:1 2 3 7輸出結(jié)果為:1237 (2) 如果Print語(yǔ)句末尾沒(méi)有逗號(hào)或分號(hào),表示該P(yáng)rint輸出完結(jié)果后自動(dòng)換行,后面再執(zhí)行Print 時(shí)將在下一行的起始位置輸出數(shù)據(jù);如果在Print語(yǔ)句末尾使用逗號(hào),則在同一行上跳到下一個(gè)輸出區(qū)段 輸出下一個(gè)Print所輸出的內(nèi)容。如果在Print語(yǔ)句的末尾加上一個(gè)分號(hào),表示下一個(gè)Print輸出的內(nèi)容將 按緊湊格式緊跟在前一個(gè)Print所輸出的內(nèi)容后面; (3) 當(dāng)一個(gè)Print語(yǔ)句的后面無(wú)任何表達(dá)式 時(shí),則輸出一空行或

16、換行。 注意:與Tab ()函數(shù)結(jié)合使用,掌握各種圖形的輸出。 3、注釋語(yǔ)句 為了提高程序的可讀性,通常需要在程序的適當(dāng)位置加上必要的注釋。在VB中添加注釋語(yǔ)句的方法 為在字符后加注釋內(nèi)容或采用” Rem注釋內(nèi)容”兩種形式。 格式1:注釋內(nèi)容 用寫(xiě)的注釋語(yǔ)句既可以單獨(dú)寫(xiě)一行,也可以跟在其他語(yǔ)句后。 格式2: Rem注釋內(nèi)容 用Ren寫(xiě)的注釋語(yǔ)句必須單獨(dú)寫(xiě)一行。 4、 結(jié)束語(yǔ)旬格式:End功能:強(qiáng)制程序結(jié)束運(yùn)行。 Private Sub Comma nd1_Click() End End Sub該過(guò)程用于結(jié)束程序,即單擊命令按鈕Comma ndl時(shí),結(jié)束程序的運(yùn)行。 (四) 程序設(shè)計(jì)的三大基本結(jié)

17、構(gòu) 一、順序結(jié)構(gòu) 代碼按照由上到下的順序一行一行地執(zhí)行。程序執(zhí)行過(guò)程中沒(méi)有分支、沒(méi)有重復(fù)。 二、分支結(jié)構(gòu)(選擇結(jié)構(gòu)) 程序在運(yùn)行時(shí)會(huì)根據(jù)不同的條件決定程序的走向。實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有If語(yǔ)句和Select語(yǔ)句。 1、If語(yǔ)句分為單分支 、雙分支和多分支三類 。 (1)單分支if結(jié)構(gòu): (注意:行if和 塊if的區(qū)別只在書(shū)寫(xiě)格式上。) 行if語(yǔ)句: IF 條件表達(dá)式 Then 語(yǔ)句 A 塊if語(yǔ)句: IF 條件表達(dá)式 Then 語(yǔ)句A End if 雙分支if結(jié)構(gòu): 行if 語(yǔ)句:IF 條件表達(dá)式 Then 語(yǔ)句A Else 語(yǔ)句B 塊if語(yǔ)句:IF 條件表達(dá)式 Then 語(yǔ)句A ELSE 語(yǔ)句

18、B 甲圈 注意:要會(huì)區(qū)分選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的流程圖。 如上圖:甲為循環(huán)結(jié)構(gòu),有向上回到條件框的箭頭。 乙為選擇結(jié)構(gòu)(雙分支)。 (3)多分支If語(yǔ)句 If The n Elself Then Else End If 2、Select Case 語(yǔ)句 Select Case Case 表達(dá)式列表1 語(yǔ)句組1 Case 表達(dá)式列表2 語(yǔ)句組2 Case ELSE 語(yǔ)句組N+1 End Select Select/Case語(yǔ)句的執(zhí)行過(guò)程 是:先求”測(cè)試表達(dá)式”的值,然后順序測(cè)試該值符合哪一個(gè)Case子句的 情況,如果找到了,則直接執(zhí)行該Case子句下面的語(yǔ)句塊,然后執(zhí)行End Select的后續(xù)語(yǔ)句

19、;如果沒(méi)找 到,則執(zhí)行Case Else下面的語(yǔ)句塊,然后執(zhí)行 End Select的后續(xù)語(yǔ)句。 說(shuō)明:(1)測(cè)試表達(dá)式”可以是數(shù)值型或字符串型表達(dá)式。 (2)表達(dá)式列表形式有以下4種。 一個(gè)表達(dá)式或用逗號(hào)隔開(kāi)的若干表達(dá)式,例如2, 4, 6, 8。 表達(dá)式1 To表達(dá)式2,例如60 To 80。注意,表達(dá)式1應(yīng)該小于 表達(dá)式2 Is關(guān)系運(yùn)算符表達(dá)式,例如Is 80。 表達(dá)式,例如x+3。 三、循環(huán)結(jié)構(gòu) 1、For-Next循環(huán)(適合于解決循環(huán)次數(shù)事先能夠確定的問(wèn)題。) For循環(huán)變量一般形式是: For循環(huán)變量=初值To終值Step 步長(zhǎng)值 循環(huán)體 Next 循環(huán)變量 說(shuō)明:(1)循環(huán)變量,

20、必須為數(shù)值型。循環(huán)初值、循環(huán)終值也是數(shù)值型或數(shù)值表達(dá)式。 (2 )循環(huán)的有效區(qū)間是由循環(huán)初值、循環(huán)終值所限定的閉區(qū)間。 (3)步長(zhǎng)值是循環(huán)變量的增量,是一個(gè)數(shù)值表達(dá)式。若步長(zhǎng)值為正,則初值就應(yīng)小于終值,否則循環(huán)體 一次都不執(zhí)行;若步長(zhǎng)值為負(fù),則初值應(yīng)大于終值,否則循環(huán)體一次都不執(zhí)行。如果步長(zhǎng)值是1,Step 1 可略去不寫(xiě)。但若步長(zhǎng)值為0,會(huì)造成死循環(huán),這是要避免的,可用Ctrl+Break 結(jié)束程序。 (4)循環(huán)體是For語(yǔ)句和Next語(yǔ)句之間的語(yǔ)句序列,也是需要重復(fù)執(zhí)行的語(yǔ)句組。 (5)Next后的循環(huán)變量與For語(yǔ)句中的循環(huán)變量必須相同。 (6)循環(huán)的次數(shù)=(循環(huán)終值-循環(huán)初值)步長(zhǎng)值+

21、 1 For/ Next循環(huán)語(yǔ)句的執(zhí)行過(guò)程: (1)系統(tǒng)將初值賦給循環(huán)變量,并自動(dòng)記下終值和步長(zhǎng)。 (2) 檢查循環(huán)變量的值是否越過(guò)終值。如越過(guò)就結(jié)束循環(huán),執(zhí)行Next后面的語(yǔ)句;否則執(zhí)行一次循環(huán)體。 (3) 執(zhí)行Next語(yǔ)句:將循環(huán)變量增加一個(gè)步長(zhǎng)值再賦給循環(huán)變量,轉(zhuǎn)到第2步繼續(xù)執(zhí)行循環(huán)。 2、Do Loop循環(huán)(對(duì)于不能預(yù)先確定次數(shù),但需要執(zhí)行多次的情況,可以使用Do/Loop循環(huán)。) 格式一:Do While條件表達(dá)式 循環(huán)體 Loop 先判斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時(shí)退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。 格式二:Do 循環(huán)體 Loop While條件表達(dá)式 先執(zhí)行

22、一次循環(huán)體,再判斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時(shí)退出循環(huán)。因此至少 執(zhí)行一次循環(huán)體。 格式三: Do 循環(huán)體 Loop Un til條件表達(dá)式 先執(zhí)行一次循環(huán)體,再判斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時(shí)退出循環(huán)。因此至少 執(zhí)行一次循環(huán)體。 格式四:Do Un til條件表達(dá)式 循環(huán)體 Loop 先判斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時(shí)退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。 注意:If 語(yǔ)句 和Do語(yǔ)句中都有的”條件表達(dá)式”,一般是一個(gè)關(guān)系表達(dá)式或邏輯表達(dá)式,其值不是 True就是False。但如果是數(shù)值型的表達(dá)式的話,會(huì)進(jìn)行強(qiáng)制轉(zhuǎn)換,即數(shù)字0轉(zhuǎn)換成F

23、alse ,非0轉(zhuǎn) 換成True。 (五)算法與冋題解決 一、解析法 解析法又稱公式法。解析法就是在分析具體問(wèn)題的基礎(chǔ)上,抽取出一個(gè)數(shù)學(xué)模型,這個(gè)數(shù)學(xué)模型能 用若干個(gè)解析表達(dá)式表示出來(lái)。求解了這些表達(dá)式,問(wèn)題也就得以解決。 如:求解一元二次方程 a*xA2+b*x+c=0的實(shí)根 dim x1 as double , x2 as double dim a AS Double,b AS Double,c AS Double if b*b-4*a*c=0 then x仁(-b+sqr(b*b-4*a*c)/(2*a) x2=(-b-sqr(b*b-4*a*c)/(2*a) =str(x1) 分析:

24、X=b Vb2 4ac 2a x仁(-b+sqr(b*b-4*a*c)/(2*a) =str(x2) else print “方程無(wú)解” end if x2=(-b-sqr(bA2-4*a*c)/(2*a) 二、窮舉法 窮舉法是將求解對(duì)象 一一列舉出來(lái),然后 逐一加以分析、處理,并驗(yàn)證 結(jié)果是否滿足給定的條件, 窮舉完所有對(duì)象,問(wèn)題將最終得以解決。窮舉法也叫枚舉法、列舉法。 窮舉法關(guān)鍵是如何列舉所有可能的情況,不能遺漏,也不能重復(fù)。注意取值范圍,減少計(jì)算機(jī)工作 量。 適用編程問(wèn)題:水仙花問(wèn)題、雞兔同籠問(wèn)題、百錢(qián)百雞問(wèn)題、素?cái)?shù)問(wèn)題。 如:已知公雞每只3元,母雞每只5元,每3只小雞1元。用100元

25、錢(qián)買100只雞,應(yīng)各買多少只雞 Dim a As In teger, b As In teger,c As In teger Dim a As In teger, b As In teger For a=0 to 33公雞數(shù) Dim c As In teger For b=0 to 20母雞數(shù) For a=0 to 33公雞數(shù) For c=0 to 100小雞數(shù) For b=0 to 20母雞數(shù) If a+b+c=100 and a*3+b*5+c/3=100 then c=100-a-b小雞數(shù) Print a;b;c If a*3+b*5+c/3=100 then end if Print

26、a;b;c Next c end if Next b Next b Next a Next a 三、數(shù)組及其應(yīng)用 數(shù)組是一組相同類型的變量集合。數(shù)組用一個(gè)統(tǒng)一的名字代表邏輯上相關(guān)的一批數(shù)據(jù),每個(gè)元素 靠下標(biāo)變量來(lái)區(qū)分。有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組。數(shù)組中的數(shù)據(jù),邏輯上是相互關(guān)聯(lián)的。 1、 使用數(shù)組要先聲明數(shù)組的大小和數(shù)據(jù)類型。聲明數(shù)組的格式如下: Dim 數(shù)組名(最大下標(biāo)常量)As 數(shù)據(jù)類型 例 1: Dim s (9) As Integer 表示:名稱為s的一維數(shù)組中包含10個(gè)元素,下標(biāo)從 O1U 9。用來(lái)存放整型數(shù)據(jù)。 也可以指定下標(biāo)的起始值。 例 2: Dim x (2 to 10) A

27、s Si ngle 這個(gè)數(shù)組含有9個(gè)元素,下標(biāo)從2到 10,數(shù)據(jù)類型屬于單精度實(shí)型。 還可以說(shuō)明多維數(shù)組。 例 3: Dim D (4, 2 To 6, 3 To 9) As long 說(shuō)明了一個(gè)3維數(shù)組,一共5*5*7個(gè)數(shù)組成員,數(shù)據(jù)類型屬于長(zhǎng)整型。 2、應(yīng)注意的問(wèn)題: (1 )在同一個(gè)程序中,任何數(shù)組只能聲明一次。例如: Dim s(5) As In teger Dim s(10) As In teger這樣,運(yùn)行時(shí)會(huì)報(bào)錯(cuò):當(dāng)前范圍內(nèi)的聲明重復(fù)。 (2) 下標(biāo)必須是常量且為整數(shù)(若不是整數(shù),程序運(yùn)行時(shí)自動(dòng)4舍5入為整數(shù))。 (3) 同一個(gè)程序中,數(shù)組名不能與變量名相同。例如: Dim s

28、As In teger 這樣,運(yùn)行時(shí)會(huì)報(bào)錯(cuò):變量與數(shù)組不能同名。 Dim s (10) As In teger (4 )數(shù)組必須先聲明后使用 否則運(yùn)行時(shí)會(huì)報(bào)錯(cuò):子程序或函數(shù)未定義。 (5) 數(shù)組使用時(shí),下標(biāo)不能超出聲明的范圍。例如: Dim s (10) As In teger Print s(11)這樣運(yùn)行時(shí)會(huì)報(bào)錯(cuò):下標(biāo)越界。 (6) 數(shù)組聲明時(shí)和變量一樣,要注意類型。例如: Dim s (10) As In teger S(3)=40000這樣運(yùn)行時(shí)會(huì)報(bào)錯(cuò):溢出。 3、數(shù)組的應(yīng)用 數(shù)組的賦值、計(jì)算、輸出通常都與For Next循環(huán)結(jié)合使用。For語(yǔ)句中的循環(huán)變量作為數(shù)組元素的下 標(biāo),通過(guò)循

29、環(huán)變量的不斷改變,達(dá)到對(duì)每個(gè)數(shù)組元素依次進(jìn)行處理的目的。 例子:利用數(shù)組實(shí)現(xiàn):輸出10個(gè)1,100的隨機(jī)數(shù),并輸出它們的和與平均值。 Dim a(9) As In teger數(shù)組的定義 Dim s As In teger Randomize將RND函數(shù)隨機(jī)化 For i = 0 To 9 a ( i ) = In t(100 - 1 + 1) * Rnd) + 1 Print a( i ) s = s + a( i ) Next i Print 和為:”;s Print 平均值為:;s/10 27 12 g 4 31 94 7S 74 13 2 和対:34T 平均值為:34. T 四、順序查找

30、 順序查找是查找算法中簡(jiǎn)單、易行的算法。進(jìn)行查找時(shí)一般從數(shù)據(jù)的第一個(gè)元素開(kāi)始,按照數(shù)據(jù)的 順序查找指定的關(guān)鍵值。如果被查數(shù)據(jù)和該關(guān)鍵值相匹配,則表示找到;如果所有數(shù)據(jù)與關(guān)鍵值都不匹 配,則表示被查數(shù)據(jù)中不存在該關(guān)鍵值,查找失敗。順序查找的數(shù)據(jù)不要求是有序的。 五、 二分法查找(二分法查找也叫折半查找)二分法查找要求被查數(shù)據(jù)是有序的 查找思路:對(duì)于有序數(shù)列(從小到大排),設(shè)定下界 low (最小元素下標(biāo))和上界 high (最大元素 下標(biāo)),當(dāng)滿足條件lowhigh,則說(shuō)明找不到。 Dim a(9) As In teger Dim mid As In teger a(0)=12 : a(1)=2

31、0 : a(2)=27 : a(3)=36 : a(4)=45 : a(5)=50 : a(6)=55 : a(7)=60 : a(8)=79 : a(9)=105 low = 0 : high = 9 Do While low = high mid = (low + high) 2注意:mid 是中點(diǎn)位置,而 a(mid) 是中點(diǎn)位置的值 If a(mid) = 55 Then Print 找到了 ” Exit Do Else If a(mid) high Then print 沒(méi)有 55! 六、冒泡排序 排序的種類有交換排序、選擇排序、快速排序等?!懊芭莘ㄅ判颉币步小捌鹋莘ㄅ判颉?,是一種比

32、較 簡(jiǎn)單、易懂的交換排序方法。它通過(guò)將相鄰元素進(jìn)行比較和交換,逐步將一個(gè)無(wú)序序列排列為一個(gè)有序 序列。簡(jiǎn)單說(shuō):就是對(duì)相鄰數(shù)據(jù)兩兩比較,將符合條件的數(shù)據(jù)”冒上來(lái)”(沉下去),然后用同樣的方法再 冒泡”處理余下的數(shù)據(jù),直至全部數(shù)據(jù)完成排序。 (1)標(biāo)準(zhǔn)的從后往前的升序 Dim a(9) As In teger For i = 0 To 9 a(i) = In t(100 - 1 + 1) * Rnd) + 1 Print a(i); Next i 定義數(shù)組 給數(shù)組的每個(gè)元素賦值1,100的隨機(jī)數(shù)并輸 出 Forj = 1 To 9 For i = 9 To j step -1 If a(i ) a

33、(i+1) Then t = a(i+ 1) a(i+ 1) = a(i) a(i) = t End If Next i Next j 將數(shù)組中元素從小到大冒泡排序 從a(0)開(kāi)始比較、交換(大的往后換) 外循環(huán)控制排序的趟數(shù) 內(nèi)循環(huán)控制每一趟排序比較的成員和次數(shù) For k= 0 To 9 Print a(k); Next k 顯示排序后的數(shù)組兀素 七、遞歸法 1、自定義函數(shù):編程者自己編寫(xiě)的函數(shù)。自定義函數(shù)定義格式: Function 函數(shù)名稱 ( 參數(shù)列表 )As 類型 局部常量、變量說(shuō)明 語(yǔ)句組 函數(shù)名=返回值 End Function 自定義函數(shù)的調(diào)用有三種格式:格式1:變量=函數(shù)名

34、稱(參數(shù)) 格式2: Call函數(shù)名稱(參數(shù)) 格式3:函數(shù)名稱參數(shù) 2、 遞歸法 如果一個(gè)函數(shù)在定義時(shí),直接或間接地調(diào)用了自己,這種算法稱為遞歸法。例如函數(shù)A自己 調(diào)用了自己。另外如果 函數(shù)A調(diào)用了函數(shù)B,函數(shù)B反過(guò)來(lái)再調(diào)用函數(shù) A的算法,這也是遞歸算法。用 遞歸寫(xiě)出的算法往往十分簡(jiǎn)潔。遞歸法一般需要自定義函數(shù)或過(guò)程來(lái)實(shí)現(xiàn)。 例1:用遞歸函數(shù)求 n!注意 給函數(shù)名s賦的值,就是該函數(shù)的返回結(jié)果值。 Fun ction s(n As In teger)自定義遞歸函數(shù)的過(guò)程 If n=1 the ns=1 Elses=n *s( n-1) End Fun cti on Private Sub Comma nd1_Click() Dim n As In teger n = Val(InputBox(請(qǐng)輸入 N 的值) Print s(n)調(diào)用遞歸函數(shù) End Sub 分析:5!=5*4! 4!=4*3! 3!=3*2! 2!=2*1! 1!=1 n !=n*( n-1)! 如果用s(n)來(lái)表示n!, 當(dāng) n=1 時(shí),s(n)= 當(dāng) n1 時(shí),s(n)= 例2:求兩個(gè)自然數(shù),它們的和是667,最小公倍數(shù)與最大公約數(shù)之比是 60 : 1。 分析:設(shè)兩個(gè)自然數(shù)中較小的一個(gè)為 m顯然m = 1是不滿足條件的,m勺取值范圍應(yīng)是

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論