![2017-信息技術(shù)vb選修知識點(精編版)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/50742465-486a-4b48-ae5d-e1195db12688/50742465-486a-4b48-ae5d-e1195db126881.gif)
![2017-信息技術(shù)vb選修知識點(精編版)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/50742465-486a-4b48-ae5d-e1195db12688/50742465-486a-4b48-ae5d-e1195db126882.gif)
![2017-信息技術(shù)vb選修知識點(精編版)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/50742465-486a-4b48-ae5d-e1195db12688/50742465-486a-4b48-ae5d-e1195db126883.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、(一)電腦解決問題的流程圖選修知識點19二算法一、 算法定義 :是解決問題的方法和步驟。算法是程序設(shè)計的“靈魂”。算法 +數(shù)據(jù)結(jié)構(gòu)程序。二、算法的描述方法 :分自然語言、流程圖和偽代碼三種。1、自然語言 :人們?nèi)粘I钪械恼Z言本國語言,用自然語言描述符合我們的習(xí)慣,且容易理解。2、流程圖 :也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。3、偽代碼 :是介于自然語言和電腦程序語言之間的一種算法描述。是專業(yè)軟件開發(fā)人員常用方法。開始、 結(jié)束輸入、輸出判斷連處理、運(yùn)算接點三、算法的 5 個特征:流程線1、有窮性 :執(zhí)行有限步之后結(jié)束,且每一步的執(zhí)行時間也都是有限的。2、
2、確定性 :每一步都有確切的含義。3、可行性 :原則上能精確運(yùn)行,用紙和筆做有限次運(yùn)算后即可完成。4、輸入 :有零個或多個輸入。5、輸出 :至少產(chǎn)生一個輸出。三程序設(shè)計基礎(chǔ)電腦程序設(shè)計語言經(jīng)歷了機(jī)器語言、匯編語言、高級語言的發(fā)展過程。常用高級語言:basic、vb、pascal 、c、c+、java 、delphi 、fortran、powerbuilder等 。 面向?qū)ο蟮某绦蛟O(shè)計語言,如vb:其中的對象主要是系統(tǒng)設(shè)計好的對象,包括窗體、控件 等。控件 :是指工具箱中的工具在窗體中畫出的能實現(xiàn)一定功能的部件,如標(biāo)簽、文本框、命令按鈕等??丶ο蟮念愋颓熬Y名字舉例窗體formfrmfrmfind
3、命令按鈕commandcmdcmdok標(biāo)簽labellbllblinput文本框textboxtxttxtclock常用控件:假設(shè)命令按鈕(command)的 enabled 屬性設(shè)置為true 時按鈕有效, 設(shè)置為 false 時按鈕無效對象的三要素:屬性、方法、事件visiblealignment設(shè)置控件是否可見即標(biāo)簽文字對齊屬性:borderstyle設(shè)置控件的邊框風(fēng)格(0)left justify(1)right justify時文本右對齊;時文本左對齊;設(shè)置為 (2)center時文本居中。屬性name設(shè)置對象的名稱font設(shè)置控件中字體格式caption決定控件中顯示的內(nèi)容back
4、color設(shè)置控件背景色text決定窗體中文本框中顯示的內(nèi)容forecolor設(shè)置控件的前景色即文字顏色height決定控件高度top決定控件與窗體頂部的距離width決定控件寬度left決定控件與窗體左邊的距離對象中屬性可以在設(shè)計界面時通過屬性窗中設(shè)置,也可以在運(yùn)行時通過賦值語句在代碼窗口設(shè)置: 對象名 . 屬性名屬性值例:給文本框txt123 的 text 屬性賦值為字符串”20”,代碼如下:txt123.text =“20”注意 : 如果直接給對象名賦值的話,是賦值給對象的默認(rèn)屬性。例: txt123 =“20” 相當(dāng)于txt123.text =“20”都是給文本框txt123 的 te
5、xt屬性賦值。例:讀取文本框“txt123”的“ text ”方法常見的方法如下:print clsmoveshow格式:對象. 方法參數(shù)名表例 : form1.print”歡送使用 ”事件及事件驅(qū)動常見的事件如下:click、 dblclick、keypress、load 、mouseup 等。事件是對象對外部操作的響應(yīng),如在程序執(zhí)行時,單擊命令按鈕會產(chǎn)生一個click事件。如需要命令按鈕響應(yīng) click事件,就把完成click事件功能的代碼寫到click事件的事件過程中,與事件一一對應(yīng)。 事件過程的形式如下:private sub對象名 _事件名 ( )事件過程代碼end sub一、常量
6、: 指在程序進(jìn)行過程中不變的量,在vb中一般分?jǐn)?shù)值常量與字符常量兩種數(shù)值常量 :就是數(shù)學(xué)中說的常數(shù),分整型常量和實型常量兩種整型常量:即整數(shù),指不帶小數(shù)點的數(shù)值如1、0、 -10 、+35 等都是合法的整數(shù)實型常量:即實數(shù),指帶小數(shù)點的數(shù)值。實型常量又分為定點數(shù)和浮點數(shù)兩種。例:定點數(shù):3.14159 和 -6.8 , 1.99浮點數(shù): 2e6、1e5、88e× 103 可表示為1.2345e3 ,字母 e 表示底數(shù)10浮點數(shù)就是數(shù)學(xué)上的科學(xué)計數(shù)法。字符串常量 :被一對英文雙引號括起來的假設(shè)干個合法的字符稱為字符串常量。例如: ”china ”、”visual basic ”、”18
7、”、”等,是指英文雙引號中的字符,不包括英文雙引號本身。符號常量 :如果多次用到同一個常量,則可用一個有意義的名字表示這個常量。二、變量: 在程序執(zhí)行過程中,其值可以改變的量稱為變量。變量命名注意要點:1、必須以 字母或漢字 開頭 ,不能以數(shù)字或其他字符開頭。2、只能由 字母、漢字、數(shù)字或下劃線組成,不能含有小數(shù)點、空格等字符。3、最長不超過255 個字符4、不能以vb 保留字 作變量名,如語句定義符、函數(shù)名integer、end、 print、 dim等。5、vb 不區(qū)分變量名中字母大小寫 。如 hello和 hello是同一個變量。三、數(shù)據(jù)及運(yùn)算1、常用 數(shù)據(jù)類型 :(框選的內(nèi)容都要熟記)
8、2、常量和變量的命名、聲明及賦值注意:符號常量聲明和賦值必須一起完成,變量卻必須分2 句符號常量的聲明和賦值const常量名 as常量類型 =常量值或表達(dá)式如: const pi as常量名為pi注意:常量必須在聲明的時候立馬賦值 ,如果沒有“ = 3 ”部分就是錯誤的。變量的聲明 : dim < 變量名 >as < 變量類型 >如: dim a as integer定義一個整型變量,變量名為a變量的賦值vb中使用“ =”給變量賦值,其形式為:變量名=表達(dá)式四、運(yùn)算符1、算術(shù)運(yùn)算符注意:算術(shù)運(yùn)算符的優(yōu)先級問題、區(qū)分/ mod三個運(yùn)算符注 意 : 和mod 的 運(yùn) 算量
9、如 果帶小數(shù), 要 先 四舍 五 入取整,再作運(yùn)算。2、字符串運(yùn)算符“ +”和“ & ”作用是將運(yùn)算符兩邊的字符串連接為一個新的字符串。使用"&" 運(yùn)算符時應(yīng)注意前后加空格。注意特例:當(dāng)數(shù)值型和字符型連接時,"+" 把數(shù)據(jù)都轉(zhuǎn)化成數(shù)值型然后相加,返回一個數(shù)值型數(shù)據(jù)。例如:“123”+“45”=“12345”123 +“45”= 168“123”&“45”=“12345”123 &“45 ”=“12345”3、關(guān)系運(yùn)算符優(yōu)先級相同注意:關(guān)系表達(dá)式的運(yùn)算結(jié)果為布爾值true或 false=等于<小于號<>不等
10、于> 大于號>=大于等于號<=小于等于號運(yùn)算規(guī)則: (1) 當(dāng)兩個操作式均為數(shù)值型,按數(shù)值大小比較。(2) 字符串比較,則按字符的ascii 碼值從左到右 逐位 比較,直到出現(xiàn)不同的字符為止。例: "987" > "99",結(jié)果為 false。(3) 數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù),按數(shù)值比較。例:29 > "189",結(jié)果為false。4、邏輯運(yùn)算符not 取反 and 與 or 或 優(yōu)先級依次降低not 對一個邏輯量進(jìn)行運(yùn)算, and 和 or 是對兩個邏輯量進(jìn)行運(yùn)算,運(yùn)算結(jié)果都為邏輯值 true 或
11、false運(yùn)算符 說明 優(yōu)先級說明舉例結(jié)果not非 1當(dāng)操作數(shù)為假時,結(jié)果為真not falsetrue and與 2操作數(shù)均為真時,結(jié)果才為真 true and falsefalse or或 3操作數(shù)中有一個為真時,結(jié)果為真 false or truetrue5、日期運(yùn)算符與日期表達(dá)式日期表達(dá)式是用“ +”或“ -” 將算式表達(dá)式、日期型常量、日期型變量、日期函數(shù)等連接起來的式子。例如:表達(dá)式“#2003/09/01# + 30”的運(yùn)算結(jié)果是“2003-10-1 ”表達(dá)式“#2003/10/20# - #2003/10/10#”的運(yùn)算結(jié)果為整數(shù)106、運(yùn)算符的執(zhí)行順序:算術(shù)運(yùn)算符> 字
12、符串運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符如 a = 2: b = 3: c = 4: d = 5則表達(dá)式a > b and 2 * a > c or c <= d的值為true7、表達(dá)式的寫法雖然 vb 中的表達(dá)式與代數(shù)式中的算式很相似,但兩者卻是完全不同的概念。要注意區(qū)別,如在vb 中不能使用 等。下表中列出了一些代數(shù)式對應(yīng)的vb 表達(dá)式。代數(shù)式vb表達(dá)式說明2ab 4ab(2 * a+b)/(4 * a* b)在 vb表達(dá)式中無法寫分式, ,乘法運(yùn)算符*不能省略abc五、常用函數(shù)g* t2/2 a<=b and b<=csqr(b * b -4* a*
13、c)vb中不能使用上標(biāo),指數(shù)必須用vb運(yùn)算符 表示要用 vb中的運(yùn)算符,且不能連續(xù)寫使用內(nèi)部函數(shù) sqr計算平方根另函數(shù)abs 求絕對值1、數(shù)學(xué)函數(shù)函 數(shù)名稱含義abs(x)絕對值函數(shù)求 x 的絕對值 |x|int(x)取整函數(shù)求 x 的最大整數(shù)sqr(x)算術(shù)平方根函數(shù)求 x 的算術(shù)平方根log(x)自然對數(shù)函數(shù)求 x 的自然對數(shù)rnd隨機(jī)函數(shù)產(chǎn)生0,1)之間的隨機(jī)數(shù)xexp(x)指數(shù)函數(shù)e 1x>0sgn(x)符號函數(shù)sgn(x) =0x=0-1x<0sin(x)正弦函數(shù)sin(x), x的單位為弧度cos(x)余弦函數(shù)cos(x), x的單位為弧度tan(x)正切函數(shù)tan(
14、x), x的單位為弧度注意 :1int (x) 是取小于等于x的最大整數(shù) 。例如 :int (3.12) =3int (2.1+3) =5int ( -4. 6) = -5int ( -1-2. 5) = -42rnd 函數(shù)產(chǎn)生0, 1)之間的一個隨機(jī)數(shù),它常與 randomize以初始化隨機(jī)數(shù)生成器結(jié)合使用, 如果要產(chǎn)生0 , a )間的隨機(jī)整數(shù) ,表達(dá)式為int (rnd *a)產(chǎn)生 a , b)間的隨機(jī)數(shù):rnd*(b-a) +a產(chǎn)生 a, b間的隨機(jī)整數(shù):int(rnd * (b-a+1)+a2、字符串函數(shù)注意的以下字符串函數(shù)返回的值是數(shù)值型,還是字符串型。函數(shù)功能實例結(jié)果len( 字
15、符串 )求字符串的長度字符個數(shù)len ("2008奧運(yùn) ")6left(字符串, n )截取字符串左邊n個字符left (" 2008奧運(yùn)" , 4)“2008”mid( 字符串, m, n )從字符串第 m個字符開始截取n個字符mid ("2008奧運(yùn)" , 3, 2)“08” mid( 字符串, m )從字符串第 m個字符開始截取剩余字符mid ("2008奧運(yùn)" , 3)“08奧運(yùn) ” right(字符串, n )截取字符串右邊n個字符right (" 2008奧運(yùn)", 2)“奧 運(yùn) ”
16、string ( n,字符串 )生成指定長度的指定字符的字符串string (3 ,"89" )“888”在字符串 1中查找字符串 2.instr(字符串 1,字符串 2)并返回其出現(xiàn)的位置instr("2008奧運(yùn) " ," 奧")5注意 : 1string函數(shù)只返回 n個指定的字符串的首字符 。(2) left(字符串, n ) 和right(字符串, n ) 中,當(dāng) n的值大于字符串的長度時,返回整個字符串 。(3) mid(字符串, m, n) 函數(shù)中,如果m大于字符串的長度,則返回空串,如果省略n,則返回 m開始的全部字符。
17、3、常用轉(zhuǎn)換函數(shù)函數(shù)功能實例結(jié)果val( 數(shù)值型字符串)將數(shù)值型字符串轉(zhuǎn)換為數(shù)值val ("99") +val ("88")187str( 數(shù)值 )將數(shù)值轉(zhuǎn)換為字符串str (5)" 5" chr( 字符代碼 )將字符的 asc碼轉(zhuǎn)換為對應(yīng)的字符chr (65)a asc( 字符 )求字符對應(yīng)的ascii 碼asc ("a" )65cint( 表達(dá)式 )將表達(dá)式結(jié)果作四舍五入處理cint (3.6)4fix( 表達(dá)式 )將表達(dá)式結(jié)果的小數(shù)部分截去fix(3.8)3注意1對于 str( 數(shù)值 ) 函數(shù),如果其中的數(shù)值
18、為正數(shù),則返回的字符串的第一個字符為空格( 符號位 ) 。如str(5)的結(jié)果為兩個字符長度的字符串" 5" ,如要得到不含符號位的字符串,可使用cstr()函數(shù) 。2cint(表達(dá)式 )當(dāng)表達(dá)式的值對應(yīng)的小數(shù)位為.5的時候比較特殊,函數(shù)結(jié)果為離表達(dá)式的值最近的一個偶數(shù)。如 cint 4.5 =43asc( 字符 ) 函數(shù) ,只求 " 字符 " 中的第一個字符的ascii碼值,如: asc("ab" )=654ascii 碼的大?。嚎崭?lt;數(shù)值 <大寫字母 <小寫字母常用字符的 ascii 碼值:空格的ascii 碼為
19、: 320的ascii 碼為: 48a 的ascii 碼為: 65a的ascii 碼為: 97其他數(shù)字和英文字母按序依次類推。5字母轉(zhuǎn)換。 因大寫字母的ascii 碼比對應(yīng)的小寫字母小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)的當(dāng)前日期、時間、日期與時間。如2011 年5月29日,
20、 print date()或者 print date都會打印出2011-5-29(2) year()、month() 、day() 。這三個函數(shù)必須有參數(shù),即必須指定一個日期,分別返回指定日期的年、月和日。函數(shù)實例結(jié)果day(#8/18/2008#)18month(#8/18/2008#)8year (#8/18/2008#)20085、定位函數(shù) 與 print語句配合使用的,以控制輸出數(shù)據(jù)的格式,主要包括tab、space 等。(l) tab函數(shù)。功能:將被輸出的內(nèi)容放在由參數(shù)n所指定的位置( 列數(shù)) 處,在書寫時,被輸出的內(nèi)容要放在 tab函數(shù)的右面,并用分號分隔。例: print tab
21、 (15);"" tab (30);"成績 "(2) space函數(shù)。功能 : 產(chǎn)生由 n個空格所組成的字符串。6、用戶交互函數(shù)vb 提供 inputbox( ) 和 msgbox( ) 函數(shù)用于人機(jī)交互。(1) inputbox ( )格式:inputbox( 提示,標(biāo)題 ,默認(rèn)值 ,x 坐標(biāo) , y 坐標(biāo) )功能:在程序中調(diào)用inputbox 函數(shù),將產(chǎn)生一個提示用戶輸入內(nèi)容的輸入框,等待用戶輸入信息,并返回字符串類型的數(shù)據(jù)。用戶要想得到inputbox () 函數(shù)的返回值,就必須將函數(shù)的結(jié)果賦值給指定的變量。格式為:變量 = inputbox( 提
22、示 ,標(biāo)題 ,默認(rèn)值 )注意: 每執(zhí)行一次 inputbox() 函數(shù), 用戶只能輸入一個數(shù)據(jù)。輸入框的樣式是固定的,我們可以改變的是輸入框 的“提示 ”和“標(biāo)題 ”的內(nèi)容。例如:r = inputbox ( " 請輸入 r" , " 輸入圓半徑 " )2. msgbox( )格式為: msgbox( 提示信息 ,按鈕 ,標(biāo)題 )功能: 用于在程序運(yùn)行過程中產(chǎn)生一個消息框,可以看作是輸出對話框,該函數(shù)的返回值為數(shù)值型數(shù)據(jù)。格式: msgbox( 提示信息 ,按鈕 ,標(biāo)題 )例如: p=msgbox( " 你輸入的密碼不正確,是否繼續(xù)?"
23、; , vbyesno ," 錯誤提示 " 當(dāng)用戶單擊消息框中的一個按鈕后,消息框即從屏幕上消失。在上面的語句中,將函數(shù)的返回值賦給變量 p,在程序中可引用p作相應(yīng)的處理。六、常用語句1、賦值語句格式 1:let變量=表達(dá)式功能: 將右邊表達(dá)式的結(jié)果賦給左邊變量。通常情況, let 可以省略 。" ="為賦值號。它與數(shù)學(xué)中的" =" 是不同的。特別要跟方程式區(qū)分開。如 : x=5即把數(shù)值 5賦值給變量 xy =5 mod 2 + 7即先計算表達(dá)式5 mod 2 + 7的值,再將值 8賦值給變量 y n =n + 1即將 n的值加 1后
24、后再賦給 nx=y即將變量 y的值賦值給變量x也可以在一行內(nèi)給多個變量賦值,兩條語句之間用冒號" : "隔開,如:s=0: a=l: b=2格式 2:對象名 . 屬性名 = 表達(dá)式如果省略屬性名,則直接賦值給對象的默認(rèn)屬性。如: text1. text ="你好 ! "即把字符串" 你好! "賦給text l的text 屬性。注意:賦值語句一般都獨立成行,如果有類似賦值的語句出現(xiàn)在一些結(jié)構(gòu)中,大家要會區(qū)分。例如跟在以下關(guān)鍵字之后if x=5while x=5until x=5print x=5以上結(jié)構(gòu)中的x=5不再是賦值語句,因為&q
25、uot;= "在這里是個關(guān)系運(yùn)算符,判斷左右是否相等,所以x=5是一個關(guān)系表達(dá)式,其值應(yīng)該是個邏輯型,不是true就是false 。2、print語旬格式: 對象名 .print 表達(dá)式列表 功能: print方法具有 計算和輸出 雙重功能。對于表達(dá)式,它先計算其值,然后再在指定的對象上輸出文本,對于常量、變量則直接輸出其值。對象可以是窗體、圖片框、打印機(jī)等。" 對象名 "可以省略,省略時表示在當(dāng)前窗體上輸出數(shù)據(jù)。說明: 1表達(dá)式列表可以是一個或多個表達(dá)式,之間用英文的" ;" 或" ," 隔開。如果用逗號 分隔, 則按 標(biāo)
26、準(zhǔn)輸出格式 輸出各數(shù)據(jù), 此時以 14個字符位置為一個區(qū)段,逗號后的表達(dá)式在下一個區(qū)段輸 出;如果之間用分號分隔,則按 緊湊格式 輸出數(shù)據(jù)。例: print 1 ; 2 ; 3 ; 4 + 3print l , 2 , 3 , 4 + 3輸出結(jié)果為 : 1 2 3 7輸出結(jié)果為 : 1237 2如果 print語句末尾沒有逗號或分號,表示該 print輸出完結(jié)果后自動換行,后面再執(zhí)行print 時將在下一行的起始位置輸出數(shù)據(jù);如果在 print語句末尾使用逗號,則在同一行上跳到下一個輸出區(qū)段 輸出下一個 print所輸出的內(nèi)容。 如果在 print語句的 末尾加上一個分號,表示下一個 prin
27、t輸出的內(nèi)容將按緊湊格式緊跟在前一個print所輸出的內(nèi)容后面;3當(dāng)一個 print語句的 后面無任何表達(dá)式時,則輸出一空行或換行。注意:與 tab函數(shù)結(jié)合使用,掌握各種圖形的輸出。3、注釋語句為了提高程序的可讀性,通常需要在程序的適當(dāng)位置加上必要的注釋。在vb中添加注釋語句的方法為在字符 " ' "后加注釋內(nèi)容或采用" rem 注釋內(nèi)容 " 兩種形式。格式 1: '注釋內(nèi)容用 '寫的注釋語句既可以單獨寫一行,也可以跟在其他語句后。格式 2: rem 注釋內(nèi)容用 rem寫的注釋語句必須單獨寫一行。4、結(jié)束語旬格式: end功能:強(qiáng)
28、制程序結(jié)束運(yùn)行。private sub command1_click( ) endend sub該過程用于結(jié)束程序,即單擊命令按鈕commandl 時,結(jié)束程序的運(yùn)行。四程序設(shè)計的三大基本結(jié)構(gòu)一、順序結(jié)構(gòu)代碼按照 由上到下 的順序一行一行地執(zhí)行。程序執(zhí)行過程中沒有分支、沒有重復(fù)。二、分支結(jié)構(gòu)選擇結(jié)構(gòu)程序在運(yùn)行時會根據(jù)不同的條件決定程序的走向。實現(xiàn)選擇結(jié)構(gòu)的語句有if語句和 select語句 。1、if語句分為單分支、雙分支和多分支三類。(1) 單分支 if結(jié)構(gòu):注意:行if和 塊 if的區(qū)別只在書寫格式上。行 if語句: if < 條件表達(dá)式 > then語句 a塊 if語句: i
29、f < 條件表達(dá)式 > then語句 aend if(2) 雙分支 if結(jié)構(gòu):行 if語句: if <條件表達(dá)式> then語句 a else語句 b塊 if語句: if <條件表達(dá)式語句 a> thenend if3多分支if 語句else語句 bif<表達(dá)式 1>then<語句塊 1> elseif <表達(dá)式 2>then< 語句塊 2> else<語句塊 n+1> end if2、select case語句select case<測試表達(dá)式 >case表達(dá)式列表1語句組 1注意:要
30、會區(qū)分選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的流程圖。如上圖:甲為循環(huán)結(jié)構(gòu),有向上回到條件框的箭頭。乙為選擇結(jié)構(gòu)雙分支。case表達(dá)式列表2語句組 2case else語句組 n+1 end selectselect/case語句的 執(zhí)行過程 是: 先求 " 測試表達(dá)式 " 的值,然后順序測試該值符合哪一個case子句的情況,如果找到了,則直接執(zhí)行該case子句下面的語句塊,然后執(zhí)行end select 的后續(xù)語句;如果沒找到,則執(zhí)行 case else 下面的語句塊,然后執(zhí)行end select的后續(xù)語句。說明 : 1" 測試表達(dá)式 " 可以是數(shù)值型或字符串型表達(dá)式。 2
31、" 表達(dá)式列表 " 形式有以下 4種。 一個表達(dá)式或用逗號隔開的假設(shè)干表達(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ù)事先能夠確定的問題。for 循環(huán)變量一般形式是:for循環(huán)變量=初值 to終值 step步長值 循環(huán)體 next 循環(huán)變量 說明: 1循環(huán)變量,必須為數(shù)值型。循環(huán)初值、循環(huán)終值也是數(shù)值型或數(shù)值表達(dá)式。2循環(huán)的有效區(qū)間是由循環(huán)初值、循環(huán)終值所限定的閉
32、區(qū)間。3步長值是循環(huán)變量的增量,是一個數(shù)值表達(dá)式。假設(shè)步長值為正,則初值就應(yīng)小于終值,否則循環(huán)體一次都不執(zhí)行; 假設(shè)步長值為負(fù), 則初值應(yīng)大于終值, 否則循環(huán)體一次都不執(zhí)行。如果步長值是 1,step 1可略去不寫。但假設(shè)步長值為0,會造成死循環(huán),這是要防止的,可用ctrl+break結(jié)束程序。4循環(huán)體是 for 語句和 next 語句之間的語句序列,也是需要重復(fù)執(zhí)行的語句組。5next 后的循環(huán)變量與for 語句中的循環(huán)變量必須相同。6循環(huán)的次數(shù)=循環(huán)終值 - 循環(huán)初值 步長值 + 1for/ next循環(huán)語句的執(zhí)行過程:1系統(tǒng)將初值賦給循環(huán)變量,并自動記下終值和步長。2檢查循環(huán)變量的值是否
33、越過終值。如越過就結(jié)束循環(huán),執(zhí)行 next 后面的語句; 否則執(zhí)行一次循環(huán)體。3執(zhí)行 next 語句 : 將循環(huán)變量增加一個步長值再賦給循環(huán)變量,轉(zhuǎn)到第2步繼續(xù)執(zhí)行循環(huán)。2、do loop 循環(huán)對于不能預(yù)先確定次數(shù),但需要執(zhí)行多次的情況,可以使用do/loop 循環(huán)。格式一:do while條件表達(dá)式循環(huán)體loop先判斷條件是否為真,假設(shè)條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。格式二:do循環(huán)體loop while條件表達(dá)式先執(zhí)行一次循環(huán)體,再判斷條件是否為真,假設(shè)條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此至少執(zhí)行一次循環(huán)體。格式三:do循環(huán)體loop unti
34、l條件表達(dá)式先執(zhí)行一次循環(huán)體,再判斷條件是否為假,假設(shè)條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此至少執(zhí)行一次循環(huán)體。格式四:do until條件表達(dá)式循環(huán)體loop先判斷條件是否為假,假設(shè)條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。注意 : if語句和 do語句中都有的" 條件表達(dá)式 " ,一般是一個關(guān)系表達(dá)式或邏輯表達(dá)式,其值不是true 就是 false 。但如果是數(shù)值型的表達(dá)式的話,會進(jìn)行強(qiáng)制轉(zhuǎn)換,即數(shù)字0 轉(zhuǎn)換成 false, 非 0 轉(zhuǎn)換成 true 。五算法與問題解決一、解析法解析法又稱公式法。解析法就是在分析具體問題的基礎(chǔ)上,抽取出
35、一個數(shù)學(xué)模型,這個數(shù)學(xué)模型能用假設(shè)干個解析表達(dá)式表示出來。求解了這些表達(dá)式,問題也就得以解決。如:求解一元二次方程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 thenx1=(-b+sqr(b*b-4*a*c)/(2*a)分析:x=bb 24 ac 2ax2=(-b-sqr(b*b-4*a*c)/(2*a) text1.text =str(x1)text2.text = str(x2) elseprint“方程無解 ”end if
36、x1=(-b+sqr(b*b-4*a*c)/(2*a) x2=(-b-sqr(b2-4*a*c)/(2*a)二、窮舉法窮舉法是將求解對象一一列舉 出來,然后 逐一加以分析、處理,并驗證結(jié)果是否滿足給定的條件, 窮舉完所有對象,問題將最終得以解決。窮舉法也叫枚舉法、列舉法。窮舉法關(guān)鍵是如何列舉所有可能的情況,不能遺漏,也不能重復(fù)。注意取值范圍,減少電腦工作量。適用編程問題:水仙花問題、雞兔同籠問題、百錢百雞問題、素數(shù)問題。如:已知公雞每只3元,母雞每只5元,每 3只小雞 1元。用 100元錢買 100只雞,應(yīng)各買多少只雞?dim a as integer, b as integer,c as i
37、nteger for a=0 to 33公雞數(shù)for b=0 to 20母雞數(shù)for c=0 to 100小雞數(shù)ifa+b+c=100 and a*3+b*5+c/3=100then print a;b;cend ifnext c next bnext adim a as integer, b as integer dim c as integerfor a=0 to 33公雞數(shù)for b=0 to 20母雞數(shù)c=100-a-b小雞數(shù)if a*3+b*5+c/3=100then print a;b;cend if next bnext a三、數(shù)組及其應(yīng)用數(shù)組是一組相同類型的變量集合。數(shù)組用一個
38、統(tǒng)一的名字代表邏輯上相關(guān)的一批數(shù)據(jù),每個元素靠下標(biāo)變量來區(qū)分。有一個下標(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個元素,下標(biāo)從o到9。用來存放整型數(shù)據(jù)。也可以指定下標(biāo)的起始值。 例 2: dim x (2 to 10) as single這個數(shù)組含有9個元素,下標(biāo)從2到 10,數(shù)據(jù)類型屬于單精度實型。還可以說明多維數(shù)組。例 3: dim d (4, 2 to 6, 3 to 9) a
39、s long說明了一個 3維數(shù)組,一共 5*5*7 個數(shù)組成員,數(shù)據(jù)類型屬于長整型。2、應(yīng)注意的問題:1在同一個程序中,任何數(shù)組只能聲明一次。例如 : dim s(5) as integerdim s(10) as integer這樣,運(yùn)行時會報錯:當(dāng)前范圍內(nèi)的聲明重復(fù)。2下標(biāo)必須是常量且為整數(shù)( 假設(shè)不是整數(shù),程序運(yùn)行時自動4舍5入為整數(shù) ) 。3同一個程序中,數(shù)組名不能與變量名相同。例如 : dim s as integerdim s (10) as integer這樣,運(yùn)行時會報錯:變量與數(shù)組不能同名。4數(shù)組必須先聲明后使用否則運(yùn)行時會報錯:子程序或函數(shù)未定義。5數(shù)組使用時,下標(biāo)不能超出
40、聲明的范圍。例如 : dim s (10) as integerprint s(11)這樣運(yùn)行時會報錯:下標(biāo)越界。6數(shù)組聲明時和變量一樣,要注意類型。例如 : dim s (10) as integers(3)=40000這樣運(yùn)行時會報錯:溢出。3、數(shù)組的應(yīng)用數(shù)組的賦值、計算、輸出通常都與for next 循環(huán)結(jié)合使用。for 語句中的循環(huán)變量作為數(shù)組元素的下標(biāo),通過循環(huán)變量的不斷改變,到達(dá)對每個數(shù)組元素依次進(jìn)行處理的目的。例子:利用數(shù)組實現(xiàn):輸出10 個1,100 的隨機(jī)數(shù),并輸出它們的和與平均值。dim a(9) as integer數(shù)組的定義dim s as integerrandomi
41、ze將 rnd函數(shù)隨機(jī)化for i = 0 to 9a ( i ) = int(100 - 1 + 1) * rnd) + 1print a( i )s = s + a( i ) next iprint "和為: " sprint "平均值為: " s/10四、順序查找順序查找是查找算法中簡單、易行的算法。進(jìn)行查找時一般從數(shù)據(jù)的第一個元素開始,按照數(shù)據(jù)的順序查找指定的關(guān)鍵值。如果被查數(shù)據(jù)和該關(guān)鍵值相匹配,則表示找到;如果所有數(shù)據(jù)與關(guān)鍵值都不匹配,則表示被查數(shù)據(jù)中不存在該關(guān)鍵值,查找失敗。順序查找的數(shù)據(jù)不要求是有序的。五、二分法查找 二分法查找也叫折半查找
42、 二分法查找要求被查數(shù)據(jù)是 有序的查找思路:對于有序數(shù)列從小到大排,設(shè)定下界low 最小元素下標(biāo)和上界high 最大元素下標(biāo),當(dāng)滿足條件low<=high時,求 中點 mid,將 中點元素的值 與所要查找的值比較,假設(shè)中點元素值比所要查找元素小,則應(yīng)找后半段,所以low=mid+1 ,否則應(yīng)找前半段high=mid-1 ,直到找到為止; 假設(shè) 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
43、)=60 :a(8)=79 :a(9)=105low = 0: high = 9do while low < highmid = (low + high) 2注意: mid是中點位置,而a(mid)是中點位置的值ifa(mid)= 55 then print "找到了 "exit doelseif a(mid) < 55 then low = mid + 1else high = mid - 1 end ifloopif low > high then print "沒有 55! "六、冒泡排序排序的種類有交換排序、選擇排序、快速排序等
44、。“冒泡法排序”也叫“起泡法排序”,是一種比較簡單、易懂的交換排序方法。它通過將相鄰元素進(jìn)行比較和交換,逐步將一個無序序列排列為一個有序序列。簡單說:就是對相鄰數(shù)據(jù)兩兩比較,將符合條件的數(shù)據(jù)"冒上來 "沉下去,然后用同樣的方法再" 冒泡" 處理余下的數(shù)據(jù),直至全部數(shù)據(jù)完成排序。(1) 標(biāo)準(zhǔn)的從后往前的升序dim a(9) as integer for i = 0 to 9a(i) = int(100 - 1 + 1) * rnd) + 1print a(i); next ifor j = 1 to 9for i = 9 to j step -1 if a
45、(i ) < a(i-1) thent = a(i - 1) a(i - 1) = a(i) a(i) = tend if next i next jfor i = 0 to 9 print a(i);next i(2) 標(biāo)準(zhǔn)的從前往后的升序dim a(9) as integerfor i = 0 to 9a(i) = int(100 - 1 + 1) * rnd) + 1print a(i); next ifor j = 9 to 1 step -1 for i = 0 to j-1if a(i) > a(i+1) then t = a(i+ 1)a(i+ 1) = a(i)a(
46、i) = t end ifnext inext jfor k= 0 to 9 print a(k); next k定義數(shù)組給數(shù)組的每個元素賦值1,100 的隨機(jī)數(shù)并輸出將數(shù)組中元素從小到大冒泡排序從 a(9) 開始比較、交換小的往前換外循環(huán)控制排序的趟數(shù)內(nèi)循環(huán)控制每一趟排序比較的成員和次數(shù)顯示排序后的數(shù)組元素定義數(shù)組給數(shù)組的每個元素賦值1,100 的隨機(jī)數(shù)、輸出將數(shù)組中元素從小到大冒泡排序從 a(0)開始比較、交換大的往后換外循環(huán)控制排序的趟數(shù)內(nèi)循環(huán)控制每一趟排序比較的成員和次數(shù)顯示排序后的數(shù)組元素七、遞歸法1、 自定義函數(shù):編程者自己編寫的函數(shù)。自定義函數(shù)定義格式:function<
47、函數(shù)名稱 > (<參數(shù)列表 > ) as<類型 ><局部常量、變量說明><語句組 >函數(shù)名 =返回值end function自定義函數(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 賦的值
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 14124-2024機(jī)械振動與沖擊固定建筑結(jié)構(gòu)的振動振動測量及對結(jié)構(gòu)影響評價的指南
- PB-22-8-Hydroxyisoquinoline-isomer-生命科學(xué)試劑-MCE-5052
- Lariciresinol-4-O-β-D-glucopyranoside-生命科學(xué)試劑-MCE-5846
- E3-Ligase-Ligand-linker-Conjugate-122-生命科學(xué)試劑-MCE-1944
- 二零二五年度航空航天產(chǎn)業(yè)融資合作協(xié)議書
- 二零二五年度用人單位與派遣公司國際化人才派遣服務(wù)協(xié)議
- 2025年度音樂制作與音樂版權(quán)許可合同
- 2025年度活動板房銷售與臨時辦公場所租賃合同
- 二零二五年度商業(yè)地產(chǎn)貸款合同范本
- 2025年度飯店短期餐飲服務(wù)員勞務(wù)派遣協(xié)議
- 《春酒》琦君完整版
- 北師大版(2024新版)七年級上冊數(shù)學(xué)第四章《基本平面圖形》測試卷(含答案解析)
- 湖南省邵陽市武岡市2024屆高三上學(xué)期期中考試地理含答案解析
- 2022年內(nèi)分泌醫(yī)療質(zhì)量控制評價體系與考核標(biāo)準(zhǔn)
- 春節(jié)后復(fù)工安全教育培訓(xùn)考試試題及答案
- 寄宿制學(xué)校工作總結(jié)
- 小學(xué)數(shù)學(xué)6年級應(yīng)用題100道附答案(完整版)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- JT-T 1495-2024 公路水運(yùn)危險性較大工程專項施工方案編制審查規(guī)程
- JT-T-390-1999突起路標(biāo)行業(yè)標(biāo)準(zhǔn)
- 2023年四川省成都市武侯區(qū)中考物理二診試卷(含答案)
評論
0/150
提交評論