版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、選修知識點(一)計算機解決問題的流程圖(二)算法一、算法定義:是解決問題的方法和步驟。算法是程序設計的“靈魂”。算法喊據(jù)結(jié)構=程序。二、算法的描述方法:分自然語言、流程圖和偽代碼三種。1、自然語言:人們?nèi)粘I钪械恼Z言(本國語言),用自然語言描述符合我們的習慣,且容易理解。2、流程圖:也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。3、偽代碼:是介于自然語言和計算機程序語言之間的一種算法描述。是專業(yè)軟件開發(fā)人員常用方法。三、算法的5個特征:1、有窮性:執(zhí)行有限步之后結(jié)束,步的執(zhí)行時間也都是有限的連接點每 k2、確定性:每一步都有確切的含義。3、可行性:原則上能精確運
2、行,用紙和筆做有限次運算后即可完成。4、輸入:有零個或多個輸入。5、輸出:至少產(chǎn)生一個輸出。(三)程序設計基礎計算機程序設計語言經(jīng)歷了機器語言、匯編語言、高級語言的發(fā)展過程。常用高級語言:BASICVRPascal、C、C+、Java、Delphi、Fortran、Powerbuilder等。面向?qū)ο蟮某绦蛟O計語言,如vb:其中的對象主要是系統(tǒng)設計好的對象,包括窗體、控件等??丶菏侵腹ぞ呦渲械墓ぞ咴诖绑w中畫出的能實現(xiàn)一定功能的部件,如標簽、文本框、命令按鈕等??丶ο蟮念愋颓熬Y名字舉例窗體Formfrmfrmfind命令按鈕Commandcmdcmdok標簽Labellbllblinput文
3、本框TextBoxtxttxtClock若命令按鈕(Command)勺Enabled屬性設置為True時按鈕有效,設置為常用控件:對象的三要素:屬性、方法、事件屬性Alignment即標簽文字對齊屬性:(0)LeftJustify時文本左對齊;(1)RightJustify時文本右對齊;設置為(2)Center時文本居中。對象中屬性可以在設計界面時通過屬性窗中設置,也可以在運行時通過賦值語句在代碼窗口設置:對象名.屬性名=屬性值例:給文本框Txt123的Text屬性賦值為字符串“20",代碼如下:=“20”注意:如果直接給對象名賦值的話,是賦值給對象的默認屬性。例:Txt123=&q
4、uot;20”相當于=“20”都是給文本框Txt123的text屬性賦值。如果要獲取對象的狀態(tài)或特性,這時就要讀取對象的屬性值,方法如下:變量名=對象名.屬性名例:讀取文本框“txt123”的“Text”屬性的代碼如下:a=方法常見的方法如下:PrintClsMoveShow格式:對象.方法參數(shù)名表例:”歡迎使用”事件及事件驅(qū)動常見的事件如下:Click、DblClick、KeyPress、Load、MouseUp等。事件是對象對外部操作的響應,如在程序執(zhí)行時,單擊命令按鈕會產(chǎn)生一個Click事件。如需要命令按鈕響應Click事件,就把完成Click事件功能的代碼寫到Click事件的事件過程中
5、,與事件一一對應。事件過程的形式如下:PrivateSub對象名_事件名()(事件過程代碼)EndSub一、常量:指在程序進行過程中不變的量,在VB中一般分數(shù)值常量與字符常量兩種數(shù)值常量:就是數(shù)學中說的常數(shù),分整型常量和實型常量兩種整型常量:即整數(shù),指不帶小數(shù)點的數(shù)值如1、0、-10、+35等都是合法的整數(shù)實型常量:即實數(shù),指帶小數(shù)點的數(shù)值。實型常量又分為定點數(shù)和浮點數(shù)兩種。例:定點數(shù):和,浮點數(shù):2E6、1E5、88E例:X103可表示為,字母E表示底數(shù)10浮點數(shù)就是數(shù)學上的科學計數(shù)法。字符串常量:被一對英文雙引號括起來的若干個合法的字符稱為字符串常量。例如:”China”、”VisualB
6、asic”、”18”、”等,是指英文雙引號中的字符,不包括英文雙引號本身。?符號常量:如果多次用到同一個常量,則可用一個有意義的名字表示這個常量。二、變量:在程序執(zhí)行過程中,其值可以改變的量稱為變量。變量命名注意要點:1、必須以字母或漢字開頭,不能以數(shù)字或其他字符開頭。2、只能由字母、漢字、數(shù)字或下劃線組成,不能含有小數(shù)點、空格等字符。3、最長不超過255個字符4、不能以VB保留字作變量名,如語句定義符、函數(shù)名(Integer、End、Print、Dim)等。5、VB不區(qū)分變量名中字母大小寫。如HELLO®Hello是同一個變量。三、數(shù)據(jù)及運算1、常用數(shù)據(jù)類型:(框選的內(nèi)容都要熟記)
7、2、 常量和變量的命名、聲明及賦值(注意:符號常量聲明和賦值必須一起完成,變量卻必須分2句)符號常量的聲明和賦值Const常量名As常量類型=常量值(或表達式)如: Const pi As Single =常量名為pi注意:常量必須在聲明的時候立馬賦值,如果沒有“=3”部分就是錯誤的。變量的聲明:Dim變量名As變量類型如:DimaAsInteger定義一個整型變量,變量名為a變量的賦值VB中使用“二”給變量賦值,其形式為:變量名=表達式四、運算符1、算術運算符(注意:算術運算符的優(yōu)先級問題、區(qū)分/Mod三個運算符)算來運算符含X運用化先執(zhí)實例法果指收11(124取質(zhì)7一-5T3注息:我法2(
8、1和/除5/22.5把依4?2mod的M(xi求握5Med21運算+加2H+5256咸20-S15量如2、字符串運算符“+”和“&”作用是將運算符兩邊的字符串連接為一個新的字符串。使用"&"運算符時應注意前后加空格。注意特例:當數(shù)值型和字符型連接時,"+"把數(shù)據(jù)都轉(zhuǎn)化成數(shù)值型然后相加,返回一個數(shù)值型數(shù)據(jù)例如:“123” + “45” = "12345”+ “45” = 168123“123” & “45” = "12345”& " 45” = " 12345”1233、關系運算符或
9、False(優(yōu)先級相同)注意:關系表達式的運算結(jié)果為布爾值 True等于< 小于號<>不等于> 大于號>=大于等于號<=小于等于運算規(guī)則:(1)當兩個操作式均為數(shù)值型,按數(shù)值大小比較。(2)字符串比較,則按字符的ASCII碼值從左到右逐位比較,直到出現(xiàn)不同的字符為止。例:"987">"99",結(jié)果為False。(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù),按數(shù)值比較。例:29>"189",結(jié)果為False。4、邏輯運算符先級依次降低Not (取反)And (與)Or (或) 優(yōu)Not對一個邏輯量進
10、行運算,And和Or是對兩個邏輯量進行運算,運算結(jié)果都為邏輯值True或False5、日期運算符與日期表達式日期表達式是用“+”或“-”將算式表達式、日期型常量、日期型變量、日期函數(shù)等連接起來的式子。例如:表達式“#2003/09/01#+30”的運算結(jié)果是“2003-10-1”表達式“#2003/10/20#-#2003/10/10#”的運算結(jié)果為整數(shù)106、運算符的執(zhí)行順序:算術運算符>字符串運算符>?關系運算符>?邏輯運算符如a=2:b=3:c=4:d=5則表達式a>bAnd2*a>cOrc<=d的值為True7、表達式的寫法雖然VB中的表達式與代數(shù)式
11、中的算式很相似,但兩者卻是完全不同的概念。要注意區(qū)另J,如在VB中不能使用<>乎等。下表中列出了一些代數(shù)式對應的VB表達式。(2*a+b)/(4*a*b)在VB1達式中無法寫分式,,乘法運算符*不能省略V沖不能使用上標,指數(shù)必須用VB§算符Ag*tA2/2表不使用內(nèi)部函數(shù)Sq計算平方根(另函數(shù)Abs求Sqr(bb-4*a*c)絕對值)五、常用函數(shù)1、數(shù)學函數(shù)函數(shù)名稱含義Abs(x)絕對值函數(shù)求x的絕對值|x|Int(x)取整函數(shù)求&x的最大整數(shù)Sqr(x)算術平方根函數(shù)求x的算術平方根Log(x)自然對數(shù)函數(shù)求x的自然對數(shù)Rnd隨機函數(shù)產(chǎn)生0,1)之間的隨機數(shù)Ex
12、p(x)指數(shù)函數(shù)e,e=Sgn(x)符號函數(shù)廠1Yx>0Sgn(x)=0x=0-1x<0Sin(x)正弦函數(shù)Sin(x),x的單位為弧度Cos(x)余弦函數(shù)Cos(x),x的單位為弧度Tan(x)正切函數(shù)Tan(x),x的單位為弧度注意:(1)Int(x)是取小于等于x的最大整數(shù)例如:例二3Int +3) =5Int(-4.6)=-5Int(-1-2.5)=-4(2) Rnd®數(shù)產(chǎn)生0,1)之間的一個隨機數(shù),它常與Randomize(以初始化隨機數(shù)生成器)結(jié)合使用,如果要產(chǎn)生0,A)間的隨機整數(shù),表達式為Int(Rnd*A)產(chǎn)生A,B)間的隨機數(shù):Rnd*(B-A)+A產(chǎn)
13、生A,B間的隨機整數(shù):Int(Rnd*(B-A+1)+A2、字符串函數(shù)(注意的以下字符串函數(shù)返回的值是數(shù)值型,還是字符串型。)函數(shù)功能實例結(jié)果Len(字符串)求字符串的長度(字符個數(shù))Len("2008奧運")6Left(字符串,n)截取字符串左邊n個字符Left("2008奧運",4)“2008”Mid(字符串,m,n)從字符串第mt字符開始截取nMid("2008奧運",3,“08”Mid(字符串,m)從字符串第mt字符開始截取剩Mid("2008奧運",3)“08奧Right(字符串,n)截取字符串右邊n個字
14、符Right("2008奧運",“奧運”String(n,字符串)InStr(字符串1.字生成指定長度的指定字符的字在字符串1中查找字符串2.String(3,"89")InStr("2008奧運"."“888”5注意:(1)String函數(shù)只返回n個指定的字符串的首字符。(2)Left(字符串,n)和Right(字符串,n)中,當n的值大于字符串的長度時,返回整個字符串。(3)Mid(字符串,m,n)函數(shù)中,如果mrk于字符串的長度,則返回空串,如果省略n,則返回mff始的全部字符。3、常用轉(zhuǎn)換函數(shù)注意(1)對于Str(數(shù)
15、值)函數(shù),如果其中的數(shù)值為正數(shù),則返回的字符串的第一個字符為空格(符號位)。如Str(5)的結(jié)果為兩個字符長度的字符串"5",如要得到不含符號位的字符串,可使用CStr()函數(shù)。(2)CInt(表達式)當表達式的值對應的小數(shù)位為.5的時候比較特殊,函數(shù)結(jié)果為離表達式的值最近的一個偶數(shù)。如CInt()二4(3) Asc(字符)函數(shù),只求"字符"中的第一個字符的ASCII碼值,如:Asc("AB")=65(4) ASCII碼的大?。嚎崭?lt;數(shù)值<大寫字母<小寫字母常用字符的ASCII碼值:空格的ASCII碼為:32ASCI
16、I碼為:48A的ASCII碼為:65a的ASCII碼為:97其他數(shù)字和英文字母按序依次類推。(5)字母轉(zhuǎn)換。因大寫字母的ASCII碼比對應的小寫字母小32,所以可通過Chr和Asc函數(shù)互相轉(zhuǎn)換。例:a轉(zhuǎn)AChr(Asc("a")-32)A轉(zhuǎn)aChr(Asc("A")+32)注意式子中""不能省略4、日期函數(shù)(1) Date()、Time()、Now()。這三個函數(shù)沒有參數(shù),分別返回計算機系統(tǒng)的當前日期、時間、日期與時間。如2011年5月29日,PrintDate()或者PrintDate都會打印出2011-5-29(2) Year()
17、、Month()、Day()。這三個函數(shù)必須有參數(shù),即必須指定一個日期,分別返回指定日期的年、月和日。5、定位函數(shù)(與Print語句配合使用的),以控制輸出數(shù)據(jù)的格式,主要包括Tab、Space等。(1) Tab函數(shù)。功能:將被輸出的內(nèi)容放在由參數(shù)n所指定的位置(列數(shù))處,在書寫時,被輸出的內(nèi)容要放在Tab函數(shù)的右面,并用分號分隔。例:PrintTab(15);"姓名"Tab(30);"成績”(2) Space函數(shù)。功能:產(chǎn)生由n個空格所組成的字符串。6、用戶交互函數(shù)VB提供InputBox()和MsgBox()函數(shù)用于人機交互。(1)InputBox()格式:I
18、nputBox(提示,標題,默認值,X坐標,Y坐標)功能:在程序中調(diào)用InputBox函數(shù),將產(chǎn)生一個提示用戶輸入內(nèi)容的輸入框,等待用戶輸入信息,并返回字符串類型的數(shù)據(jù)。用戶要想得到InputBox()函數(shù)的返回值,就必須將函數(shù)的結(jié)果賦值給指定的變量。格式為:變量=InputBox(提示,標題,0KCcncd默認值)注意:每執(zhí)行一次InputBox()函數(shù),用戶只能輸入一個數(shù)據(jù)。輸入框的樣式是固定的,我們可以改變的是輸入框的“提示”和“標題”的內(nèi)容例如:r=InputBox("請輸入r","輸入圓半徑")2.MsgBox()格式為:MsgBox(提示信息
19、,按鈕,標題)功能:用于在程序運行過程中產(chǎn)生一個消息框,可以看作是輸出對話框,該函數(shù)的返回值為數(shù)值型數(shù)據(jù)。格式:MsgBox(提示信息,按鈕,標題)例如:p=MsgBox("你輸入的密碼不正確,是否繼續(xù)?",vbYesNo,"錯誤提示")當用戶單擊消息框中的一個按鈕后,消息框即從屏幕上消失。在上面的語句中,將函數(shù)的返回值賦給變量P,在程序中可引用P作相應的處理。六、常用語句1、賦值語句格式1:Let變量=表達式功能:將右邊表達式的結(jié)果賦給左邊變甲。通常情況,Let可以省略。"="為賦值號。它與數(shù)學中的"="是不同的
20、。特別要跟方程式區(qū)分開。如:X=5即把數(shù)值5賦值給變量XY=5Mod2+7即先計算表達式5Mod2+7的值,再將值8賦值給變量YN=N+1即將N的值加1后后再賦給NX=Y即將變量Y勺值賦值給變量X也可以在一行內(nèi)給多個變量賦值,兩條語句之間用冒號":"隔開,如:s=0:a=l:b=2格式2:對象名.屬性名=表達式如果省略屬性名,則直接賦值給對象的默認屬性。如:Textl.Text="你好!"即把字符串"你好!"賦給Textl的Text屬性。注意:賦值語句一般都獨立成行,如果有類似賦值的語句出現(xiàn)在一些結(jié)構中,大家要會辨別。例如跟在以下關鍵
21、字之后Ifx=5Whilex=5Untilx=5Printx=5以上結(jié)構中的x=5不再是賦值語句,因為"="在這里是個關系運算符,判斷左右是否相等,所以x=5是一個關系表達式,其值應該是個邏輯型,不是True就是False。2、Print語旬格式:對象名.Print表達式列表功能:Print方法具有計算和輸出雙重功能。對于表達式,它先計算其值,然后再在指定的對象上輸出文本,對于常量、變量則直接輸出其值。對象可以是窗體、圖片框、打印機等。"對象名"可以省略,省略時表示在當前窗體上輸出數(shù)據(jù)。說明:(1)表達式列表可以是一個或多個表達式,之間用英文的"
22、;"或","隔開。如果用逗號分隔,則按標準輸出格式輸出各數(shù)據(jù),此時以14個字符位置為一個區(qū)段,逗號后的表達式在下一個區(qū)段輸出;如果之間用分號分隔,則按緊湊格式輸出數(shù)據(jù)。例:Print1;2;3;4+3Printl,2,3,4+3輸出結(jié)果為:1237輸出結(jié)果為:1237(2)如果Print語句末尾沒有逗號或分號,表示該Print輸出完結(jié)果后自動換行,后面再執(zhí)行Print時將在下一行的起始位置輸出數(shù)據(jù);如果在Print語句末尾使用逗號,則在同一行上跳到下一個輸出區(qū)段輸出下一個Print所輸出的內(nèi)容。如果在Print語句的末尾加上一個分號,表示下一個Print輸出的內(nèi)容
23、將按緊湊格式緊跟在前一個Print所輸出的內(nèi)容后面;(3)當一個Print語句的后面無任何表達式時,則輸出一空行或換行。注意:與Tab()函數(shù)結(jié)合使用,掌握各種圖形的輸出。3、注釋語句為了提高程序的可讀性,通常需要在程序的適當位置加上必要的注釋。在V的添加注釋語句的方法為在字符"'"后加注釋內(nèi)容或采用"Rem注釋內(nèi)容"兩種形式。格式1:'注釋內(nèi)容用寫的注釋語句既可以單獨寫一行,也可以跟在其他語句后。格式2:Rem注釋內(nèi)容用Rerm1的注釋語句必須單獨寫一行。4、結(jié)束語旬格式:End功能:強制程序結(jié)束運行。PrivateSubCommand
24、1_Click()EndEndSub該過程用于結(jié)束程序,即單擊命令按鈕Commandl時,結(jié)束程序的運行。(四)程序設計的三大基本結(jié)構一、順序結(jié)構代碼按照由上到下的順序一行一行地執(zhí)行。程序執(zhí)行過程中沒有分支、沒有重復。二、分支結(jié)構(選擇結(jié)構)程序在運行時會根據(jù)不同的條件決定程序的走向。實現(xiàn)選擇結(jié)構的語句有If語句和Select語句。1、If語句分為單分支、雙分支和多分支三類。單分支if結(jié)構:(注意:行if和塊if的區(qū)別只在書寫格式上。)行if語句:IF條件表達式Then語句A塊if語句:IF條件表達式Then語句AEndif(2)雙分支if結(jié)構:行if語句:IF條件表達式Then語句A曰se語
25、句B塊if語句:IF條件表達式Then語句AELSE語句BENDIF(3)多分支If語句If表達式1Then語句塊1ElseIf表達式2Then語句塊2Else語句塊n+1EndIf2、SelectCase語句SelectCase測試表達式注意:要會區(qū)分選擇結(jié)構和循環(huán)結(jié)構的流程圖Case表達式列表1語句組1Case表達式列表2語句組2CaseELSE語句組N+1EndSelectSelect/Case語句的執(zhí)行過程是:先求"測試表達式"的值,然后順序測試該值符合哪一個Case?句的情況,如果找到了,則直接執(zhí)行該Case?句下面的語句塊,然后執(zhí)行EndSelect的后續(xù)語句;
26、如果沒找到,則執(zhí)行Case曰se下面的語句塊,然后執(zhí)行EndSelect的后續(xù)語句。說明:(1)”測試表達式"可以是數(shù)值型或字符串型表達式。(2)”表達式列表"形式有以下4種。一個表達式或用逗號隔開的若干表達式,例如2,4,6,8。表達式1To表達式2,例如60To80。注意,表達式1應該小于表達式2Is關系運算符表達式,例如Is>80o表達式,例如x+3o三、循環(huán)結(jié)構1、For-Next 循環(huán)(適合于解決循環(huán)次數(shù)事先能夠確定的問題。)For循環(huán)變量一般形式是:For循環(huán)變量=初值To終值Step步長值循環(huán)體Next循環(huán)變量說明:(1)循環(huán)變量,必須為數(shù)值型。循環(huán)初值
27、、循環(huán)終值也是數(shù)值型或數(shù)值表達式。(2)循環(huán)的有效區(qū)間是由循環(huán)初值、循環(huán)終值所限定的閉區(qū)間。(3)步長值是循環(huán)變量的增量,是一個數(shù)值表達式。若步長值為正,則初值就應小于終值,否則循環(huán)體一次都不執(zhí)行;若步長值為負,則初值應大于終值,否則循環(huán)體一次都不執(zhí)行。如果步長值是1,Step1可略去不寫。但若步長值為0,會造成死循環(huán),這是要避免的,可用Ctrl+Break結(jié)束程序。(4)循環(huán)體是For語句和Next語句之間的語句序列,也是需要重復執(zhí)行的語句組。(5) Next后的循環(huán)變量與For語句中的循環(huán)變量必須相同。(6)循環(huán)的次數(shù)=(循環(huán)終值-循環(huán)初值)步長值+1For/Next循環(huán)語句的執(zhí)行過程:(
28、1)系統(tǒng)將初值賦給循環(huán)變量,并自動記下終值和步長。(2)檢查循環(huán)變量的值是否越過終值。如越過就結(jié)束循環(huán),執(zhí)行Next后面的語句;否則執(zhí)行一次循環(huán)體。(3)執(zhí)行Next語句:將循環(huán)變量增加一個步長值再賦給循環(huán)變量,轉(zhuǎn)到第2步繼續(xù)執(zhí)行循環(huán)。2、DoLoop循環(huán)(對于不能預先確定次數(shù),但需要執(zhí)行多次的情況,可以使用Do/Loop循環(huán)。)格式一:DoWhile條件表達式循環(huán)體Loop先判斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。格式二:Do循環(huán)體LoopWhile條件表達式先執(zhí)行一次循環(huán)體,再判斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此
29、至少執(zhí)行一次循環(huán)體。格式三:Do循環(huán)體LoopUntil條件表達式先執(zhí)行一次循環(huán)體,再判斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此至少執(zhí)行一次循環(huán)體。格式四:DoUntil條件表達式循環(huán)體Loop先判斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。注意:If語句和Do語句中都有的"條件表達式",一般是一個關系表達式或邏輯表達式,其值不是True就是False。但如果是數(shù)值型的表達式的話,會進行強制轉(zhuǎn)換,即數(shù)字0轉(zhuǎn)換成False,非0轉(zhuǎn)換成True。(五)算法與問題解決一、解析法解析法又稱公式法。解析法就是在分析具體
30、問題的基礎上,抽取出一個數(shù)學模型,這個數(shù)學模型能用若干個解析表達式表示出來。求解了這些表達式,問題也就得以解決。如:求解一元二次方程a*xA2+b*x+c=0的實根dimx1asdouble,x2asdoubledimaASDouble,bASDouble,cASDoubleifb*b-4*a*c>=0thenx1=(-b+sqr(b*b-4*a*c)/(2*a)x2=(-b-sqr(b*b-4*a*c)/(2*a)=str(x1)=str(x2)elseprint方程無解endif分析:X=x1=(-b+sqr(b*b-4*a*c)/(2*a)x2=(-b-sqr(bA2-4*a*c)
31、/(2*a)二、窮舉法窮舉法是將求解對象一一列舉出來,然后逐一加以分析、處理,并驗證結(jié)果是否滿足給定的條件,窮舉完所有對象,問題將最終得以解決。窮舉法也叫枚舉法、列舉法。窮舉法關鍵是如何列舉所有可能的情況,不能遺漏,也不能重復。注意取值范圍,減少計算機工作量。適用編程問題:水仙花問題、雞兔同籠問題、百錢百雞問題、素數(shù)問題。如:已知公雞每只3元,母雞每只5元,每3只小雞1元。用100元錢買100只雞,應各買多少只雞?DimaAsInteger,bAsInteger,cAsIntegerFora=0to33'公雞數(shù)Forb=0to20'母雞數(shù)Forc=0to100'小雞數(shù)I
32、fa+b+c=100anda*3+b*5+c/3=100?thenPrinta;b;cendifNextcNextbNextaDimaAsInteger,bAsIntegerDimcAsIntegerFora=0to33'公雞數(shù)Forb=0to20'母雞數(shù)c=100-a-b'小雞數(shù)Ifa*3+b*5+c/3=100?thenPrinta;b;cendifNextbNexta三、數(shù)組及其應用數(shù)組是一組相同類型的變量集合。數(shù)組用一個統(tǒng)一的名字代表邏輯上相關的一批數(shù)據(jù),每個元素靠下標變量來區(qū)分。有一個下標的數(shù)組稱為一維數(shù)組。數(shù)組中的數(shù)據(jù),邏輯上是相互關聯(lián)的。1、使用數(shù)組要先聲
33、明數(shù)組的大小和數(shù)據(jù)類型。聲明數(shù)組的格式如下:Dim數(shù)組名(最大下標常量)As數(shù)據(jù)類型例1:Dims(9)AsInteger表示:名稱為s的一維數(shù)組中包含10個元素,下標從OgJ9o用來存放整型數(shù)據(jù)。也可以指定下標的起始值。例2:Dimx(2to10)AsSingle這個數(shù)組含有9個元素,下標從2到10,數(shù)據(jù)類型屬于單精度實型。還可以說明多維數(shù)組。例3:DimD(4,2To6,3To9)Aslong說明了一個3維數(shù)組,一共5*5*7個數(shù)組成員,數(shù)據(jù)類型屬于長整型。2、應注意的問題:(1)在同一個程序中,任何數(shù)組只能聲明一次。例如:Dims(5)AsIntegerDim s(10) As Inte
34、ger這樣,運行時會報錯:當前范圍內(nèi)的聲明重復。(2)下標必須是常量且為整數(shù)(若不是整數(shù),程序運行時自動4舍5入為整數(shù))。(3)同一個程序中,數(shù)組名不能與變量名相同。例如:DimsAsIntegerDims(10)AsInteger這樣,運行時會報錯:變量與數(shù)組不能同名。(4)數(shù)組必須先聲明后使用否則運行時會報錯:子程序或函數(shù)未定義。(5)數(shù)組使用時,下標不能超出聲明的范圍。例如:Dims(10)AsIntegerPrints(11)這樣運行時會報錯:下標越界。(6)數(shù)組聲明時和變量一樣,要注意類型。例如:Dims(10)AsIntegerS(3)=40000這樣運行時會報錯:溢出。3、數(shù)組的
35、應用數(shù)組的賦值、計算、輸出通常都與ForNext循環(huán)結(jié)合使用。For語句中的循環(huán)變量作為數(shù)組元素的下標,通過循環(huán)變量的不斷改變,達到對每個數(shù)組元素依次進行處理的目的例子:利用數(shù)組實現(xiàn):輸出10個1,100的隨機數(shù),并輸出它們的和與平均值Dima(9)AsInteger'數(shù)組的定義DimsAsIntegerRandomize'將RNDii數(shù)隨機化Fori=0To9a(i)=Int(100-1+1)*Rnd)+1Printa(i)s=s+a(i)NextiPrint"和為:"sPrint"平均值為:"s/10四、順序查找順序查找是查找算法中簡
36、單、易行的算法。進行查找時一般從數(shù)據(jù)的第一個元素開始,按照數(shù)據(jù)的順序查找指定的關鍵值。如果被查數(shù)據(jù)和該關鍵值相匹配,則表示找到;如果所有數(shù)據(jù)與關鍵值都不匹配,則表示被查數(shù)據(jù)中不存在該關鍵值,查找失敗。順序查找的數(shù)據(jù)不要求是有序的。五、二分法查找(二分法查找也叫折半查找)二分法查找要求被查數(shù)據(jù)是有序的查找思路:對于有序數(shù)列(從小到大排),設定下界low(最小元素下標)和上界high(最大元素下標),當滿足條件low<=high時,求中點mid,將中點元素的值與所要查找的值比較,若中點元素值比所要查找元素小,則應找后半段,所以low=mid+1,否則應找前半段high=mid-1,直到找到為
37、止;若low>high,則說明找不到。Dima(9)AsIntegerDimmidAsIntegera(0)=12:a(1)=20:a(2)=27:a(3)=36:a(4)=45:a(5)=50:a(6)=55:a=60:a(8)=79:a(9)=105low=0:high=9DoWhilelow<=highmid=(low+high)2注意:mid是中點位置,而a(mid)是中點位置的值Ifa(mid)=55ThenPrint"找到了"ExitDoElseIfa(mid)<55Thenlow=mid+1Elsehigh=mid-1EndIfLoopIfl
38、ow>highThenprint"沒有55!"六、冒泡排序排序的種類有交換排序、選擇排序、快速排序等。“冒泡法排序”也叫“起泡法排序”,是一種比較簡單、易懂的交換排序方法。它通過將相鄰元素進行比較和交換,逐步將一個無序序列排列為一個有序序列。簡單說:就是對相鄰數(shù)據(jù)兩兩比較,將符合條件的數(shù)據(jù)"冒上來"(沉下去),然后用同樣的方法再"冒泡”處理余下的數(shù)據(jù),直至全部數(shù)據(jù)完成排序。(1)標準的從后往前的升序Dima(9)AsIntegerFori=0To9a(i)=Int(100-1+1)*Rnd)+1Printa(i);Nexti定義數(shù)組給數(shù)組
39、的每個元素賦值1,100的隨機數(shù)并輸出Forj=1To9Fori=9Tojstep-1Ifa(i)<a(i-1)Then將數(shù)組中元素從小到大冒泡排序從a(9)開始比較、交換(小的往前換)外循環(huán)控制排序的趟數(shù)t=a(i-1)a(i-1)=a(i)a(i)=tEndIfNextiNextj內(nèi)循環(huán)控制每一趟排序比較的成員和次數(shù)Fori=0To9Printa(i);Nexti顯示排序后的數(shù)組元素(2)標準的從前往后的升序Dima(9)AsIntegerFori=0To9a(i)=Int(100-1+1)*Rnd)+1定義數(shù)組給數(shù)組的每個元素賦值1,100的隨機數(shù)、輸出Printa(i);Next
40、iForj=9To1Step-1Fori=0Toj-1Ifa(i)>a(i+1)Thent=a(i+1)a(i+1)=a(i)a(i)=tEndIfNextiNextj將數(shù)組中元素從小到大冒泡排序從a(0)開始比較、交換(大的往后換)外循環(huán)控制排序的趟數(shù)內(nèi)循環(huán)控制每一趟排序比較的成員和次數(shù)Fork=0To9Printa(k);Nextk顯示排序后的數(shù)組元素七、遞歸法1 、自定義函數(shù):編程者自己編寫的函數(shù)。自定義函數(shù)定義格式:Function<函數(shù)名稱>(<參數(shù)列表>)As<類型><局部常量、變量說明><語句組>函數(shù)名=返回值EndFunction自定義函數(shù)的調(diào)用有三種格式:格式1:變量=函數(shù)名稱(參數(shù))格式2:Call函數(shù)名稱(參數(shù))格式3:函數(shù)名稱參數(shù)2、遞歸法如果一個函數(shù)在定義時,直接或間接地調(diào)用了自己,這種算法稱為遞歸法。例如函數(shù)A自己調(diào)用了自己。另外如果函數(shù)A調(diào)用了函數(shù)B,函數(shù)B反過來再調(diào)用函數(shù)A的算法,這也是遞歸算法。用遞歸寫出的算法往往十分簡潔。遞歸法一般需要自定義函數(shù)或過程來實現(xiàn)。例1:用遞歸函數(shù)求n!注意給函數(shù)名s賦的值,就是該函數(shù)的返回結(jié)果值。Functions(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)中介客戶信息保密協(xié)議范本2篇
- 二零二五年三方二手車交易風險防范及保險合同2篇
- 二零二五年度企業(yè)合同管理培訓與人才發(fā)展意見建議書3篇
- 護理本科專業(yè)課課程思政教學評價指標體系的構建
- 服裝知識培訓課件
- 2025版綠色家居裝飾工程勞務合作合同2篇
- Unit 4《Lesson 3 My tidy bag》(說課稿)-2024-2025學年粵人版(2024)英語三年級上冊
- 工業(yè)機器人智能生產(chǎn)線升級改造擴建項目可行性研究報告寫作模板-備案審批
- 二零二五年度房地產(chǎn)項目股權劃轉(zhuǎn)及融資合作協(xié)議3篇
- 湖南省長沙市2025年新高考適應性考試生物學模擬試題(含答案)
- 智能制造企業(yè)數(shù)字化轉(zhuǎn)型建設方案
- (隱蔽)工程現(xiàn)場收方計量記錄表
- 病理生理學課件脂代謝紊亂
- 教師幽默朗誦節(jié)目《我愛上班》
- 《細胞工程學》考試復習題庫(帶答案)
- 中學課堂教學評價量表
- 食堂食材配送以及售后服務方案
- 稱量與天平培訓試題及答案
- 塊單項活動教學材料教案丹霞地貌
- 青年人應該如何樹立正確的人生觀
- 開封辦公樓頂發(fā)光字制作預算單
評論
0/150
提交評論