版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 1 章 visual basic 概述一、vb 是在 windows 平臺下,用于開發(fā)和創(chuàng)建具有圖形用戶界面的應(yīng)用程序的工具。 二、vb 是面向?qū)ο蟮某绦蛟O(shè)計語言;工作方式為事件驅(qū)動/消息驅(qū)動。1對象對象是動作體的邏輯模型,是人們可控制的某種東西,應(yīng)用程序的每個窗體和窗體上的 種種控件都是 vb 的對象2屬性屬性指對象的特性。3方法方法指對象可以進行的動作或行為。4事件事件是指能被對象所識別的動作。5事件驅(qū)動只有在事件發(fā)生時程序才會運行。6工程工程是應(yīng)用程序文件的集合,一個工程一般會包含下列文件,如表 1l 所示。表 11 應(yīng)用程序文件類型文件類型說明工程文件(vbp)窗體文件(frm)二
2、進制數(shù)據(jù)文件(frx)標(biāo)準(zhǔn)模塊文件(bas) 類模塊文件(cls)它是與該工程有關(guān)的全部文件和對象的清單,該文件是必選項 它包含事件過程,以及該窗體及窗體上的各個控件對象的屬性設(shè) 置以及相關(guān)的說明,該文件是必選項當(dāng)窗體中含有二進制屬性(如圖片或圖標(biāo))時,該文件將自動產(chǎn)生 它包含可以被任何窗體或?qū)ο笳{(diào)用的過程程序代碼,該文件是可 選項該文件是可選項包含 activex 控件的文件(ocx) 該文件是可選項第 2 章創(chuàng)建用戶界面知識點概括1用戶界面用戶界面是應(yīng)用程序中最重要的部分,是程序與用戶進行交互的橋梁,標(biāo)準(zhǔn)的 windows 應(yīng)用程序界面都是由窗口、菜單條、各種按鈕、文本框、列表框等對象構(gòu)成
3、的。2窗體窗體是包容用戶界面或?qū)υ捒蛩璧母鞣N控件對象的容器。在創(chuàng)建一個新的工程時,默認的第一個窗體即為啟動窗體。3控件控件是與用戶進行交互的可視化部件,向窗體上添加控件應(yīng)在窗體編輯器中進行。 4命令菜單命令菜單是應(yīng)用程序窗口的基本組成元素之一,它由菜單條、菜單、菜單項、子菜單、 彈出式菜單組成,可以通過 vb 提供的菜單編輯器創(chuàng)建程序菜單。(1) 連字符()(2) &5設(shè)計用戶界面的步驟(1) 確定窗體的大小和位置。(2) 根據(jù)程序的功能和要求,添加所需的控件。(3) 合理地分布控件的位置與大小。(4) 設(shè)置各個對象的屬性。6窗體及常用控件的常用屬性、事件、方法熟悉各對象的常用屬性、事件和方
4、法,對于創(chuàng)建應(yīng)用程序有著舉足輕重的作用,表 21 給 出了窗體及常用控件的常用屬性、事件以及方法使用說明。表 21 窗體及常用控件的常用居住、事件以及方法一覽表對 象名稱說明通用屬性namecaptionfontlefttopheightwidthenabled設(shè)置對象在程序代碼中的引用名設(shè)置對象的標(biāo)題欄中或圖標(biāo)下面的文本 設(shè)置文本的字體、字型、字號等設(shè)置對象的左邊界距容器坐標(biāo)系縱軸的距離 設(shè)置對象的上邊界距容器坐標(biāo)系橫軸的距離 設(shè)置對象的高度設(shè)置對象的寬度設(shè)置對象是否被激活通用屬性 visible backcolorforecolorindextabinfextabstopstyle設(shè)置對象
5、是否可見設(shè)置對象的背景色設(shè)置對象的前景色設(shè)置控件在控件數(shù)組中的標(biāo)識號設(shè)置窗體中的對象響應(yīng)tab鍵的順序 設(shè)置用戶是否可以使用tab 鍵來選定對象 設(shè)置控件的外觀boderstyle屬 iconpicture性autoredrawhideshow設(shè)置窗體的邊框風(fēng)格設(shè)置運行時窗體最小化所顯示的圖標(biāo) 設(shè)置窗體上的背景圖像設(shè)置從 graphics 方法到一個持久性位圖的輸 出用于隱藏 mdifohn 或 fonn 對象,但不卸載 用于顯示 mdifom 或 fom 對象方法moveprintcls用于改變對象的位置和大小用于在 form 和 picturebox 上顯示文本和圖形 用于清除 form
6、和 picturebox 上的文本和圖形窗體printform用于將 from 對象的圖形逐位發(fā)送給打印機(form) initialize當(dāng)應(yīng)用程序創(chuàng)建某對象時發(fā)生,可應(yīng)用該事件 初始化窗體所用的數(shù)據(jù),它在 load 事件前發(fā)生事件loadunloadc lickd blclickresizeactivatedeactivate當(dāng)一個窗體被加載時發(fā)生當(dāng)窗體卸載時發(fā)生當(dāng)在一個對象上單擊鼠標(biāo)左鍵時發(fā)生 當(dāng)在一個對象上雙擊鼠標(biāo)左鍵時發(fā)生 當(dāng)一個對象首次顯示或窗口狀態(tài)改變時發(fā)生 當(dāng)一個窗體成為當(dāng)前窗體時發(fā)生 當(dāng)一個窗體不再是當(dāng)前窗體時發(fā)生對 象文本框(textbox)屬性方法名事件稱textmaxl
7、engthmultilinea1ignmentscrollbarpasswordcharselstartsellengthseltextr efreshs etfocuschangelostfocusgotfocus說明設(shè) 置 控 件 中 包 含 的 文 本 ( 小 于 32kb)設(shè)置控件中可以輸入字符的最大 數(shù),0 為任意個字符設(shè)置用戶是否可以接受多行文本 設(shè)置復(fù)選框或選項按鈕或一個控件 的文本的對齊設(shè)置對象是否有水平或垂直滾動條 設(shè)置是否在控件中顯示用戶鍵入的 字符設(shè)置所選擇文本的起始點設(shè)置所選擇文本的字符數(shù)設(shè)置包含當(dāng)前所選擇文本的字符串 強制全部重繪一個窗體或控件 將焦點移至指定的窗體或
8、控件 當(dāng)文本框的內(nèi)容改變或通過代碼改 變 text 屬性的設(shè)置時發(fā)生 當(dāng)對象失去焦點時發(fā)生當(dāng)對象獲得焦點時發(fā)生命令按鈕(commandbutton)標(biāo)簽屬性方法事件屬性keypressc anceld efaultstylevaluesetfocusclickautosizewordwrapborderstyle當(dāng)一個對象具有焦點,按下并松開 一個鍵時發(fā)生設(shè)置該命令按鈕是否為窗體的 “取消”按鈕設(shè)置該命令按鈕是否為窗體的默 認按鈕設(shè)置命令按鈕的外觀是標(biāo)準(zhǔn)風(fēng)格 或圖形風(fēng)格設(shè)置命令按鈕是否選中,true 為 選中,false 為未選中設(shè)置控件是否能自動調(diào)整大小以顯 示所有的內(nèi)容設(shè)置控件是否擴大以多
9、行方式顯示 標(biāo)題文字,前提是 autosize 為 true 設(shè)置邊框是立體的或是平面的(label)backstyle設(shè)置背景是透明的或是不透明的選項按鈕方法事件屬性b efresh、movec 1ick、dblclickcaptionaliglment設(shè)置選項按鈕旁的標(biāo)題文字 設(shè)置選項按鈕是在標(biāo)題文字的(optionbutton)事件左邊還是在右邊設(shè)置選項按鈕是否被選中,truevalue為選中,false 為未選中click、dblclick同選項按鈕caption屬alignment同選項按鈕復(fù)選框性設(shè)置選項按鈕是否被選中, 0(checkbox)事件框架(frame)valuecli
10、ckcaption表示未選中,1 表示選中,2 表 示變灰,暫時不能訪問該屬性為空時,可作為一個封 閉邊框?qū)?象屬名稱listtextlistindex說明設(shè)置列表框中包含的項目表示運行中在列表框中最后選中的列表項 的正文文本表示運行中在列表框中最后選中的列表項 序號性listcount表示運行中列表框中的列表項數(shù)目列表框(listbox)sortedcolumnsadditem設(shè)置是否將列表框中的列表項按 ascii 碼 自動排序設(shè)置列表框中的項目是按一列還是按多列 顯示向列表框添加項目方法事件屬性removeltemclearclick、dblclickstyle將列表框中所選中的列表項刪
11、除 清空列表框中的所有項目決定組合列表框的外觀組合框其余同 listbox方法同 listbox(combobox)事件當(dāng) style 為 0 或 2 時可響應(yīng) click 事件,當(dāng) style 為 1 時可響 應(yīng) dblclick 事件,當(dāng) style 為 0 或 1 時可響應(yīng) change 事件圖片框?qū)傩詐ictureautosize設(shè)置圖片框的背景圖像設(shè)置圖片框是否能自動調(diào)整大小以顯示完整的圖片(picturebox)圖像(image)方法事件屬性print、move、refresh clickpicturestretch設(shè)置圖像控件的背景圖像設(shè)置是否縮放圖形來適應(yīng)圖像控件大方法定時器
12、屬性 (timer)move、refreshenabledinterval小設(shè)置該控件是否被激活設(shè)置調(diào)用 timer 控件的 timer 事件間隔的時 間(單位為 ms,最大為 65535ms)事件timer timer 控件可以有規(guī)律地每隔一段時間執(zhí)行一次代碼屬性minmaxlargechange設(shè)置滾動塊位于滾動條頂端或者最左側(cè) 時所代表的值設(shè)置滾動塊位于滾動條底端或者最右側(cè) 時所代表的值設(shè)置當(dāng)用戶在滾動條的空白處單擊時增 減的值水 平 垂 直 滾動條(hscrollba vscrollbar)smallchangevalue設(shè)置當(dāng)用戶在滾動條兩端的箭頭按鈕上 單擊時增減的值設(shè)置滾動條當(dāng)前
13、的值事件change在滾動塊移動后或通過代碼改變 value 屬scroll性的設(shè)置時發(fā)生 在滾動塊移動時發(fā)生注:加*號的屬性為只能通過代碼設(shè)置的屬性(即在屬性窗口中沒有顯示 7、print 方法第 3 章語言基礎(chǔ)31 知識點概括一個應(yīng)用程序就是一個工程,在一個工程中可以包含若干個文件,應(yīng)用程序的基本組成 如圖 31 所示。應(yīng)用程序的基本組成工程文件(.vbp)一個或若干個窗體模塊(.frm)一個或若干個標(biāo)準(zhǔn)模塊(.bas) 其它文件圖 3-1 應(yīng)用程序的基本組成事件過程(sub)用戶自定義過程(sub)用戶自定義函數(shù)過程(function)用戶自定義過程(sub) 用戶自定義函數(shù)過程(fun
14、ction)1過程與模塊程序的最基本單位是過程,一般在 vb 中將過程分為事件過程和通用過程有窗體模塊和標(biāo) 準(zhǔn)模塊,關(guān)于過程與模塊的概念和說明見表 31。表 31 過程與模塊概 念過程模塊2數(shù)據(jù)類型事件過程通用過程窗體模塊(.frm)標(biāo)準(zhǔn)模塊(bas)說明為窗體以及窗體上的對象所編寫的用來響應(yīng)由用戶 或系統(tǒng)引發(fā)的各種事件的程序代碼一個應(yīng)用程序中的不同窗體或者一個窗體內(nèi)不同的 事件過程可以共享的程序代碼窗體模塊中包含事件過程,以及該窗體及窗體上的 各個控件對象的屬性設(shè)置和相關(guān)的說明;窗體模塊還 可包含通用過程,它對來自任何事件過程的調(diào)用都作 出響應(yīng)標(biāo)準(zhǔn)模塊中保存的都是通用過程及相關(guān)的說明數(shù)據(jù)是計
15、算機程序處理的對象,vb 具有強大的數(shù)據(jù)處理能力,在 vb 中定義了標(biāo)準(zhǔn)數(shù)據(jù) 類型,其具體說明見表 32。表 32 數(shù)據(jù)類型數(shù)據(jù)類型整型類型名稱integer類型說明符 存儲空間(byte) 2初始值數(shù)值型長整型long4單精度型雙精度型single ! 4double # 80貨幣型currency8字節(jié)型byte 1字符型變長字符串 定長字符串string $string*size10+串長度串長度空字符串布爾型日期型booleandate2 false8 0:00:00變體型對象型variantobject=164空字符串3常量常量就是在程序運行中取值始終保持不變的數(shù)據(jù),可以是具體的數(shù)值
16、也可以是專門說明的符 號,各種常量的表示見表 33。表 33 常量類 型示例數(shù)值常量字符常量邏輯常量日期常量 回車與換行符123、-9876e-5(單精度)、314159265d8(雙精度)、0137(八進制)、h2ab8(十六進制)visual basic、中國 北京 2008 奧運會(注:字符常量一定要 放在西文雙引號內(nèi))true(真)、false(假)、非 0 值轉(zhuǎn)換為 true、0 值轉(zhuǎn)換為 false #12:35:48#、#7122004#chr(13)十 chr(10)或 vbcrlf符號常自 語句格式:const 常量名 類型說明符 as 數(shù)據(jù)類型表達式 定 const pi!
17、31415926義 const olympic as sting”中國 北京 2008 奧運會”量顏色常量紅色綠色藍色黃色vbredvbgreenvbbluevbyellow青色洋紅色黑色白色vbcyanvbmagentavbblackvbwhite4變量變量就是以符號形式出現(xiàn)在程序中,其值在程序執(zhí)行期間可以發(fā)生變化的數(shù)據(jù)。變量的 作用域的不同,可將變量分為局部變量、窗體/模塊級變量和全局變量。表 34 中給出了各 種變量的聲明方式和聲明位置的比較。聲明位置局部變量過程中量表 34 變窗體模塊級變量 通用聲明全局變量通用聲明聲明方式作用域dim dimstatic(靜態(tài)) private pu
18、blic在定義該變量的模塊 在工程內(nèi)的所有過程中都僅在說明它的過程中使用 或窗體的所有過程內(nèi) 有效均有效5運算符與表達式(1)運算符。在程序設(shè)計的過程中,經(jīng)常要進行各種各樣的運算,在 vb 中包括四種運算:算術(shù)運算、 連接運算、關(guān)系運算和邏輯運算,相關(guān)運算符的說明見表 35表 35 運 算 符類 型運算符優(yōu)先等級算術(shù)運算符 (指數(shù)) (取負) *和(整除) mod(取余) + 和 連接運算符 +(運算符兩邊同為字符型)和(強制將兩個不同類型的表達式作字符串連接) 關(guān)系運算符 、,(不等于)、is(比較兩個對象的引用變量)、like(比較樣式)邏輯運算符 not(邏輯非)一 and(邏輯與)一
19、or(邏輯或)一 xor(邏輯異或)(2)表達式。把常量和變量用運算符、括號連接起來的式子就是表達式。在 vb 表達式中只能使用圓 括號,且括號必須成對使用.(3)運算規(guī)則.運算符運算優(yōu)先順序為:括號最優(yōu)先-術(shù)運算-連接運算-關(guān)系運算-邏輯運算。 相同數(shù)據(jù)類型的數(shù)據(jù)進行運算,運算結(jié)果也是同一類型。不同數(shù)據(jù)類型的數(shù)據(jù)進行運算,運算結(jié)果為兩個運算對象中存儲長度較長的對象的類 型.例如:dim x as integer,y as integerx200:y200print x*y執(zhí)行以上程序段,將出現(xiàn)“溢出”錯誤信息,若將其中 y as integer 改為 y as single , 則運算結(jié)果為
20、 40000。6常用內(nèi)部函數(shù)vb 中有兩類函數(shù):內(nèi)部函數(shù)和用戶自定義函數(shù)。用戶自定義函數(shù)將在第8 章中進行介 紹。內(nèi)部函數(shù)是由系統(tǒng)提供的,可在任何一個 vb 程序中隨時使用的程序段。表 36表 310 分別列出了常用函數(shù)的格式與功能。注意:使用時要注意每個函數(shù)的功能、參數(shù)個數(shù)及類型,以及函數(shù)返回值的類型。表 36 算術(shù)函數(shù)示例函數(shù)名功能表 達 式結(jié) 果sgr(x)log(x)求 x 的平方根值,x0 sqr(16) 4 求 x 的自然對數(shù),x0 log(2) 069314exp(x)abs(x)hex(x)求以 e 為底的冪值,即求 ex 求 x 的絕對值求 x 的十六進制數(shù)值,結(jié)果為 一字符
21、串exp(2) 7.38906 abs(48) 4.8 hex(1000) 3e8oct(x)sgn(x)求 x 的八進制數(shù)值,結(jié)果為一字 oct(1000) 1750 符串求 x 的符號,x0 為 1,x0 為 sgn(-10) -1 0,x0 為-1 sgn(10) 1rnd(x)產(chǎn)生一個在 0 ,1 區(qū)間均勻分布的隨機數(shù)。若產(chǎn)生 mn 之間的 int(rnd 隨 機 整 數(shù) , 其 通 式 為 : *(99-10)+1)+10 int(rnd*(n-m)+1)+m產(chǎn) 生 兩 位 隨 機整數(shù)sin(x)cos(x)求 x 的正弦值,x 單位為弧度 sin(30*3.141592 0.518
22、0)求 x 的余弦值,x 單位為弧度 cos(30*3.141592 0.866025180)tan(x)求 x 的正切值,x 單位為弧度tan(30* 3.141592 0.57735180)atn(x)求 x 的反正切值,x 單位為弧度 atn(30*3.141592 0.48235180)表 3-7 字符串函數(shù)函數(shù)名功能示例表 達 式結(jié) 果len(st)求字符串 st 的長度(字符個數(shù))ch=”i am a student”14len(ch)left(st,n) 從字符串 s,左邊起取 n 個字符 left(ch,4) right(st,n) 從字符串 st 右邊起取 n 個字符 rig
23、ht(ch,7)從字符串 s,左邊第 n1 個位置開始mid(st,n1,n2) 向右起取 n2 個字符,若 n2 省略,則 mid(ch,3,2)取從 n1 到結(jié)尾的所有字符 mid(ch,6)“i am”“studentg”am”a student”ucase(st)lcase(st)將字符串 st 中所有的小寫字符改為 ucas6(neu) 大寫字符將字符串 st 中所有的大寫字符改為 lcase(name) 小寫字符”new”name”ltrim(st)rtrim(st)去掉字符串 st 的前導(dǎo)空格 去掉字符串 st 的尾隨空格ltrim( new) rtrim(”new ”)”hew
24、”new”trim(st)去掉字符串 st 的前導(dǎo)空格和尾隨空 tnm(” new ”) ”new” 格instr(n,st1,st2) 從 st1 的第 n 個位置起查找給定的字符 st2,返回該字符在 stl 中最先出現(xiàn) instr(4,ch,”a”)6的位置,n 的缺省值為 1,若沒有找 instr(ch,”r”) 0 到 5t2,則函數(shù)的返回值為 0string(n,st)得到由 n 個給定字符 st 組成的一個 string(6,#) 字符串“#”space(n)得到 n 個空格“a”space(3)”b” ”a b”表 38 轉(zhuǎn)換函數(shù)函數(shù)名示例str(x)功能表 達 式將數(shù)值數(shù)據(jù)
25、x 轉(zhuǎn)換成字符串(含符號位) str(1024) 將 x 轉(zhuǎn)換成字符串型,若 x 為數(shù)值型,結(jié)果“1024”cstr(x)則轉(zhuǎn)為數(shù)字字符串 ( 對于正數(shù)符號位不cstr(1024)“1024”予保留)val(x)chr(x)asc(x)cint(x)fix(x)int(x)將字符串 x 中的數(shù)字轉(zhuǎn)換成數(shù)值 返回以 x 為 ascii 代碼值的字符 給出字符 x 的 a5c1i 代碼值(十進制數(shù)) 將數(shù)值型數(shù)據(jù) x 的小數(shù)部分四舍五入取 整將數(shù)值型數(shù)據(jù) x 的小數(shù)部分舍去 取小于等于 x 的最大整數(shù)val(“1024”)chr(65)asc(“a”)cint(16.8)cint(-16.8)fi
26、x(-16.8)int(16.8)int(-16.8)1024”a”6517-17-1616-17表 39 日期函數(shù)函數(shù)名功能date $time $nowyear(xmonth(x)day(x)返回系統(tǒng)當(dāng)前的日期返回系統(tǒng)當(dāng)前的時間返回系統(tǒng)當(dāng)前的日期和時間返回一個表示 x 的年號的整數(shù),x 為一有效的日期變量、常量或字符表 達式返回一個表示 x 的月份的整數(shù)x 為一有效的日期變量、常量或字符表 達式返回 131 之間的整型數(shù)x 為一有效的日期變量、常量或字符表達式 返回 x 是星期幾,x 為一有效的日期變量、常量或字符表達式,c 是用于weekday(x,c) 指定星期幾為一個星期第一天的常數(shù)
27、,缺省時表示一周的星期天為第一天表 3-10 其他常用函數(shù)函數(shù)名格式和功能格式inputbox(prompt,title ,default ,xpos ,ypos ,helpfile,context)inputbox在一對話框中顯示提示。等待用戶輸入正文或按下按鈕,msgboxformatisnumericloadpicturergb7賦值語句功能格式功能格式功能格式功能格式功能格式功能并返回包含文本框內(nèi)容的字符串msgbox(prompt,buttons ,title ,helpfile,context ) 在對話框中顯示消息,等待用戶單擊按鈕,并返回一個整數(shù) 告訴用戶單擊哪一按鈕forma
28、t(expression , format , fristdayofweek , firstweekofyear)返回 variant(sting),根據(jù)格式表達式 format 中的指令來格式 化isnumeric(expression)返回 boolean 值指出表達式的運算結(jié)果是否為數(shù)字。如果 為數(shù)字,則 isnumeric 返回 true;否則返回 false:若是日期 表達式,則 isnumeric 返回 falseloadpicture(filename,size 2,colordepth,x,y)將圖形載入到窗體、picnrebox 控件或 image 控件的 picture 屬
29、性rgb(red,green,blue)返回一個 long 整數(shù),用來表示一個 rgb 顏色值賦值語句的作用就是在程序中改變對象的屬性或變量的值,如果一個賦值語句左邊變量的 類型與右邊表達式的類型不同,系統(tǒng)將視具體情況作出如下處理,如表 312 所示,表中出 現(xiàn)的變量定義為:x as integer,y as double,st as string,flag as boolean .表 312 不同類型的數(shù)據(jù)處理右邊表達左邊變式類型量類型系 統(tǒng) 處 理示例數(shù)值型字符型數(shù)值型字符型邏輯型數(shù)值型邏輯型先求出表達式的值,再將其轉(zhuǎn)換為相應(yīng)數(shù)值類型后賦值 y256:xy,結(jié)果:x3 先求出表達式的值,再
30、將其轉(zhuǎn)換 x 100 : y 3.5 : st x 十 y , 結(jié)果:”103.5”為字符型后賦值x 100 : y 3 5 : st x y , 結(jié) 果:”1003.5”若為非 0 值,返回 true;若為 0x100:flagx,結(jié)果:true值,返回 false由數(shù)字構(gòu)成的字符串可以轉(zhuǎn)換 x”12”+34,結(jié)果:x1234 為數(shù)值,否則將出現(xiàn)“類型不匹 x12 十34,結(jié)果:x46配”錯誤信息st”12+34”:xst,結(jié)果:出錯信 息true”轉(zhuǎn)換為 true,”false”轉(zhuǎn)換為st”rdse”:flagst,結(jié)果:falsefalse,數(shù)字串轉(zhuǎn)換為數(shù)值型再轉(zhuǎn) 5t”1234”:fl
31、agst,結(jié)果:true邏輯型換為邏輯型,否則將出現(xiàn)“類型 st”12+ 34 ”:flagst,結(jié)果:出 不匹配”錯誤信息 錯信息其他類型 false 轉(zhuǎn)換為 0,true 轉(zhuǎn)換為-1 st”123”: f1agtruexflag 十 st,結(jié)果:x122第 4 章算法基礎(chǔ)及 visual basic 的基本語句知識點概括1。算法算法是解決某個問題或者處理某件事情的方法和步驟。在程序設(shè)計中,算法專指用計 算機解決某一個問題的方法和步驟。2算法分類算法分數(shù)值計算算法和非數(shù)值計算算法。3評價算法的依據(jù)評價算法的優(yōu)劣主要是看算法的正確性、運行的效率以及占用系統(tǒng)資源的多少。 4算法的特征算法具有確定
32、性、可行性、有窮性、輸入性以及輸出性特征。5算法設(shè)計可以采用“逐步求精”來進行算法設(shè)計并逐步將程序編寫完善。所謂“逐步求精”,是 指對一個復(fù)雜問題,不是一步就編成一個可執(zhí)行的程序,而是分步進行。所謂“抽象程序”,是指程序所描述的解決問題的處理規(guī)則,是由那些“做什么”操作 組成的,而不涉及這些操作“怎樣做”以及解決問題的對象具有什么結(jié)構(gòu),不涉及構(gòu)造的每 個局部細節(jié)。逐步求精方法有多種具體做法。例如,流程圖方法、基于過程或函數(shù)的方法。程序設(shè)計的最抽象的三大步驟為:(1) 數(shù)據(jù)輸入;(2) 數(shù)據(jù)處理;(3) 數(shù)據(jù)輸出。在針對具體問題的時候,對這幾步進行細化,根據(jù)問題選擇使用什么樣的控制結(jié)構(gòu)。當(dāng) 然在
33、具體的問題中,有時候這三大步不能很清晰地區(qū)分清楚,可能會出現(xiàn)交叉處理的現(xiàn)象, 這時候就需要根據(jù)具體問題來作具體處理了。6基本算法結(jié)構(gòu)(1)順序結(jié)構(gòu)。系統(tǒng)在執(zhí)行程序時,按順序處理每條語句。7、exit 語句程序執(zhí)行到 exit 語句時,就會直接退出相關(guān)的結(jié)構(gòu),轉(zhuǎn)而去執(zhí)行該結(jié)構(gòu)后的下一條語句。 常見的形式是與 if 語句結(jié)合使用,格式如下:if e then exit 語句格式exit doexit for相關(guān)結(jié)構(gòu) do-loop 循環(huán)結(jié)構(gòu) for-next 循環(huán)結(jié)構(gòu)說明跳出循環(huán)結(jié)構(gòu),轉(zhuǎn)而去執(zhí)行循 環(huán)之后的下一行語句exit sub sub 過程 exit function function 過程
34、跳出過程,轉(zhuǎn)而去執(zhí)行調(diào)用語 句之后的下一行語句8、循環(huán)嵌套如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則成為多重循環(huán)或循環(huán)嵌套。嵌套的層數(shù)可 以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。對于循環(huán)的嵌套,要注 意以下事項:(1) 內(nèi)循環(huán)控制變量與外循環(huán)控制變量不能同名;(2) 外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;(3) 不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán),反之則可。9.for 循環(huán)與 do 循環(huán)的差別for 循環(huán)中循環(huán)控制變量的值的改變已經(jīng)包含在語句結(jié)構(gòu)中,使用簡單方便;do 循環(huán)本身并補包含循環(huán)控制變量的值的改變,所以必須另外添加語句(如 i=i+1)對循 環(huán)控
35、制變量進行控制。練習(xí):1 執(zhí)行下面程序,當(dāng)單擊窗體時,變量 sum 和 i 的值分別是多少?private sub form_click()dim i as integer, sum as integerx=8.5for i = 0.5 to x step 2.5sum = sum + i * 10next iprint sumprint iend subl 注意 step 為負值的情形l 若循環(huán)體內(nèi)有 i=i+1.5 的語句,則?l 若循環(huán)體內(nèi)有 x=x+1.5 的語句,則?key:200 10120 12200 102.素數(shù)問題for i=2 to x-1if x mod i=0 then
36、 exit fornext iif i=x then print “是素數(shù)”*for 循環(huán)的兩個結(jié)束條件是判斷素數(shù)的依據(jù)第 5 章 數(shù)組一、命名1、 必須符合標(biāo)識符命名規(guī)則2、 在作用域內(nèi)不能與變量名、過程名、函數(shù)名相同 3、 數(shù)組名代表整個數(shù)組二、定義1、 數(shù)組是一組具有相同類型變量的有序集合。2、 數(shù)組中的變量使用一段連續(xù)的存儲單元。3、 數(shù)組分固定大小數(shù)組、動態(tài)數(shù)組和控件數(shù)組。 4、 數(shù)組的定義形式見下表。數(shù) 組固格說明定大小數(shù)組動態(tài)數(shù)組控件數(shù)組式注意事項格式注意事項方法注意事項public|private|static|dim 數(shù)組名(維界定義)as數(shù)據(jù)類型1、 public 只能在標(biāo)
37、準(zhǔn)模塊中定義公用(全局)數(shù)組private 用于模塊中,定義模塊級數(shù)組dim 用于模塊中,定義模塊級數(shù)組用于過程中,定義過程級數(shù)組static 用于過程中,定義靜態(tài)數(shù)組2、 數(shù)組的默認下界是 03、 維的上、下界說明必須是常數(shù)表達式,不可以是變量名或含變量的表達式,即使變量的 值已給出也不可以4、 上、下界必須是整數(shù),若不是整數(shù),vb 自動四舍五入取整5、 數(shù)組必須先定義后使用(1)定義時不指明大小的數(shù)組,語法格式如下:publicprivate | static|dim 數(shù)組名()as數(shù)據(jù)類型(2)在確定了數(shù)組所需的大小后,使用 redim 語句來動態(tài)地定義數(shù)組的大小,分配存儲空間,語法格式
38、如下:redimpreserve數(shù)組名(維界定義)1、 redim 語句是一個可執(zhí)行語句,只能出現(xiàn)在過程中。2、 重新定義動態(tài)數(shù)組時,不能改變數(shù)組的數(shù)據(jù)類型。3、 可以使用變量說明動態(tài)數(shù)組新的大小4、 如果用 redim 定義的數(shù)組不存在,則系統(tǒng)會先創(chuàng)建一個動態(tài)數(shù)組,再給定大小。5、 若原數(shù)組有值,用 redim 后,全部丟失;若要保留,用 preserve。用了 preserve 后,只能改變最后一維的維上界(1) 創(chuàng)建同名控件(1) 復(fù)制現(xiàn)存控件1、 同一控件數(shù)組內(nèi)的控件類型是相同的2、 控件數(shù)組中所有的控件名稱相同;3、 控件數(shù)組中所有的控件所對應(yīng)的事件過程是相同的;4、 控件數(shù)組中每個
39、控件的 index 屬性用于區(qū)別數(shù)組的其他控件三、數(shù)組結(jié)構(gòu)2 維數(shù)組:按列存放3 維數(shù)組:按頁、列、行存放四、基本操作1、 賦值與輸出2、 數(shù)組元素的引用五、 數(shù)組函數(shù)及數(shù)組語句表 52 給出了與數(shù)組相關(guān)的函數(shù)和語句的說明第 6 章程序調(diào)試知識點概括1vb 的工作狀態(tài)vb 有三種工作狀態(tài),如表 61 所示,在窗口的標(biāo)題欄上將顯示當(dāng)前的工作狀態(tài)表 6-1 vb 的工作狀態(tài)工作狀態(tài)說明切換狀態(tài)的方法設(shè)計態(tài)運行態(tài)中斷態(tài)在設(shè)計態(tài)時,可以設(shè)計程序的交互界面 單擊“運行”菜單中的“啟動”菜單項 和編寫相關(guān)的代碼單擊標(biāo)渡工具欄中的,按鈕程序正在運行的時期,此狀態(tài)下可查看 單擊“運行”菜單中的“結(jié)束”菜單項
40、代碼但不能改動程序代碼單擊標(biāo)準(zhǔn)工具欄中的按鈕運行時因發(fā)生運行錯誤而暫停程序的執(zhí)行 運行態(tài)下按ctrl+break組合鍵或單擊“運程序在運行的中途被暫停執(zhí)行的狀態(tài)。 行”菜單中的“中斷”菜單項在中斷模式下,可以修改程序代碼,檢程序執(zhí)行到斷點所在的代碼行查、調(diào)試、重置、單步執(zhí)行或繼續(xù)執(zhí)行按逐語句或逐過程執(zhí)行時,每執(zhí)行完一個語程序2錯誤類型句或一個過程后切換到設(shè)計態(tài):單擊標(biāo)準(zhǔn)工具欄中的按鈕 切換到運行態(tài):單擊標(biāo)準(zhǔn)工具欄中的,按鈕在 vb 程序設(shè)計中所產(chǎn)生的錯誤類型有三種,如表 62 所示。表 62 錯誤類型錯誤類型說明常見的錯誤違反 vb 語言有關(guān)語句使用形式或使用規(guī) 關(guān)鍵字拼寫錯誤語法錯誤則而產(chǎn)生
41、的錯誤 標(biāo)點符號錯誤3 語句不完整4 對象名稱或?qū)傩悦?、方法名、系統(tǒng)函數(shù)試圖執(zhí)行一個不可執(zhí)行的操作而引起的名拼寫錯誤運行錯誤錯誤 在通用聲明處使用了 0ption explicit 語句,相關(guān)變量未定義或變量名拼寫錯誤 if 沒有對應(yīng)的 end if 語句編寫的程序代碼不能實現(xiàn)預(yù)定的處理功能 for 循環(huán)沒有對應(yīng)的 next 語句邏輯錯誤要求而產(chǎn)生的錯誤 do 循環(huán)沒有對應(yīng)的 loop 語句3程序調(diào)試程序調(diào)試的目的就是找出發(fā)生錯誤的地方,確定導(dǎo)致錯誤結(jié)果的原因,并修改程序直到 正確為止。調(diào)試的技巧并不神秘,每次的調(diào)試工作也無章可循。程序調(diào)試常用的手段就是在程序運行中對各段代碼運行后的結(jié)果進行檢
42、查,以確認錯 誤發(fā)生的位置,因此,我們可以通過控制程序的運行來逐步進行觀察。vb 提供的程序調(diào)試工具及其相關(guān)說明如表 63 所示。表 63 程序調(diào)試工具調(diào)試工具說明操 作 方 式逐語句逐過程一次執(zhí)行一個語句,每執(zhí)行一個語句就進入 按f8鍵中斷模式單擊調(diào)試工具欄中的按鈕一次執(zhí)行一個語句 c 當(dāng)遇到過程調(diào)用語句 按shift+f8鍵時,不對過程中的語句逐句執(zhí)行,而是一次性格過程執(zhí)行完畢 單擊調(diào)試工具欄中的按鈕 當(dāng)前執(zhí)行點在過程中,若要跳出過程,則一 按ctrl+shift+f8組合鍵從過程中跳出 次性執(zhí)行完過程中未執(zhí)行的代碼段后,使程序的執(zhí)行點轉(zhuǎn)到調(diào)用過程語句的下一句 單擊調(diào)試工具欄中的按鈕在代碼
43、行左端豎欄中單擊鼠標(biāo)程序代碼中做了標(biāo)記的位置,程序在執(zhí)行設(shè)置斷點按f8鍵單擊“調(diào)試”菜單中的“切換斷點” 菜單項斷點單擊調(diào)試工具欄中的按鈕到斷點所在處將由運行態(tài)轉(zhuǎn)換到中斷態(tài)清除斷點1 按ctrl+shift+f9組合鍵2 單擊“調(diào)試”菜單中的“清除所有 斷點”菜單項4程序調(diào)試窗口(1)本地窗口。用于自動顯示出所有當(dāng)前過程中聲明的變量及其值。(2)監(jiān)視窗口。用于查看指定表達式的值。(3)立即窗口。當(dāng)調(diào)試一個應(yīng)用程序時,可以用“立即”窗口執(zhí)行單個的過程、對表達式求值、為變量 或?qū)傩再x予新的值,并可以通過在“立即”窗口中顯示表達式的值來計算表達式。使用 print 語句,可在“立即”窗口中顯示表達式
44、的值。如果在程序執(zhí)行時希望把值顯 示到“立即”窗口中,可以使用如下格式的 print 語句:debug.print p1sp2s或?p1sp2s第 7 章 過程知識點概括1過程的定義程序的基本單位是過程,vb 中常用的過程分為子程序 (sub)過程和函數(shù)(function)過程, sub 過程沒有返回值,而 function 過程有返回值,定義過程的語法規(guī)則如表 71 所示。表 7-1 過程的定義(a)sub 過程的定義事件過程窗體事件過程private sub form_事件名(參數(shù)列表) 局部變量和常量聲明語句塊控件事件過程private sub 控件名_事件名(參數(shù)列表) 局部變量和常量
45、聲明語句塊通用過程end sub end sub pivate|publicstaticsub 過程名(參數(shù)列表)局部變量和常量聲明語句塊exit subend subb)function 過程的定義private |publicstaticfunction 函數(shù)名(參數(shù)列表)as 數(shù)據(jù)類型 局部變量和常量聲明定義形式語句塊函數(shù)名表達式 exit function語句塊函數(shù)名表達式 end function2過程的調(diào)用調(diào)用過程可以通過以下兩種方式進行,如表 72表 72 過程的調(diào)用sub 過程function 過程方法一方法二call(實參表)實參 1,實參 2,(實參表) (實參表)3形參和
46、實參形參給出傳遞到過程(函數(shù))中的值在過程(函數(shù))中的表現(xiàn)形式,實參是在調(diào)用 sub 或function 過程時,傳送給相應(yīng)過程的形參的形式,具體區(qū)別如表 73 所示。 表 73 形參與實參形參實參定義 sub 或 function 時,出現(xiàn)在形參表中的變量 在調(diào)用 sub 或 function 過程時,傳送給相概念格式名、數(shù)組名byval|byref變量名( )as 數(shù)據(jù)類型:應(yīng)過程的變量名、數(shù)組名、常數(shù)或表達式4參數(shù)的傳遞調(diào)用過程時,采用“形實結(jié)合”的方式傳遞參數(shù),參數(shù)的傳遞有兩種方式:按值傳遞和按 地址傳遞。在傳遞參數(shù)時要求“形實對應(yīng)”,即要求形參和實參數(shù)據(jù)類型相互兼容,其特點 如表 7
47、4 所示。表 74 參數(shù)傳遞的特點按值傳遞形參前加關(guān)鍵字“byval”按地址傳遞形參前加關(guān)鍵字“byref,或省略關(guān)鍵字特點數(shù)組參過程調(diào)用時,vb 給按值傳遞的形參分配一 形參和實參共用內(nèi)存的同一“地址” 個臨時存儲單元按值傳遞參數(shù),傳遞的只是實參變量的副本 若實參是變量、數(shù)組元素或數(shù)組,則形參和實參類型必須一致,否則會出錯過程中改變形參值,將同時改變形參和實參過程中改變形參值,只影響副本中的值若實參為一個常量或者表達式,vb 將按傳 值方式處理若實參是與形參類型不一致的常數(shù)或表達 式,vb 會按要求進行數(shù)據(jù)轉(zhuǎn)換,再將轉(zhuǎn)換后 的值傳遞給形參對于簡單變量 m,加括號即(m)則變?yōu)楸磉_ 式,vb 將按傳值方式處理形參數(shù)組只能是按地址傳遞的參數(shù)(即數(shù)組前不能用“byval”,且數(shù)組名后只能是一對空 括號),對應(yīng)實參也必須是數(shù)組,且數(shù)據(jù)類型必須一致調(diào)用過程時把要傳遞的數(shù)組名放在實參列表中即可,數(shù)組名后可不跟括號數(shù)過程中不可以對形參數(shù)組再進行聲明,但在使用動態(tài)數(shù)組時,可以用 redim 語句改變形參 數(shù)組的維界,重新定義數(shù)組的大小5遞歸過程遞歸過程是在過程定義中直接或間接調(diào)用自身來完成某一特
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年殺蟲殺螨混劑合作協(xié)議書
- 2025年消霧塔合作協(xié)議書
- 2025年谷物生產(chǎn)合作協(xié)議書
- 2025年平板型太陽熱水器合作協(xié)議書
- 2025年企業(yè)合同信用管理工作個人總結(jié)(三篇)
- 2025年個人項目投資合同(2篇)
- 2025年五年級下冊班主任工作總結(jié)(二篇)
- 2025年五年級語文上教學(xué)工作總結(jié)(二篇)
- 2025年五金建材購銷合同參考樣本(五篇)
- 2025年二手房購買協(xié)議標(biāo)準(zhǔn)版本(三篇)
- 2025年度文化演藝代理合作協(xié)議書4篇
- 輸變電工程監(jiān)督檢查標(biāo)準(zhǔn)化清單-質(zhì)監(jiān)站檢查
- 2024-2025學(xué)年北京海淀區(qū)高二(上)期末生物試卷(含答案)
- 領(lǐng)導(dǎo)學(xué) 課件全套 孫健 第1-9章 領(lǐng)導(dǎo)要素- 領(lǐng)導(dǎo)力開發(fā)
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測試網(wǎng)課答案
- 公共組織學(xué)(第三版)課件:公共組織結(jié)構(gòu)
- 2024年山東省濟寧市中考化學(xué)試卷(附答案)
- 人教版八年級上冊地理2024-2025學(xué)年八年級上冊地理第一章 從世界看中國 測試卷(一)(含答案)
- 《煤礦安全培訓(xùn)知識》課件
- 2024年中國工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場前景、投資方向分析報告(智研咨詢發(fā)布)
- 2024化工園區(qū)危險品運輸車輛停車場建設(shè)規(guī)范
評論
0/150
提交評論