




已閱讀5頁,還剩38頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章VisualBasic語言基礎,4.1VB程序代碼的組織方式,VB應用程序,.,4.1.1過程,為簡化程序設計,將程序分割成較小的邏輯部件,稱這些部件為過程。根據執行的方式,可把“過程”分為“事件過程”和“通用過程”。,1.事件過程,2.通用過程,一個應用程序中多個窗體可以共享的或一個窗體內不同的事件過程可共享的程序代碼,稱為“通用過程”。,為窗體及窗體上的各種對象編寫的,用來響應由用戶或系統引發的各種事件的程序代碼,稱為“事件過程”。,事件過程由VB中的事件調用。,如:如果希望在單擊一個名為CmdStart的命令按鈕后,會調用事件過程,則要使用CmdStart_Click過程。,通用過程是由事件過程或其它通用過程調用而執行的。,VB為將不同類型過程代碼組織到一起而提供的一種結構。(VB的代碼存儲在模塊中),4.1.2模塊,1.窗體模塊(文件擴展名為.FRM),2.標準模塊(文件擴展名為.BAS),3.類模塊,包含用于處理發生在窗體中的各個對象的事件過程,窗體及窗體中各個控件對象的屬性設置及相關的說明。,類模塊包含用于創建新的對象類的屬性、方法的定義。,VB應用程序中的每個窗體都有一個相對應的窗體模塊。,標準模塊中的過程都是通用過程。,包含可被多個窗體所共享的代碼。,4.2VB程序的書寫規則,1.語句:是構成VB程序的最基本成分,將長語句分成多行:在行的末尾用續行符(-)將長語句分成多行。將多個語句合并到同一行上:在一個代碼行上寫入多個語句,在語句中用冒號“:”分隔。,2.書寫規范,3.程序注釋,用來說明程序中某些語句的功能和作用,增加程序的可讀性,在VB中用“”和Rem來標識。,語句輸入時,可不區分大小寫。,VB程序中注釋過的語句會自動變為綠色。,4.3VB數據類型,3.3.1數據類型,VB提供了11種基本的數據類型。變體型數是VB的缺省數據類型,不論是常量或變量,如果不加說明,系統均按變體型數據處理。,4.3.2常量,1.數值常量一般的數值常量由正負號、數字和小數點組成。,2.字符常量把一串字符用引號括起來,就構成一個字符常量。,P43.表4-1,在程序中取值始終保持不變的數據,4.日期常量,日期型常量的一般表示形式:mm/dd/yyyy。,如2001年9月20日可表示為:#9/20/2001#,5.符號常量:以符號形式表示的常量。,自定義符號常量形式:Public|PrivateConstAsType=,如:ConstPi=3.1415926,3.邏輯型常量,邏輯型(布爾型)常量只有兩個取值:True、False。,4.3.3變量,變量名的命名規則:a.必須以字母開頭;b.長度小于等于255個字符;c.在作用域內必須唯一;d.作為變量名的字符串內不能包括點號和用于類型說明的字符%、&、!、#、$。.,1.變量名及類型說明,為了增加程序的可讀性,可在變量前加一個縮寫的前綴來表明該變量的數據類型。,P46.表4-2,以符號形式出現在程序中,且取值可以發生變化的數據,2.變量作用域及變量說明語句,變量的作用域:分為局部變量、窗體/模塊級變量、全局變量。局部變量在過程內用dim(static)定義,只在本過程內有效。窗體/模塊級變量在過程外用dim或private,在本窗體/模塊內所有過程都有效。全局變量在標準模塊的過程外用Public,在整個應用程序中有效。,變量說明語句(1).在變量前用關鍵字Dim、Static、Private、Public聲明變量。例如:Dimas,例子程序1,(2).在變量名后面加上類型說明的后綴(隱式說明).,符號數據類型舉例$StringstrName$%IntegerITerm%,var%&LongcolorValue&!Singledistance!#DoubleExactDistance#,CurrencycSalaries,OptionExplicit語句在模塊中使用OptionExplicit語句,系統將檢查模塊中所有未加顯式說明的變量。,4.4運算符和表達式,VB中的運算符和表達式可分為算術運算符與算術表達式、關系運算符和關系表達式、邏輯運算符和邏輯表達式。,4.4.1算術運算符與算術表達式,1.算術運算符+、-、*、/、mod、&,103=10/4=114=(-5)3=10mod3=10mod5=Hello&”World”=,3,1,0,2,2.5,-125,HelloWorld,2.算術表達式把常量、變量等運算元素用算術運算符連接起來的式子稱為“算術表達式”。可以使用圓括號來改變運算次序。,算術運算符的運算次序為:、-(負號)、*、/、mod、+、-、&,4.4.2關系運算符與關系表達式,關系運算用于對兩個數據進行比較,比較結果為邏輯值“True”或“False”。,1.關系運算符、=、=、Is,2.關系表達式用關系運算符把兩個比較對象連接起來的式子。,3.關系表達式的運算,求下列表達式的值:14/233,False,True,4.4.3邏輯運算符與邏輯表達式,邏輯運算是對邏輯值進行的運算。,1.邏輯運算符Not、And、Or、Xor,Not運算,False,True,And運算,True,False,False,False,Or運算,True,True,True,False,Xor運算,False,True,True,False,邏輯運算符的優先次序為:NotAndOrXor,2.邏輯表達式用邏輯運算符把邏輯變量連接起來的句子。,4.4.4各種運算符間的優先順序,算術運算符關系運算符邏輯運算符,dima,b,ca=8:b=10:c=6Not(a-1b)ab+3AndbcabOrbc,False,True,True,4.6VB公共函數,公共函數(內部函數)是由系統提供的,可在任何一個VB程序中隨時使用的程序段。每個程序段用于進行某個特定的運算或處理。每個函數都有系統規定的函數名。,使用函數稱為函數調用。函數調用形式如下:,(p1,p2,),P1,p2是調用函數時的自變量序列,自變量個數、排列次序和數據類型,應和函數規定的參數相同。,P52.表4-6、表4-7、表4-8、表4-9,4.6.1算術函數4.6.2字符函數4.6.3轉換函數4.6.4日期與時間函數,Left(x,n)從x字符串左邊起取n個字符。,DimAnyString,MyStrAnyString=HelloWorld定義字符串。MyStr=Left(AnyString,1)返回H。MyStr=Left(AnyString,7)返回HelloW。MyStr=Left(AnyString,20)返回HelloWorld。,Mid(x,n1,n2)從x字符串左邊第n1個位置起向右取n2個字符。,Dimy,y1,y2,y3y=MidFunctionDemo建立一個字符串。y1=Mid(y,1,3)返回Mid。y2=Mid(y,14,4)返回Demo。y3=Mid(y,5)返回FuncionDemo。,Ltrim(x)去掉x左邊的空格。Rtrim(x)去掉x右邊的空格。Trim(x)去掉x兩邊的空格。,Dimy,TrimStringy=TestDemo設置字符串初值。TrimString=LTrim(y)TrimString=TestDemo。TrimString=RTrim(y)TrimString=TestDemo。TrimString=LTrim(RTrim(y)TrimString=TestDemo。只使用Trim函數也同樣將兩頭空格去除。TrimString=Trim(y)TrimString=”TestDemo。,Chr(x)返回以x為ASCII代碼值的字符。ASC(x)給出字符x的ASCII代碼值(十進制數)。,DimMyCharMyChar=Chr(65)返回A。MyChar=Chr(97)返回a。MyChar=Chr(62)返回。MyNumber=Asc(A)返回65。MyNumber=Asc(a)返回97。,CInt(x):將數值型數據X的小數部分四舍五入取整。Int(x):取小于等于X的最大整數。Fix(x):將數值型數據X的小數部分舍去。,Dimyy=CInt(4.5)y=CInt(4.6)y=Int(4.5)y=Fix(4.5)y=CInt(-4.5)y=Int(-4.5)y=Fix(-4.5),4,5,4,4,-4,-5,-4,計算下列代數式所對應的VB表達式:(1)(2)(3),(12*X+5*Y-Sqr(Abs(d3-m3)/(Exp(-X)*Sin(X),X2*EXP(X)/COS(ABS(X+Y),Sqr(X+Y)/Log(X)-ABS(X)+EXP(X+Y),Date:返回系統日期。,4.6.5格式化函數Format$,(0)數字占位符。顯示一位數字或是零。如果表達式在格式字符串中0的位置上有一位數字存在,那么就顯示出來;否則,就以零顯示。,Format函數設置文本的輸出格式。語法Format(expression,format),MyStr=Format(5459.4,”00000.00“)返回”05459.40。MyStr=Format(5459.4,“#.#”)返回“5459.4”。MyStr=Format(5459.56,“#.#”)返回“5459.6”。MyStr=Format(5459.4,#,#0.00)返回5,459.40。MyStr=Format(334.9,#0.00)返回334.90。MyStr=Format(5,0.00%)返回500.00%。,(#)數字占位符。顯示一位數字或什么都不顯示。如果表達式在格式字符串中“#”的位置上有數字存在,那么就顯示出來;否則,該位置就什么都不顯示。,(.)小數點占位符。用來決定在小數點左右可顯示多少位數。,(%)百分比符號占位符。表達式乘以100。而百分比字符(%)會插入到格式字符串中出現的位置上。,(,)千分位符號占位符。千位符號主要是把數值小數點左邊超過四位數以上分出千位。,賦值語句,賦值語句的一般形式是:Var=,Var可以是變量名或屬性名。,如:x=“NanJing”Label1.caption=“工作單位:”,使用賦值語句還可獲取對象返回的當前屬性值:Var=Object.Property,如:x=text1.text,4.7賦值語句及InputBox、MsgBox函數,不同數據類型數據的賦值:P51,4.7.1InputBox函數,InputBox函數用來接受用戶通過鍵盤輸入的數據。它的使用形式是:,V=InputBox(prompt,title,default,xpos,ypos,helpfile,context),Prompt必需的。作為對話框消息出現的字符串表達式。,Title可選的。顯示對話框標題欄中的字符串表達式。,Default可選的。顯示文本框中的字符串表達式,在沒有其它輸入時作為缺省值。如果省略default,則文本框為空。,X、y可選的。成對出現,指定對話框在屏幕上顯示時的位置。,V可以是變體變量或字符串型變量、數值型變量。,Helpfiel、Context幫助文件名及幫助主題號。,InputBox函數示例,InputBox例,4.7.2MsgBox函數,MsgBox函數用來向用戶發布提示消息,并要求用戶作出必要的響應。它的使用形式是:,MsgBox(prompt,buttons,title,helpfile,context),Prompt必需的。字符串表達式,作為顯示在對話框中的消息。,Buttons可選的。由4個數值常量組成的式子,指定顯示按鈕的數目及形式,使用的圖標樣式,缺省按鈕是什么以及消息框的強制回應等。如果省略,則buttons的缺省值為0。,Title可選的。在對話框標題欄中顯示的字符串表達式。,MsgBox例,5.1分支結構與分支結構語句,1.If-Then-Else-EndIf結構語句,此結構語句的一般形式是:,IfeThenA組語句ElseB組語句EndIf,A,B,True,False,此種算法結構,還有多種變形:,P63.例5-1,第五章選擇分支與循環,IfeThenA組語句EndIf,A,True,False,當A組語句僅有一個時,上圖結構還可簡化為:,IfeThenA語句,A1,True,False,Ife1ThenA1組語句ElseIfe2ThenA2組語句.EndIf,A2,A3,.,True,True,False,False,例.5-2,SelectCaseeCasec1A組語句Casec2B組語句.CaseElsen組語句EndSelect,5.1.2Select-Case-EndSelect結構語句,此結構語句提供了實現多分支結構的另一種方法,它的一般形式是:,e為測試表達式,可以是算術表達式或字符表達式。,c1、c2是測試項:可?。?、具體數值。2、連續的數據范圍3、滿足某個判決條件,執行方式:先求測試表達式e的值,接著逐個檢查每個Case語句的測試項,如果測試表達式e的值滿足某個測試項,系統就執行該Case語句下的那組語句;如果沒有一個測試項滿足要求,就執行CaseElse下的語句。如果有一個以上的測試項滿足要求,則只有第一個匹配后面的語句會被執行。,SelectCase例,5.2循環結構與循環結構語句,1.Do-Loop循環結構語句,Do-Loop循環結構語句有四種形式:,DoWhilee.ExitDo.Loop,Do.ExitDo.LoopWhilee,DoUntile.ExitDo.Loop,Do.ExitDo.LoopUntile,在Do語句和Loop語句之間的語句即為循環體語句。在循環體中,可以包括一條或多條ExitDo語句,如果程序執行到ExitDo語句時,就會直接退出循環,執行Loop語句的下一條語句。,Sum=0I=1DoWhileI100,上述兩直到型循環結構的區別:當第一次執行循環語句條件成立時,第一種不執行循環體,而第二種要執行一次。,A,True,False,P.67例5-3,5.2.2.For-Next循環結構語句,如果事先已知循環次數,則可使用For-Next循環結構語句,它的一般形式是:,Forv=e1Toe2Stepe3.ExitDo.Nextv,V=v+e3,True,False,計算e1,e2,e3,V=e1,循環體,V為循環控制變量,e1、e2、e3是控制循環的參數,e1為初值,e2為終值,e3為步長,fornext例1,例5-4,例5-5,5.2.3.循環嵌套,Do-Loop循環和For-Next循環都可以在大循環中套小循環.,.72九九乘法表,(1)外循環必須完全包含內循環,不能交叉內;(2)循環變量與外循環變量不能同名。,Rnd(x)產生一個在(0,1)區間均勻分布的隨機數。為了生成某個范圍內的隨機整數,可使用以下公式:Int(upperbound-lowerbound+1)*Rnd+lowerbound)這里,upperbound是隨機數范圍的上限,而lowerbound則是隨機數范圍的下限。,如:隨機生成一個兩位的整數,可用下式:Int(99-10+1)*Rnd+10)即Int(90*Rnd+10),.72例5-6,.77例5-9,.78例5-10,.80例5-11,例:已知x,y,z三個數,比較它們的大小并排列,使得xyz。,1.語法錯誤(SyntaxError):由于違反了語言有關語句形式或使用規則而產生的錯誤。如拼寫錯誤,關鍵字遺漏,標點不符等錯誤。VB5.0能自動發現,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游戲虛擬角色形象設計授權與衍生品開發協議
- 淘寶直播網紅孵化與內容制作合同
- 建筑工程質量追溯檢測設備租賃與服務保障協議
- 河道生態修復與景觀美化工程協議
- 拼多多果園農產品溯源與質量控制支持服務合同
- 《掌握營銷策略制勝之道:課件深度解析》
- 福祿貝爾人的教育
- 《幼苗成長與收獲》課件
- 自我意識的活動解析與應用
- 《灌木類園林植物》課件
- 紡織非遺:讓世界讀懂中國之美智慧樹知到期末考試答案章節答案2024年天津工業大學
- JCT 871-2023 鍍銀玻璃鏡 (正式版)
- 【“三全育人”在幼兒德育教育中的實踐探究3700字(論文)】
- 法醫精神病題庫
- 中國古代的聲學成就
- MOOC 英國小說-南京大學 中國大學慕課答案
- 房建監理投標文件技術部分
- 新廠規劃方案
- 門窗知識講解課件
- 室速的護理措施
- 鎮痛藥物在糖尿病足疼痛治療中的效果評估
評論
0/150
提交評論