2017 信息技術vb選修知識點_第1頁
2017 信息技術vb選修知識點_第2頁
2017 信息技術vb選修知識點_第3頁
2017 信息技術vb選修知識點_第4頁
2017 信息技術vb選修知識點_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選文檔選修知識點(一) 計算機解決問題的流程圖(二)算法一、 算法定義:是解決問題的方法和步驟。算法是程序設計的“靈魂”。算法+數據結構程序。二、算法的描述方法:分自然語言、流程圖和偽代碼三種。1、自然語言:人們日常生活中的語言(本國語言),用自然語言描述符合我們的習慣,且容易理解。2、流程圖:也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。3、偽代碼:是介于自然語言和計算機程序語言之間的一種算法描述。是專業軟件開發人員常用方法。輸入、輸出判斷處理、運算連接點流程線開始、結束三、算法的5個特征:1、有窮性:執行有限步之后結束,且每一步的執行時間也都是有限的。2、確

2、定性:每一步都有確切的含義。3、可行性:原則上能精確運行,用紙和筆做有限次運算后即可完成。4、輸入:有零個或多個輸入。5、輸出:至少產生一個輸出。(三)程序設計基礎計算機程序設計語言經歷了機器語言、匯編語言、高級語言的發展過程。常用高級語言:BASIC、VB、Pascal、C、C+、Java、Delphi、Fortran、Powerbuilder等。面向對象的程序設計語言,如vb:其中的對象主要是系統設計好的對象,包括窗體、控件等。控件:是指工具箱中的工具在窗體中畫出的能實現一定功能的部件,如標簽、文本框、命令按鈕等。控件對象的類型前綴名字舉例窗體Formfrmfrmfind命令按鈕Comma

3、ndcmdcmdok標簽Labellbllblinput文本框TextBoxtxttxtClock若命令按鈕(Command)的Enabled屬性設置為True時按鈕有效,設置為False時按鈕無效常用控件:對象的三要素 :屬性 、方法 、事件l 屬性Name設置對象的名稱Font設置控件中字體格式Caption決定控件中顯示的內容BackColor設置控件背景色Text決定窗體中文本框中顯示的內容ForeColor設置控件的前景色(即文字顏色)Height決定控件高度Top決定控件與窗體頂部的距離Width決定控件寬度Left決定控件與窗體左邊的距離Visible設置控件是否可見Border

4、Style設置控件的邊框風格Alignment即標簽文字對齊屬性:(0)Left Justify時文本左對齊;(1)Right Justify時文本右對齊; 設置為(2)Center時文本居中。對象中屬性可以在設計界面時通過屬性窗中設置,也可以在運行時通過賦值語句在代碼窗口設置:對象名.屬性名屬性值例:給文本框Txt123的Text屬性賦值為字符串”20”,代碼如下:Txt123.text = “ 20 ” 注意:如果直接給對象名賦值的話,是賦值給對象的默認屬性。例: Txt123 = “ 20 ” 相當于 Txt123.text = “ 20 ” 都是給文本框Txt123的text屬性賦值。

5、如果要獲取對象的狀態或特性,這時就要讀取對象的屬性值,方法如下:變量名對象名.屬性名例:讀取文本框“txt123”的“Text”屬性的代碼如下:a = txt123.textl 方法 常見的方法如下:Print Cls Move Show 格式:對象.方法參數名表例 :Form1.Print ”歡迎使用”l 事件及事件驅動 常見的事件如下: Click 、 DblClick 、KeyPress 、Load 、MouseUp 等。事件是對象對外部操作的響應,如在程序執行時,單擊命令按鈕會產生一個Click事件。如需要命令按鈕響應Click事件,就把完成Click事件功能的代碼寫到Click事件的

6、事件過程中,與事件一一對應。事件過程的形式如下: Private Sub 對象名_事件名( )(事件過程代碼)End Sub一、常量:指在程序進行過程中不變的量,在VB中一般分數值常量與字符常量兩種數值常量:就是數學中說的常數,分整型常量和實型常量兩種整型常量:即整數,指不帶小數點的數值如1、0、-10、+35等都是合法的整數實型常量:即實數,指帶小數點的數值。實型常量又分為定點數和浮點數兩種。例:定點數:3.14159和-6.8,1.99 浮點數:2E6、1E5、88E例:1.2345×103 可表示為1.2345E3,字母E表示底數10浮點數就是數學上的科學計數法。字符串常量:被

7、一對英文雙引號括起來的若干個合法的字符稱為字符串常量。例如:”China”、”Visual Basic”、”18”、”3.1415”等,是指英文雙引號中的字符,不包括英文雙引號本身。 符號常量:如果多次用到同一個常量,則可用一個有意義的名字表示這個常量。二、變量:在程序執行過程中,其值可以改變的量稱為變量。變量命名注意要點:1、必須以字母或漢字開頭,不能以數字或其他字符開頭。2、只能由字母、漢字、數字或下劃線組成,不能含有小數點、空格等字符。3、最長不超過255個字符4、不能以VB保留字作變量名,如語句定義符、函數名(Integer、End、Print、Dim)等。5、VB不區分變量

8、名中字母大小寫。如HELLO和Hello是同一個變量。三、數據及運算1、常用數據類型: (框選的內容都要熟記)2、常量和變量的命名、聲明及賦值 (注意:符號常量聲明和賦值必須一起完成,變量卻必須分2句)符號常量的聲明和賦值 Const 常量名 As 常量類型 = 常量值(或 表達式)如:Const pi As Single = 3.14159 常量名為pi 注意:常量必須在聲明的時候立馬賦值,如果沒有 “= 3”部分就是錯誤的。變量的聲明: Dim <變量名 >As <變量類型> 如:Dim a As Integer 定義一個整型變量,變量名為a變量的賦值 VB中使用

9、“ = ” 給變量賦值, 其形式為:變量名 = 表達式四、運算符1、算術運算符 (注意 :算術運算符的優先級問題、區分/ Mod三個運算符)注意:和mod的運算量如果帶小數,要先四舍五入取整,再作運算。2、字符串運算符 “+”和“&”作用是將運算符兩邊的字符串連接為一個新的字符串。使用"&"運算符時應注意前后加空格。注意特例:當數值型和字符型連接時,"+"把數據都轉化成數值型然后相加,返回一個數值型數據。例如: “123” + “45” = “12345” 123 + “45” = 168“123” & “45” = “12345

10、” 123 & “ 45” = “12345”3、關系運算符 (優先級相同) 注意:關系表達式的運算結果為布爾值True 或 False=等于 < 小于號 <>不等于>大于號 >=大于等于號 <= 小于等于號 運算規則:(1)當兩個操作式均為數值型,按數值大小比較。(2)字符串比較,則按字符的ASCII碼值從左到右逐位比較,直到出現不同的字符為止。例: "987" > "99",結果為 False。(3)數值型與可轉換為數值型的數據,按數值比較。 例:29 > "189",結果為

11、 False。4、邏輯運算符 Not(取反) And(與) Or(或) 優先級依次降低Not對一個邏輯量進行運算,And 和 Or是對兩個邏輯量進行運算,運算結果都為邏輯值True或False 運算符說明優先級說明舉例結果Not非1當操作數為假時,結果為真Not FalseTrueAnd與2操作數均為真時,結果才為真True And FalseFalseOr或3操作數中有一個為真時,結果為真False Or TrueTrue5、日期運算符與日期表達式日期表達式是用“+”或“-”將算式表達式、日期型常量、日期型變量、日期函數等連接起來的式子。例如: 表達式 “#2003/09/01# + 30”

12、 的運算結果是“2003-10-1”表達式 “#2003/10/20# - #2003/10/10#” 的運算結果為整數106、運算符的執行順序 : 算術運算符 > 字符串運算符 >  關系運算符 >  邏輯運算符如a = 2: b = 3: c = 4: d = 5 則表達式 a > b And 2 * a > c Or c <= d 的值為 True7、表達式的寫法雖然VB中的表達式與代數式中的算式很相似,但兩者卻是完全不同的概念。要注意區別,如在VB中不能使用 等。下表中列出了一些代數式對應的VB表達式。代數式VB表達式說明(2*a

13、+b)/(4*a*b)在VB表達式中無法寫分式,,乘法運算符 * 不能省略g*t2/2VB中不能使用上標,指數必須用VB運算符 表示abca<=b And b<=c要用VB中的運算符,且不能連續寫Sqr(b* b -4 * a* c)使用內部函數Sqr計算平方根(另函數Abs 求絕對值)五、常用函數1、數學函數函 數名 稱含 義Abs(x)絕對值函數求x的絕對值 |x|Int(x)取整函數求x的最大整數Sqr(x)算術平方根函數求x的算術平方根Log(x)自然對數函數求x的自然對數Rnd隨機函數產生0,1)之間的隨機數Exp(x)指數函數ex, e=2.718282Sgn(x)符號

14、函數 1 x>0 Sgn(x) = 0 x=0 -1 x<0Sin(x)正弦函數Sin(x), x的單位為弧度Cos(x)余弦函數Cos(x), x的單位為弧度Tan(x)正切函數Tan(x), x的單位為弧度注意:(1)Int (x)是取小于等于x的最大整數。 例如: Int (3.12) =3 Int (2.1+3) =5Int ( -4. 6) = -5 Int ( -1-2. 5) = -4 (2)Rnd函數產生 0, 1) 之間的一個隨機數,它常與Randomize(以初始化隨機數生成器)結合使用,如果要產生 0, A ) 間的 隨機整數,表達式為 Int (Rnd *A

15、)產生 A , B) 間的 隨機數: Rnd*(B-A) +A產生 A ,B 間的 隨機整數: Int(Rnd * (B-A+1)+A2、字符串函數 (注意的以下字符串函數返回的值 是數值型,還是字符串型。)函數功能實例結果Len(字符串)求字符串的長度(字符個數)Len ("2008奧運")6Left(字符串,n )截取字符串左邊n個字符Left (" 2008奧運",4)“2008”Mid(字符串,m,n )從字符串第m個字符開始截取n個字符Mid ("2008奧運",3,2)“08”Mid(字符串,m )從字符串第m個字符開始截

16、取剩余字符Mid ("2008奧運",3)“08奧運”Right(字符串,n )截取字符串右邊n個字符Right (" 2008奧運" ,2)“奧運”String ( n,字符串)生成指定長度的指定字符的字符串String (3,"89" )“888”InStr(字符串1,字符串2)在字符串1中查找字符串2.并返回其出現的位置InStr("2008奧運","奧")5注意:(1)String函數只返回n個指定的字符串的首字符。 (2)Left(字符串,n )和Right(字符串,n )中,當n的值

17、大于字符串的長度時,返回整個字符串。(3) Mid(字符串,m,n)函數中,如果m大于字符串的長度,則返回空串,如果省略n,則返回m開始的全部字符。3、常用轉換函數函數功能實例結果Val(數值型字符串)將數值型字符串轉換為數值Val ("99") +Val ("88")187Str(數值)將數值轉換為字符串Str (5)" 5"Chr(字符代碼)將字符的Asc碼轉換為對應的字符Chr (65)AAsc(字符)求字符對應的ASCII碼Asc ("A" )65CInt(表達式)將表達式結果作四舍五入處理CInt (3.

18、6)4Fix(表達式)將表達式結果的小數部分截去Fix(3.8)3注意(1)對于Str(數值)函數,如果其中的數值為正數,則返回的字符串的第一個字符為空格(符號位)。如Str(5)的結果為兩個字符長度的字符串" 5",如要得到不含符號位的字符串,可使用CStr()函數。(2)CInt(表達式) 當表達式的值對應的小數位為 .5的時候比較特殊,函數結果為離表達式的值最近的一個偶數。 如CInt(4.5)=4(3)Asc(字符)函數,只求"字符"中的第一個字符的ASCII碼值,如 :Asc("AB" )=65(4)ASCII碼的大小:空格

19、 < 數值 < 大寫字母 < 小寫字母常用字符的ASCII碼值:空格 的ASCII碼為:32 0 的ASCII碼為:48A 的ASCII碼為:65 a 的ASCII碼為:97其他數字和英文字母按序依次類推。(5)字母轉換。因大寫字母的ASCII碼比對應的小寫字母小32,所以可通過Chr 和Asc 函數互相轉換。例:a轉A Chr ( Asc ("a") - 32) A轉a Chr (Asc ("A") + 32 ) 注意 式子中""不能省略4、日期函數(1) Date()、Time()、Now()。這三個函數沒有參數

20、,分別返回計算機系統的當前日期、時間、日期與時間。如2011年5月29日, Print Date() 或者 Print Date 都會打印出 2011-5-29(2) Year()、Month()、Day()。 這三個函數必須有參數,即必須指定一個日期,分別返回指定日期的年、月和日。函數實例結果Day(#8/18/2008#)18Month(#8/18/2008#)8Year (#8/18/2008#)20085、定位函數(與Print語句配合使用的),以控制輸出數據的格式,主要包括Tab、Space等。(l) Tab函數。功能:將被輸出的內容放在由參數n所指定的位置(列數)處,在書寫時,被輸

21、出的內容要放在Tab函數的右面,并用分號分隔。例: Print Tab (15);"姓名" Tab (30);"成績"(2) Space函數。 功能:產生由n個空格所組成的字符串。6、用戶交互函數VB提供InputBox( )和MsgBox( )函數用于人機交互。(1) InputBox ( ) 格式: InputBox(提示,標題,默認值 ,X坐標,Y坐標)功能:在程序中調用InputBox函數,將產生一個提示用戶輸入內容的輸入框,等待用戶輸入信息,并返回字符串類型的數據。用戶要想得到InputBox ()函數的返回值,就必須將函數的結果賦值給指定的變

22、量。格式為: 變量= InputBox(提示,標題,默認值)注意:每執行一次InputBox()函數,用戶只能輸入一個數據。輸入框的樣式是固定的,我們可以改變的是輸入框的“提示”和“標題”的內容。例如: r = InputBox ("請輸入r" , "輸入圓半徑")2. MsgBox( ) 格式為:MsgBox(提示信息,按鈕,標題 )功能:用于在程序運行過程中產生一個消息框,可以看作是輸出對話框,該函數的返回值為數值型數據。格式:MsgBox(提示信息,按鈕,標題)例如:p=MsgBox("你輸入的密碼不正確,是否繼續?" , vb

23、YesNo , "錯誤提示")當用戶單擊消息框中的一個按鈕后,消息框即從屏幕上消失。在上面的語句中,將函數的返回值賦給變量P,在程序中可引用P作相應的處理。六、常用語句1、賦值語句格式1: Let變量=表達式 功能:將右邊表達式的結果賦給左邊變量。通常情況,Let可以省略。" =" 為賦值號。它與數學中的" ="是不同的。特別要跟方程式區分開。如:X=5 即把數值5賦值給變量XY =5 Mod 2 + 7 即先計算表達式5 Mod 2 + 7 的值,再將值8賦值給變量Y N =N + 1 即將N的值加1后后再賦給NX=Y 即將變量Y的

24、值賦值給變量X也可以在一行內給多個變量賦值,兩條語句之間用冒號" : " 隔開,如: s=0: a=l: b=2 格式2:對象名.屬性名=表達式 如果省略屬性名,則直接賦值給對象的默認屬性。如:Text1. Text ="你好! " 即把字符串 "你好! " 賦給Text l 的Text屬性。注意:賦值語句一般都獨立成行,如果有類似賦值的語句出現在一些結構中,大家要會辨別。例如跟在以下關鍵字之后 If x=5 While x=5 Until x=5 Print x=5 以上結構中的 x=5 不再是賦值語句,因為 " = &q

25、uot; 在這里是個關系運算符,判斷左右是否相等,所以x=5 是一個關系表達式,其值應該是個邏輯型,不是True 就是False。2、Print語旬 格式 :對象名.Print 表達式列表功能 :Print方法具有計算和輸出雙重功能。對于表達式,它先計算其值,然后再在指定的對象上輸出文本,對于常量、變量則直接輸出其值。對象可以是窗體、圖片框、打印機等。"對象名"可以省略,省略時表示在當前窗體上輸出數據。說明:(1)表達式列表可以是一個或多個表達式,之間用英文的" ; "或" , "隔開。如果用逗號分隔,則按標準輸出格式輸出各數據,此時

26、以14個字符位置為一個區段, 逗號后的表達式在下一個區段輸出;如果之間用分號分隔,則按緊湊格式輸出數據。例: Print 1 ; 2 ; 3 ; 4 + 3 Print l , 2 , 3 , 4 + 3 輸出結果為: 1 2 3 7 輸出結果為: 1 2 3 7(2)如果Print語句末尾沒有逗號或分號,表示該Print輸出完結果后自動換行,后面再執行Print時將在下一行的起始位置輸出數據;如果在Print語句末尾使用逗號,則在同一行上跳到下一個輸出區段輸出下一個Print所輸出的內容。如果在Print語句的末尾加上一個分號,表示下一個Print輸出的內容將按緊湊格式緊跟在前一個Print

27、所輸出的內容后面;(3)當一個Print語句的后面無任何表達式時,則輸出一空行或換行。注意:與Tab()函數結合使用, 掌握各種圖形的輸出。3、注釋語句為了提高程序的可讀性,通常需要在程序的適當位置加上必要的注釋。在VB中添加注釋語句的方法為在字符" ' "后加注釋內容或采用 " Rem注釋內容 "兩種形式。格式1: ' 注釋內容用 ' 寫的注釋語句既可以單獨寫一行,也可以跟在其他語句后。格式2: Rem 注釋內容用Rem寫的注釋語句必須單獨寫一行。4、結束語旬 格式: End 功能:強制程序結束運行。Private Sub Co

28、mmand1_Click( ) End End Sub 該過程用于結束程序,即單擊命令按鈕Commandl 時,結束程序的運行。(四)程序設計的三大基本結構一、順序結構代碼按照由上到下的順序一行一行地執行。程序執行過程中沒有分支、沒有重復。二、分支結構(選擇結構)程序在運行時會根據不同的條件決定程序的走向。實現選擇結構的語句有If語句和Select語句。1、If語句分為單分支 、雙分支 和多分支三類 。(1) 單分支if結構: (注意:行if和 塊if 的區別只在書寫格式上。)l 行if語句:IF <條件表達式> Then 語句Al 塊if語句:IF <條件表達式> T

29、hen 語句A End if(2)雙分支if結構:l 行if語句:IF <條件表達式> Then 語句A Else 語句B l 塊if語句:IF <條件表達式> Then語句AELSE 語句B END IF(3)多分支If語句 If <表達式1> Then <語句塊1> ElseIf <表達式2> Then <語句塊2> Else<語句塊 n+1> End If 2、Select Case 語句 注意:要會區分選擇結構和循環結構的流程圖。如上圖:甲為循環結構,有向上回到條件框的箭頭。乙為選擇結構(雙分支)。Se

30、lect Case <測試表達式>Case 表達式列表1 語句組1Case 表達式列表2 語句組2Case ELSE 語句組N+1End Select Select/Case語句的執行過程是:先求"測試表達式"的值,然后順序測試該值符合哪一個Case子句的情況,如果找到了,則直接執行該Case子句下面的語句塊,然后執行End Select的后續語句;如果沒找到,則執行Case Else下面的語句塊,然后執行End Select的后續語句。 說明:(1)"測試表達式"可以是數值型或字符串型表達式。(2)"表達式列表"形式有以

31、下4種。 一個表達式或用逗號隔開的若干表達式,例如2, 4, 6, 8。 表達式1 To 表達式2,例如60 To 80。 注意,表達式1 應該小于 表達式2 Is關系運算符表達式,例如Is > 80。 表達式,例如 x+3。 三、循環結構1、For-Next循環 (適合于解決循環次數事先能夠確定的問題。)For循環變量一般形式是:For 循環變量 = 初值 To 終值 Step 步長值 循環體 Next 循環變量說明:(1)循環變量,必須為數值型。循環初值、循環終值也是數值型或數值表達式。(2)循環的有效區間是由循環初值、循環終值所限定的閉區間。 (3)步長值是循環變量的增量,是一個數

32、值表達式。若步長值為正,則初值就應小于終值,否則循環體一次都不執行;若步長值為負,則初值應大于終值,否則循環體一次都不執行。如果步長值是1, Step 1可略去不寫。但若步長值為0,會造成死循環,這是要避免的,可用Ctrl+Break 結束程序。(4)循環體是For語句和Next語句之間的語句序列,也是需要重復執行的語句組。 (5)Next后的循環變量與For語句中的循環變量必須相同。 (6)循環的次數=(循環終值-循環初值) 步長值 + 1For/ Next循環語句的執行過程:(1)系統將初值賦給循環變量,并自動記下終值和步長。(2)檢查循環變量的值是否越過終值。如越過就結束循環,執行Nex

33、t后面的語句;否則執行一次循環體。(3)執行Next語句:將循環變量增加一個步長值再賦給循環變量,轉到第2步繼續執行循環。2、DoLoop循環 (對于不能預先確定次數, 但需要執行多次的情況,可以使用Do/Loop循環。)格式一:Do While 條件表達式循環體Loop先判斷條件是否為真,若條件為真,執行循環體,條件為假時退出循環。因此可能一次都不執行循環。格式二: Do 循環體 Loop While 條件表達式先執行一次循環體,再判斷條件是否為真,若條件為真,執行循環體,條件為假時退出循環。因此至少執行一次循環體。格式三: Do 循環體 Loop Until 條件表達式先執行一次循環體,再

34、判斷條件是否為假,若條件為假,執行循環體,條件為真時退出循環。因此至少執行一次循環體。格式四:Do Until 條件表達式 循環體Loop先判斷條件是否為假,若條件為假,執行循環體,條件為真時退出循環。因此可能一次都不執行循環。注意: If語句 和 Do語句中都有的"條件表達式",一般是一個關系表達式或邏輯表達式,其值不是True就是False。但如果是數值型的表達式的話,會進行強制轉換,即數字0 轉換成False ,非0 轉換成True。(五)算法與問題解決一、解析法解析法又稱公式法。解析法就是在分析具體問題的基礎上,抽取出一個數學模型,這個數學模型能用若干個解析表達式表

35、示出來。求解了這些表達式,問題也就得以解決。如:求解一元二次方程a*x2+b*x+c=0的實根dim x1 as double , x2 as doubledim a AS Double,b AS Double,c AS Double if b*b-4*a*c>=0 then x1=(-b+sqr(b*b-4*a*c)/(2*a) x2=(-b-sqr(b*b-4*a*c)/(2*a) text1.text =str(x1) text2.text = str(x2) else print “方程無解” end if分析:X=x1=(-b+sqr(b*b-4*a*c)/(2*a) x2=(

36、-b-sqr(b2-4*a*c)/(2*a)二、窮舉法窮舉法是將求解對象一一列舉出來,然后逐一加以分析、處理,并驗證結果是否滿足給定的條件,窮舉完所有對象,問題將最終得以解決。窮舉法也叫枚舉法、列舉法。窮舉法關鍵是如何列舉所有可能的情況,不能遺漏,也不能重復。注意取值范圍,減少計算機工作量。 適用編程問題:水仙花問題、雞兔同籠問題、百錢百雞問題、素數問題。如:已知公雞每只3元,母雞每只5元,每3只小雞1元。用100元錢買100只雞,應各買多少只雞?Dim a As Integer, b As Integer,c As IntegerFor a=0 to 33 公雞數For b=0 to 20

37、母雞數For c=0 to 100 小雞數If a+b+c=100 and a*3+b*5+c/3=100  then Print a;b;cend ifNext cNext bNext aDim a As Integer, b As IntegerDim c As IntegerFor a=0 to 33 公雞數For b=0 to 20 母雞數c=100-a-b 小雞數If a*3+b*5+c/3=100  then Print a;b;cend ifNext bNext a三、數組及其應用數組是一組相同類型的變量集合。 數組用一個統一的名字代表邏輯上相關的一批數據,

38、每個元素靠下標變量來區分。有一個下標的數組稱為一維數組。數組中的數據,邏輯上是相互關聯的。1、使用數組要先聲明數組的大小和數據類型。聲明數組的格式如下:Dim 數組名(最大下標常量) As 數據類型 例1: Dim s (9) As Integer表示:名稱為s的一維數組中包含10個元素,下標從O到9。用來存放整型數據。也可以指定下標的起始值。例2: Dim x (2 to 10) As Single這個數組含有9個元素,下標從2到10,數據類型屬于單精度實型。還可以說明多維數組。例3: Dim D (4, 2 To 6, 3 To 9) As long說明了一個3維數組,一共5*5*7個數組

39、成員,數據類型屬于長整型。2、應注意的問題: (1)在同一個程序中,任何數組只能聲明一次。 例如:Dim s(5) As Integer Dim s(10) As Integer 這樣,運行時會報錯:當前范圍內的聲明重復。(2)下標必須是常量且為整數(若不是整數,程序運行時自動4舍5入為整數)。 (3)同一個程序中,數組名不能與變量名相同。 例如:Dim s As Integer Dim s (10) As Integer 這樣,運行時會報錯:變量與數組不能同名。(4)數組必須先聲明后使用 否則運行時會報錯:子程序或函數未定義。(5)數組使用時,下標不能超出聲明的范圍。 例如: Dim s (

40、10) As IntegerPrint s(11) 這樣運行時會報錯:下標越界。(6)數組聲明時和變量一樣,要注意類型。 例如:Dim s (10) As IntegerS(3)=40000 這樣運行時會報錯: 溢出。3、數組的應用 數組的賦值、計算、輸出通常都與ForNext循環結合使用。For語句中的循環變量作為數組元素的下標,通過循環變量的不斷改變,達到對每個數組元素依次進行處理的目的。例子:利用數組實現:輸出10個1,100的隨機數,并輸出它們的和與平均值。Dim a(9) As Integer 數組的定義Dim s As IntegerRandomize 將RND函數隨機化For i

41、 = 0 To 9 a ( i ) = Int(100 - 1 + 1) * Rnd) + 1 Print a( i ) s = s + a( i )Next iPrint "和為:" sPrint "平均值為:" s/10四、順序查找順序查找是查找算法中簡單、易行的算法。進行查找時一般從數據的第一個元素開始,按照數據的順序查找指定的關鍵值。如果被查數據和該關鍵值相匹配,則表示找到;如果所有數據與關鍵值都不匹配,則表示被查數據中不存在該關鍵值,查找失敗。順序查找的數據不要求是有序的。五、二分法查找(二分法查找也叫折半查找)二分法查找要求被查數據是有序的查

42、找思路:對于有序數列(從小到大排),設定下界low(最小元素下標)和上界high(最大元素下標),當滿足條件low<=high時,求中點mid,將中點元素的值與所要查找的值比較,若中點元素值比所要查找元素小,則應找后半段,所以low=mid+1,否則應找前半段high=mid-1,直到找到為止;若low>high,則說明找不到。Dim a(9) As Integer Dim mid As Integera(0)=12:a(1)=20:a(2)=27:a(3)=36:a(4)=45:a(5)=50:a(6)=55:a(7)=60:a(8)=79:a(9)=105low = 0: hi

43、gh = 9Do While low < high mid = (low + high) 2 注意: mid 是中點位置,而a(mid) 是中點位置的值 If a(mid) = 55 Then Print "找到了" Exit Do Else If a(mid) < 55 Then low = mid + 1 Else high = mid - 1 End IfLoopIf low > high Then print "沒有55!"六、冒泡排序排序的種類有交換排序、選擇排序、快速排序等。“冒泡法排序”也叫“起泡法排序”,是一種比較簡單、

44、易懂的交換排序方法。它通過將相鄰元素進行比較和交換,逐步將一個無序序列排列為一個有序序列。簡單說:就是對相鄰數據兩兩比較,將符合條件的數據"冒上來"(沉下去),然后用同樣的方法再"冒泡"處理余下的數據,直至全部數據完成排序。 (1)標準的從后往前的升序 Dim a(9) As IntegerFor i = 0 To 9a(i) = Int(100 - 1 + 1) * Rnd) + 1Print a(i);Next i定義數組給數組的每個元素賦值1,100的隨機數并輸出For j = 1 To 9 For i = 9 To j step -1 If a(

45、i ) < a(i-1) Then t = a(i - 1) a(i - 1) = a(i) a(i) = t End If Next iNext j將數組中元素 從小到大 冒泡排序從a(9)開始比較、交換(小的往前換)外循環控制排序的趟數內循環控制每一趟排序比較的成員和次數For i = 0 To 9 Print a(i);Next i顯示排序后的數組元素(2)標準的從前往后的升序Dim a(9) As IntegerFor i = 0 To 9a(i) = Int(100 - 1 + 1) * Rnd) + 1Print a(i);Next i定義數組給數組的每個元素賦值1,100的

46、隨機數、輸出For j = 9 To 1 Step -1 For i = 0 To j-1 If a(i) > a(i+1) Then t = a(i+ 1) a(i+ 1) = a(i) a(i) = t End If Next iNext j將數組中元素從小到大冒泡排序從a(0)開始比較、交換(大的往后換)外循環控制排序的趟數內循環控制每一趟排序比較的成員和次數For k= 0 To 9 Print a(k);Next k顯示排序后的數組元素七、遞歸法1、 自定義函數 :編程者自己編寫的函數。自定義函數定義格式: Function <函數名稱> (<參數列表> ) As<類型><局部常量、變量說明><語句組>函數名=返回值End Function 自定義函數的調用有三種格式:格式1:變量=函數名稱 (參數)格式2:Call函數名稱 (參數)格式3:函數名稱 參數2、 遞歸法 如果一個函數在定義時,直接或間接地調用了自己,這種算法稱為遞歸法。例如函數A自己調用了自己。另外如果函數A調用了函數B,函數B反過來再調用函數A的算法,這也是遞歸算法。用遞歸寫出的算法往往十分簡潔。遞歸法一般需要自定義函數或過程來實現。例1:用遞歸函數求n! 注意 給函數名s賦的值,就是

溫馨提示

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

評論

0/150

提交評論