版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual Basic 程序設(shè)計(jì)簡(jiǎn)明教程程序設(shè)計(jì)簡(jiǎn)明教程第一章 Visual Basic程序設(shè)計(jì)概述(1)第二章 VB簡(jiǎn)單的程序設(shè)計(jì)(3)第三章 VB語(yǔ)言基礎(chǔ)(2)第四章 基本的控制結(jié)構(gòu)(6)第五章 數(shù)組(4)第六章 過(guò)程(5)第七章 常用控件(4)第八章 界面設(shè)計(jì)(3)第九章 文件(2)第十章 圖形(3)第十一章 數(shù)據(jù)庫(kù)技術(shù)(1)第一章第一章 Visual Basic程序設(shè)計(jì)概述程序設(shè)計(jì)概述(1學(xué)時(shí))學(xué)時(shí))1.1 VB的發(fā)展 1.2 引例1.3 VB主要功能和特點(diǎn)1.4 VB集成開發(fā)環(huán)境1.1 VB的發(fā)展的發(fā)展 1.2 VB主要功能和主要功能和特點(diǎn)特點(diǎn)1. 具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具;2
2、. 事件驅(qū)動(dòng)的編程機(jī)制;3. 提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境;4. 結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言;5. 支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn);6. Active技術(shù);7. VB 6.0在開發(fā)環(huán)境上、網(wǎng)絡(luò)功能等的增強(qiáng);8. 完備的help聯(lián)機(jī)幫助功能。 例例 1.1 一行內(nèi)容在窗體左、右移動(dòng); 移動(dòng)兩種方法:手動(dòng)和自動(dòng),當(dāng)自動(dòng)時(shí),文字閃爍顯示; 當(dāng)內(nèi)容超出窗體,進(jìn)行反彈。 例例1.2 對(duì)輸入的字符進(jìn)行轉(zhuǎn)換的程序。 轉(zhuǎn)換規(guī)則: 大寫字母轉(zhuǎn)換成小寫字母, 小寫字母轉(zhuǎn)換成大寫字母 空格不轉(zhuǎn)換 其余轉(zhuǎn)換成“*”。要求:每輸入一個(gè)字符,馬上就進(jìn)行判斷和轉(zhuǎn)換。通過(guò)上述兩例說(shuō)明VB面向?qū)ο?、可視化、事件?qū)動(dòng)的特點(diǎn)。 1.3
3、 VB的啟動(dòng)與退出的啟動(dòng)與退出 1.4 VB集成開發(fā)環(huán)境集成開發(fā)環(huán)境工具箱工程窗口屬性窗口窗體布局立即窗口窗體窗口一、標(biāo)題欄一、標(biāo)題欄 顯示工作模式:設(shè)計(jì)模式、運(yùn)行模式、中斷模式。二、菜單欄二、菜單欄三、工具欄三、工具欄 1. 標(biāo)準(zhǔn)工具欄 2. 調(diào)試工具欄 3. 編輯工具欄 4. 窗體編輯器四、窗體(四、窗體(Form)Form)窗口窗口 相當(dāng)于容器,設(shè)計(jì)時(shí)可用來(lái)容納控件。默認(rèn)窗體名為: Form1Form1、 Form2Form2、 Form3Form3。 網(wǎng)格點(diǎn)用于標(biāo)尺,調(diào)整可選擇:工具 / 選項(xiàng) / 通用。五、工程資源管理器五、工程資源管理器 主要用來(lái)顯示應(yīng)用程序的所有文件。整個(gè)應(yīng)用程序
4、稱為工程,工程文件的擴(kuò)展名為 .VBP。六、屬性窗口六、屬性窗口 列出對(duì)象(窗體、控件)的各種屬性。 七、代碼窗口七、代碼窗口 輸入程序代碼和進(jìn)行程序修改調(diào)試的窗口。八、調(diào)試窗口八、調(diào)試窗口九、窗體布局九、窗體布局窗口窗口十、工具箱窗口十、工具箱窗口第二章第二章 簡(jiǎn)單的簡(jiǎn)單的VB程序設(shè)計(jì)程序設(shè)計(jì)(3學(xué)時(shí))學(xué)時(shí))2.12.1 對(duì)象的概念對(duì)象的概念2.2 2.2 建立簡(jiǎn)單的應(yīng)用程序建立簡(jiǎn)單的應(yīng)用程序2.3 2.3 基本控件和基本控件和窗體窗體2.4 2.4 工程的管理及環(huán)境的設(shè)置工程的管理及環(huán)境的設(shè)置2.5 2.5 生成可執(zhí)行文件和制作安裝盤生成可執(zhí)行文件和制作安裝盤 2.6 2.6 程序調(diào)試程序
5、調(diào)試 2.7 2.7 常見(jiàn)錯(cuò)誤常見(jiàn)錯(cuò)誤2.1 2.1 對(duì)象的概念對(duì)象的概念一、對(duì)象和類一、對(duì)象和類 對(duì)象對(duì)象:具體存在的某個(gè)事物,如:具體存在的某個(gè)事物,如太陽(yáng)太陽(yáng)、月亮月亮、一輛一輛汽車汽車、某棵大樹某棵大樹等。等。VBVB中,每一個(gè)中,每一個(gè)窗體、控件、菜窗體、控件、菜單項(xiàng)單項(xiàng)都是對(duì)象。都是對(duì)象。 類類: 是同種對(duì)象的集合與抽象。如:是同種對(duì)象的集合與抽象。如:汽車汽車是是 類,類,某輛具體的汽車是對(duì)象。對(duì)象繼承了類的屬性、方某輛具體的汽車是對(duì)象。對(duì)象繼承了類的屬性、方法。法。第二章第二章 簡(jiǎn)單的簡(jiǎn)單的VB程序設(shè)計(jì)程序設(shè)計(jì)二、對(duì)象的屬性、事件與方法二、對(duì)象的屬性、事件與方法 對(duì)象的屬性、事
6、件與方法稱為對(duì)象的三要素。對(duì)象的屬性、事件與方法稱為對(duì)象的三要素。1.1. 屬性屬性 用來(lái)描述和反映對(duì)象特征的參數(shù)。屬性是對(duì)象用來(lái)描述和反映對(duì)象特征的參數(shù)。屬性是對(duì)象 的靜態(tài)特征。的靜態(tài)特征。 設(shè)置對(duì)象屬性的兩種方法:設(shè)置對(duì)象屬性的兩種方法:(1 1)設(shè)計(jì)階段在屬性窗口設(shè)置對(duì)象屬性。)設(shè)計(jì)階段在屬性窗口設(shè)置對(duì)象屬性。(2 2)編寫程序代碼為對(duì)象屬性賦值)編寫程序代碼為對(duì)象屬性賦值 程序中設(shè)置屬性的一般格式為:程序中設(shè)置屬性的一般格式為: 對(duì)象名對(duì)象名. .屬性名稱屬性名稱 = = 屬性值屬性值 如:如: Private Sub Text1_Click()Private Sub Text1_Cl
7、ick() Text1.Text = “ Text1.Text = “對(duì)象屬性對(duì)象屬性” ” End SubEnd Sub 2. 2.事件事件 響應(yīng)對(duì)象的動(dòng)作稱為事件。也可以說(shuō),事件是對(duì)響應(yīng)對(duì)象的動(dòng)作稱為事件。也可以說(shuō),事件是對(duì)象上所發(fā)生的事情。象上所發(fā)生的事情。 如:如:?jiǎn)螕艨丶螕艨丶?、鼠?biāo)移動(dòng)鼠標(biāo)移動(dòng)、鍵盤按下鍵盤按下等。等。l 事件過(guò)程事件過(guò)程 指附在該對(duì)象上的用戶編寫的程序代碼指附在該對(duì)象上的用戶編寫的程序代碼, ,是事件是事件的處理程序。的處理程序。事件過(guò)程的一般格式:事件過(guò)程的一般格式: Private Sub Private Sub 對(duì)象名稱對(duì)象名稱_ _事件名稱事件名稱()(
8、) 事件響應(yīng)程序代碼事件響應(yīng)程序代碼 End SubEnd Subl 事件驅(qū)動(dòng)過(guò)程事件驅(qū)動(dòng)過(guò)程 是圖形用戶界面的本質(zhì),由用戶控制而代碼作出是圖形用戶界面的本質(zhì),由用戶控制而代碼作出響應(yīng)。響應(yīng)。 3. 3. 方法方法 VBVB提供了一種提供了一種特殊的過(guò)程和函數(shù)特殊的過(guò)程和函數(shù),稱為,稱為方法方法,可供用戶直接調(diào)用??晒┯脩糁苯诱{(diào)用。 方法反映對(duì)象的功能,即對(duì)象所能完成的動(dòng)方法反映對(duì)象的功能,即對(duì)象所能完成的動(dòng)作。作。 如窗體有如窗體有ClsCls(清除圖形清除圖形)、)、ShouShou(顯示顯示)、)、HideHide(隱藏隱藏)方法。)方法。 屬性是對(duì)象的屬性是對(duì)象的靜態(tài)特征靜態(tài)特征,而方
9、法是對(duì)象的,而方法是對(duì)象的動(dòng)動(dòng)態(tài)特征態(tài)特征。 2.2 2.2 建立簡(jiǎn)單的應(yīng)用程序建立簡(jiǎn)單的應(yīng)用程序以例例2.12.1為例:1. 建立用戶界面的對(duì)象;2. 對(duì)象屬性的設(shè)置;3. 對(duì)象事件過(guò)程及編程;4. 程序運(yùn)行和調(diào)試;5. 保存文件。2.3 2.3 基本控件和窗體基本控件和窗體一、一、VBVB的控件種類的控件種類 VBVB的控件種類有三種:的控件種類有三種: 1. 1. 內(nèi)部控件內(nèi)部控件 也稱標(biāo)準(zhǔn)控件,默認(rèn)工具箱中的控件都是內(nèi)部控也稱標(biāo)準(zhǔn)控件,默認(rèn)工具箱中的控件都是內(nèi)部控件,共件,共2020個(gè)。個(gè)。 2. 2. Active X Active X 控件控件 僅僅2020個(gè)標(biāo)準(zhǔn)控件顯然不夠,由個(gè)
10、標(biāo)準(zhǔn)控件顯然不夠,由VBVB及其它開發(fā)商又及其它開發(fā)商又編制了大量編制了大量Active X Active X 控件??丶?。 加入方法:選菜單加入方法:選菜單 “ “工程工程/ /部件部件” 3. 3. 可插入對(duì)象可插入對(duì)象 可將其它可將其它WindowsWindows應(yīng)用程序的文件插入到工具箱里。應(yīng)用程序的文件插入到工具箱里。二、常用屬性二、常用屬性 1. 1. NameName 名稱名稱 創(chuàng)建的對(duì)象名稱,有默認(rèn)的名。在程序中,控件名是作為對(duì)象的標(biāo)識(shí)而引用,不會(huì)顯示在窗體上。 2. 2. CaptionCaption 標(biāo)題標(biāo)題該屬性決定了控件上顯示的內(nèi)容。 3. 3. HeightHeigh
11、t、widthwidth、toptop 和和 leftleft L eft T o p H eigW id th 4. 4. EnabledEnabled 控件是否可操作。當(dāng)設(shè)置為false時(shí),禁止用戶進(jìn)行操作。5. 5. VisibleVisible 控件是否可見(jiàn)。當(dāng)設(shè)置為false時(shí),用戶看不到,但控件本身存在。6. 6. FontFont Fontname: 字體; Fontsize: 字體大??; Fontbold: 是否是粗體; Fontitalic: 是否斜體; Fontstrikethru:是否加一刪除線。 Fontunderline:是否帶下劃線。 例2.2 在窗體建立兩個(gè)命令按
12、鈕Command1和Command2, Command2的Font通過(guò)屬性窗口設(shè)置, 其余屬性通過(guò)代碼實(shí)現(xiàn)。7. 7. ForecolorForecolor 前景顏色前景顏色 設(shè)置控件的前景顏色(即正文顏色).。其值是一個(gè)十六進(jìn)制常數(shù),用戶可以在調(diào)色板中直接選擇所需顏色。8. 8. BackcolorBackcolor 背景顏色背景顏色9. 9. BackstyleBackstyle 背景風(fēng)格背景風(fēng)格 0-transparent:透明顯示,即控件背景顏色顯示不出來(lái)。10. 10. BorderStyleBorderStyle 邊框風(fēng)格邊框風(fēng)格 0-None:控件周圍沒(méi)有邊框 。 1-Fixed
13、 Single:控件帶有單邊框。11. 11. AlignmentAlignment 控件上正文水平對(duì)齊方式 (用于標(biāo)簽與文本框) 0:正文左對(duì)齊 ;1:右對(duì)齊;2:居中。12. 12. AutoSizeAutoSize 控件是否根據(jù)正文自動(dòng)調(diào)整大小。 13. 13. WordWrapWordWrap AutoSize 為 True 時(shí),WordWarp才有效。 按正文字體大小在垂直方向上改變顯示區(qū)域的大小。14. TabIndex 決定了按Tab鍵時(shí),焦點(diǎn)在各個(gè)控件移動(dòng)的順序。各個(gè)控件默認(rèn) TabIndex 值就是以控件建立時(shí) 的順序,第一個(gè)為0。15.15.控件默認(rèn)屬性控件默認(rèn)屬性 反映該
14、控件最重要的屬性,使用時(shí)可省略屬性名。 注意:Command 的默認(rèn)屬性為 Default,當(dāng)該屬性為True,當(dāng)按 Enter 鍵,該控件起作用。例2.3 控件設(shè)置 效果默認(rèn)控件名Name 標(biāo)題 Caption 有關(guān)屬性設(shè)置 Form1 顏色、對(duì)齊、鼠標(biāo)屬性例 MousePointer=99,MouseIcon=Key04.ico Label1 左對(duì)齊 Alignment=0, BorderStyle =1 Label2 居中 Alignment=1,BorderStyle =1 Label3 自動(dòng) AutoSize=True, WordWarp=False, BorderStyle =1
15、Label4 背景白 BackColor= &H00FFFFFF&, BorderStyle =0 Label5 前景紅 ForeColor= &H000000FF&, BorderStyle =0 標(biāo)題圖標(biāo)控制菜單框最小化按鈕最小化按鈕邊框樣式三三. .窗體窗體1.1.屬性屬性 Caption標(biāo)題、MaxButton、MinButton、Icon、ControlBox Picture、AutoRedraw、BorderStyle (0 1 2 3 4 5 ) WindowsState (0-正常、1-最小化、2-最大化)2.2.事件事件 Click、DblClick 和 Load、Unloa
16、d Load : 當(dāng)裝入窗體時(shí)激發(fā),通常用于對(duì)屬性和變量初始化。3.3.方法方法 Print、Cls和Move等 例2.4上述屬性、Click、DblClick和Load 事件演示。四、標(biāo)簽四、標(biāo)簽 Label 用于顯示文本(輸出)信息,不能作為輸入信息的界面。 例2.5顯示浮雕效果的文字,實(shí)現(xiàn)方法:字顏色、標(biāo)簽位置。五、文本框五、文本框 TextBoxTextBox 是一個(gè)文本編輯區(qū)域,可在該區(qū)域輸入、編輯和顯示正文內(nèi)容。 1.1.其他屬性其他屬性 Text:正文內(nèi)容; Maxlength:設(shè)置正文的最多字符個(gè)數(shù),0任意長(zhǎng)度值; MultiLine:是否為多行,默認(rèn)為一行,F(xiàn)alse; Sc
17、rollBars:MultiLine為True時(shí),該屬性才有效,表示滾動(dòng)條的形式 0-None、1-Horizontal、2-Vertical、3-Both; Locked:是否可被編輯屬性,F(xiàn)alse,表示為可編輯。 PassWord:口令字符; Text屬性返回輸入的數(shù)據(jù),屏幕顯示該字符; SelStart、SelLength、SelText:選中文本的起始、長(zhǎng)度、內(nèi)容。 例2.6 復(fù)制選中的文本2.2.常用事件常用事件 Change:當(dāng)改變文本框的Text屬性時(shí)會(huì)引發(fā)該事件。 KeyPress(KeyAscii As Integer):同上,并可返回一個(gè) KeyAscii參數(shù)。KeyAs
18、cii 為13,按回車鍵;為0 去除剛輸入的字符。 LostFocus:當(dāng)控件失去焦點(diǎn)時(shí)發(fā)生。 GotFocus:當(dāng)控件獲得焦點(diǎn)時(shí)發(fā)生。3.3.常用方法常用方法 對(duì)象. SetFocus:是把光標(biāo)移到指定的文本框?qū)ο笾小?.4.文本框的應(yīng)用文本框的應(yīng)用 數(shù)據(jù)過(guò)濾數(shù)據(jù)過(guò)濾 例2.7 要求輸入合法的數(shù)字?jǐn)?shù)據(jù)。當(dāng)輸入結(jié)束時(shí)(按Tab鍵),對(duì)于輸入正確的數(shù)據(jù),顯示正確信息;對(duì)輸入的非數(shù)字?jǐn)?shù)據(jù),則響鈴(Beep)、顯示錯(cuò)誤信息、清除文本框中的內(nèi)容,并使焦點(diǎn)重新回到文本框。 Text2_ LostFocus 當(dāng)輸入結(jié)束按Tab鍵時(shí),該事件激發(fā)。 IsNumeric(Text2):判斷是否輸入非數(shù)字?jǐn)?shù)據(jù)。
19、Text2.SetFocus:使焦點(diǎn)重新回到文本框。 六、命令按鈕六、命令按鈕 CommandButtonCommandButton 接受用戶輸入的命令。輸入命令可以有三種方式: 鼠標(biāo)單擊、Tab鍵焦點(diǎn)到該按鈕、快捷鍵。 1. 1. 其他屬性其他屬性Caption:命令按鈕顯示的內(nèi)容,可設(shè)置快捷鍵,例 &Ok,顯示 Ok。Value: 檢查該按鈕是否按下。該屬性在設(shè)計(jì)時(shí)無(wú)效。Picture :按鈕可顯示圖片文件(.bmp和.Ico),當(dāng)Style為1時(shí)有效。Style:確定顯示的形式,0 只能顯示文字,1 文字、圖形均可 。ToolTipText :設(shè)置工具提示,和Picture結(jié)合使用。 2
20、. 2. 事件事件 Click3.例 2.8 建立一個(gè)允許剪切、復(fù)制和粘貼的簡(jiǎn)單便箋板程序。 可增加內(nèi)容:利用MouseMove事件決定命令按鈕的有效性, 即當(dāng)選中內(nèi)容,“剪切”、“復(fù)制”按鈕有效,否則無(wú)效。七、常用方法七、常用方法 方法是面向?qū)ο蟮?,故使用的形式為?對(duì)象. 方法1. PringtPringt 方法方法形式: 對(duì)象. Print Spc(n) | Tab(n) 表達(dá)式列表;|, 作用:在對(duì)象上輸出信息。對(duì)象對(duì)象:窗體、圖形框或打印機(jī)(Printer) ,省略對(duì)象在窗體上輸出。Spc(n) 函數(shù):插入n個(gè)空格,允許重復(fù)使用。Tab(n) 函數(shù):左端開始右移動(dòng)n列,允許重復(fù)使用。
21、 ; (分號(hào)):光標(biāo)定位上一個(gè)顯示的字符后。 , (逗號(hào)):光標(biāo)定位在下一個(gè)打印區(qū)的開始位置處。無(wú) ;,時(shí)換行。 開始打印的位置是由對(duì)象的CurrentX和CurrentX屬性決定, 缺省為打印對(duì)象的左上角0,0。 注意注意:Print方法在Form _Load事件過(guò)程中起作用,必須設(shè)置窗體的 AutoRedraw為True。例2.9顯示圖形顯示圖形 Private Sub Form_Click() For i = 1 To 5 Print Tab(i); String(6 - I, ); Spc(6); String(I, ) Next i End Sub注意注意:String(number
22、, character)返回指定長(zhǎng)度重復(fù)字符的字符串??紤]:若把Spc(6)換成Tab(6),效果如何?2. 2. ClsCls 方法方法 形式:對(duì)象.Cls 作用:清除程序運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。 注意:不清除在設(shè)計(jì)時(shí)的文本和圖形。3. 3. Move Move 方法方法 形式:對(duì)象.Move Left,Top,Width,Height 作用:移動(dòng)窗體或控件,并可改變其大小。 對(duì)象:可以是窗體及除時(shí)鐘、菜單外的所有控件 例例2.10 圖形移到窗體的中心。 八、應(yīng)用舉例八、應(yīng)用舉例 例2-11 編一計(jì)算月支付貸款的程序?,F(xiàn)要求根據(jù)房產(chǎn)商提供的信息,買房者選擇房型、面積、單價(jià)、按
23、揭期等信息,計(jì)算每月支付代款的程序。窗體1:列表框選擇數(shù)據(jù)、標(biāo)簽顯示數(shù)據(jù)、文本框輸入數(shù)據(jù);窗體2:圖形框顯示房屋的平面圖。Pmt函數(shù)計(jì)算月支付貸款。2.4 工程的管理及環(huán)境的設(shè)置工程的管理及環(huán)境的設(shè)置一、工程的組成一、工程的組成 工程文件包含了一個(gè)應(yīng)用程序的所有文件:窗體文件窗體文件(.frm):也稱為窗體模塊。一個(gè)應(yīng)用程序可包括多個(gè)窗體模塊,每個(gè)窗體模塊包括各種控件及屬性、若干事件過(guò)程和自定義過(guò)程;以及可被窗體內(nèi)其它過(guò)程調(diào)用的通用過(guò)程通用過(guò)程部分。 窗體的二進(jìn)制數(shù)據(jù)文件窗體的二進(jìn)制數(shù)據(jù)文件(.frx),自動(dòng)產(chǎn)生同名.frx文件。標(biāo)準(zhǔn)模塊文件標(biāo)準(zhǔn)模塊文件(.bas):也稱全局模塊或總模塊。在標(biāo)
24、準(zhǔn)模塊中建立的事件過(guò)程,可被所有窗體和標(biāo)準(zhǔn)模塊中的過(guò)程調(diào)用調(diào)用。類模塊的文件類模塊的文件(.cls):用于創(chuàng)建含有方法和屬性的用戶自己的對(duì)象。資源文件資源文件(.res):ActiveX控件的文件控件的文件(.ocx):可添加到工具箱并在窗體中使用。 二、創(chuàng)建、打開和保存工程二、創(chuàng)建、打開和保存工程三、添加、刪除和保存文件三、添加、刪除和保存文件1. 窗體名和窗體文件名概念 窗窗體名體名:窗體的Name屬性,在代碼中用來(lái)引用該窗體,同一工程不能有相同的窗體名; 窗體文件名窗體文件名:窗體存放在磁盤上的文件名,該文件包含了該窗體的所有控件屬性和代碼,同一文件夾不能有相同的文件名。2. 在工程中添
25、加現(xiàn)存的窗體時(shí),只是對(duì)該窗體文件的引用納入工程。因此,如果更改窗體并保存它,會(huì)影響包含此窗體文件的任何工程。3. 在工程中刪除窗體時(shí),僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤上。但是,如果在VB之外刪除一個(gè)窗體文件,VB不能更新此工程文件,當(dāng)打開此工程時(shí),將顯示一個(gè)文件丟失的錯(cuò)誤信息。4. 對(duì)窗體文件改名方法1) 打開工程 “另存為Form”實(shí)現(xiàn)文件的復(fù)制保存工程文件。 2) 利用編輯程序打開工程文件,修改FORM=XXX的文件名。窗體文件名窗體名2.5 生成可執(zhí)行文件和制作安裝盤生成可執(zhí)行文件和制作安裝盤 以工程文件例2.11為例。1. 1. 生成可執(zhí)行文件生成可執(zhí)行文件 文件/生
26、成V6B2-11.exe文件,然后關(guān)閉Visual Basic6.0。2. 2. 制作安裝盤制作安裝盤在向?qū)У闹笇?dǎo)下運(yùn)行V B6.0中文版工具“Package & Deployment”;“打包”:把工程中用到的各種類型的文件進(jìn)行打包壓縮后,存放到特定的目錄下?!罢归_”:再把這些打包的文件展開到用戶可以攜帶的安裝介質(zhì)軟盤、光盤等。3. 3. 檢測(cè)安裝程序檢測(cè)安裝程序 在沒(méi)有VB 6.0系統(tǒng)的環(huán)境下,執(zhí)行安裝盤中的Setup.exe文件,將發(fā)行盤進(jìn)行安裝。2.6 程程 序序 調(diào)調(diào) 試試一、錯(cuò)誤類型一、錯(cuò)誤類型 (1 1)編輯錯(cuò)誤)編輯錯(cuò)誤在編輯代碼時(shí),VB會(huì)對(duì)鍵入的代碼直接進(jìn)行語(yǔ)法檢查。當(dāng)發(fā)現(xiàn)代
27、碼存在打字錯(cuò)誤,遺漏關(guān)鍵字或標(biāo)點(diǎn)符等語(yǔ)法錯(cuò)誤,VB 在Form窗口中彈出一個(gè)子窗口,提示出錯(cuò)信息,出錯(cuò)的那一行變成紅色。這時(shí),用戶必須單擊“確定”按鈕,關(guān)閉出錯(cuò)提示窗,然后對(duì)出錯(cuò)行進(jìn)行修改。(2 2)編譯錯(cuò)誤)編譯錯(cuò)誤 編譯錯(cuò)誤指按了“啟動(dòng)”按鈕,VB開始運(yùn)行程序前,先編譯執(zhí)行的程序段時(shí),產(chǎn)生的錯(cuò)誤。此類錯(cuò)誤由于用戶未定義變量、遺漏關(guān)鍵字等原因產(chǎn)生。這時(shí),Visual Basic也彈出一個(gè)子窗口,提示出錯(cuò)信息,出錯(cuò)的那一行被高亮度顯示。(3 3) 運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤指VB在編譯通過(guò)后,運(yùn)行代碼時(shí)發(fā)生的錯(cuò)誤。這類錯(cuò)誤往往是指令代碼執(zhí)行了一非法操作引起的。例如類型不匹配、試圖打開一個(gè)不存在
28、的文件等。(4 4) 邏輯錯(cuò)誤邏輯錯(cuò)誤程序運(yùn)行后,得不到所期望的結(jié)果,這說(shuō)明程序存在邏輯錯(cuò)誤。這類錯(cuò)誤往往是程序存在邏輯上的缺陷所引起。例如,運(yùn)算符使用不正確、語(yǔ)句的次序不對(duì)、循環(huán)語(yǔ)句的起始、終值不正確等。通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,故錯(cuò)誤較難排除,需要程序員仔細(xì)地閱讀分析程序以及調(diào)試。二、調(diào)試錯(cuò)誤二、調(diào)試錯(cuò)誤 (1)VB(1)VB的三種模式的三種模式 設(shè)計(jì)模式設(shè)計(jì) 進(jìn)行程序的界面設(shè)計(jì)、屬性設(shè)置、代碼編寫等。 運(yùn)行模式運(yùn)行 執(zhí)行“運(yùn)行/啟動(dòng)”命令,可以查看程序代碼,但不能修改。 中斷模式中斷 當(dāng)在運(yùn)行模式,按了“中斷”命令或當(dāng)程序出現(xiàn)運(yùn)行時(shí)錯(cuò)誤時(shí)進(jìn)入中斷模式。可以查看代碼、修改代碼、檢
29、查數(shù)據(jù)。 (2)(2)調(diào)試窗口調(diào)試窗口 有三個(gè)調(diào)試窗口,它們是:“立即”窗口、“監(jiān)視”窗口、和“本地”窗口??蓡螕粢晥D菜單中的對(duì)應(yīng)命令打開這些窗口。(3 3)設(shè)置斷點(diǎn)和逐語(yǔ)句跟蹤)設(shè)置斷點(diǎn)和逐語(yǔ)句跟蹤 斷點(diǎn)是告訴VB掛起程序執(zhí)行的一個(gè)標(biāo)記,當(dāng)程序執(zhí)行到斷點(diǎn)處即暫停程序的運(yùn)行,進(jìn)入中斷模式。設(shè)置或刪除斷點(diǎn)的步驟: 中斷模式下,直接查看某個(gè)變量的值,只要把鼠標(biāo)指向所關(guān)心的變量處,稍停一下,就在鼠標(biāo)下方顯示該變量的值。斷點(diǎn)標(biāo)記當(dāng)前行2.7 常常 見(jiàn)見(jiàn) 錯(cuò)錯(cuò) 誤誤1. 使用中文標(biāo)點(diǎn)符號(hào)使用中文標(biāo)點(diǎn)符號(hào) 系統(tǒng)產(chǎn)生“無(wú)效字符”,以紅色顯示。2. 字母和數(shù)字形狀相似字母和數(shù)字形狀相似 小寫字母“l(fā)”和數(shù)字“
30、1”形式相同、小寫字母“o”與數(shù)字“0”。3. 對(duì)象名稱對(duì)象名稱(Name)屬性寫錯(cuò)屬性寫錯(cuò) Text1、Text2、Command1 txtInput、txtOutput、cmdOk4. 對(duì)象的屬性名、方法名、標(biāo)準(zhǔn)函數(shù)名寫錯(cuò)對(duì)象的屬性名、方法名、標(biāo)準(zhǔn)函數(shù)名寫錯(cuò) 盡量使用自動(dòng)列出成員功能。正確的系統(tǒng)按規(guī)定的大小寫表示。5. 無(wú)意形成控件數(shù)組無(wú)意形成控件數(shù)組 建立控件時(shí)小心使用“復(fù)制”、“粘貼”按鈕。6. 打開工程時(shí)找不到對(duì)應(yīng)的文件打開工程時(shí)找不到對(duì)應(yīng)的文件 保存文件時(shí)先保存窗體.frm文件、再保存.vbp文件,注意路徑。第三章第三章 VB語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ)(2學(xué)時(shí))學(xué)時(shí))3.1 編碼規(guī)則3.2
31、數(shù)據(jù)類型3.3 變量與常量3.4 運(yùn)算符和表達(dá)式3.5 常用函數(shù)3.6 常見(jiàn)錯(cuò)誤3.1 編編 碼碼 基基 礎(chǔ)礎(chǔ)1. VB代碼不區(qū)分字母的大小寫代碼不區(qū)分字母的大小寫 系統(tǒng)保留字自動(dòng)轉(zhuǎn)換每個(gè)單詞的首字母大寫; 用戶自定義行以第一次為準(zhǔn)。2. 語(yǔ)句書寫自由語(yǔ)句書寫自由 一行可書寫幾句語(yǔ)句,之間用冒號(hào)分隔; 一句語(yǔ)句可分若干行書寫,用續(xù)行符_連接一行 ABRA 結(jié)果為 False 男字男字 女字女字 按漢字的拼音字母比較按漢字的拼音字母比較 4. 邏輯運(yùn)算符邏輯運(yùn)算符 將操作數(shù)進(jìn)行邏輯運(yùn)算,結(jié)果是邏輯值: 條件表達(dá)式1 And 條件表達(dá)式2 條件表達(dá)式均為T, 結(jié)果為T; 條件表達(dá)式1 Or 條件表
32、達(dá)式2 條件表達(dá)式有一個(gè)為T 結(jié)果為T。二、表達(dá)式二、表達(dá)式 1. 組成組成 變量、常量、函數(shù)、運(yùn)算符和圓括號(hào)。 2.書寫規(guī)則書寫規(guī)則 (1) 運(yùn)算符不能相鄰。例a+ -b是錯(cuò)誤的。 (2) 乘號(hào)不能省略。例x 乘以y 應(yīng)寫成:x*y。 (3) 括號(hào)必須成對(duì)出現(xiàn),均使用圓括號(hào)。 (4) 表達(dá)式從左到右在同一基準(zhǔn)上書寫,無(wú)高低、大小。 3. 不同數(shù)據(jù)類型的轉(zhuǎn)換不同數(shù)據(jù)類型的轉(zhuǎn)換 運(yùn)算結(jié)果的數(shù)據(jù)類型向精度高的數(shù)據(jù)類型靠。 IntegerLongSingleDouble字符運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算表達(dá)式書寫舉例 sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1)
33、110e4510yxlnsinefgabcda*b*c*d/e/f/g 或 a*b *c*d/(e*f*g) 例:用人單位招聘秘書:年齡小于40歲的女性,學(xué)歷專科或本科, 年齡40,性別=“女”,(學(xué)歷=“??啤?,學(xué)歷=“本科”) And And Or73 x比a小,比b大 用 Ora小數(shù)b大數(shù)a小數(shù)b大數(shù)比a大,比b小 用 And例:表示算術(shù)表達(dá)式: 正確的VB表達(dá)式: 3=x And x =7 錯(cuò)誤的VB表達(dá)式: 3=x=7 或 3=x Or x=7 考慮:若分別寫成: 年齡40 And 性別= 女 And (學(xué)歷= ???And 學(xué)歷= 本科) 年齡40 Or 性別= 女 Or (學(xué)歷=
34、 ???Or 學(xué)歷= 本科)3.5 3.5 常用內(nèi)部函數(shù)常用內(nèi)部函數(shù)1. 數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù) Rnd函數(shù)返回0和1(包括0但不包括1)之間的雙精度隨機(jī)數(shù)。 每次運(yùn)行時(shí),要產(chǎn)生不同序列的隨機(jī)數(shù),執(zhí)行Randomize 語(yǔ)句。 例產(chǎn)生1100的隨機(jī)數(shù): Int(Rnd *100)+1 產(chǎn)生一定范圍內(nèi)的隨機(jī)整數(shù) : Int(Rnd *范圍范圍+基數(shù)基數(shù)) 2. 轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù) Chr(66) B Asc (B) 66 Asc(Chr(99) 99 Chr(Asc(K) K Ucase$(abcdefg) ABCDEFG3.日期函數(shù)日期函數(shù) Time返回系統(tǒng)時(shí)間、Date返回系統(tǒng)日期、Now返回系統(tǒng)日
35、期和時(shí)間 DateAdd(要增減日期形式,增減量,要增減的日期變量) DateDiff(要間隔日期形式,日期1,日期2) 例如求離你畢業(yè)還有多少天: DateDiff(d,date, #2006/07/01# )假定2006年畢業(yè)4. 字符串編碼和函數(shù)字符串編碼和函數(shù) (1)字符串編碼字符串編碼 Windows系統(tǒng)對(duì)字符采用了DBCS編碼,中文2字節(jié),西文1字節(jié) VB中字符Unicode編碼,任何字符2字節(jié)。 Len(“中國(guó)good ”)為8;LenB(“中國(guó)good ”)為12。 StrConv() 進(jìn)行DBCS與Unicode之間轉(zhuǎn)換。 (2)字符串函數(shù)字符串函數(shù) Mid$(ABCDEFG
36、,2,3) BCD InStr(2, ABCDEFG, EF) 5 S=Split(123,56,ab,) Join(S,) 123 56 ab Replace(ABCDABCD,CD,123) “AB123AB123”S(0)=123”,S(1)=56”,S(2)=ab5. 格式輸出函數(shù)格式輸出函數(shù) 格式輸出函數(shù)格式輸出函數(shù) Format( ),可以使數(shù)值、日可以使數(shù)值、日期、字符型數(shù)據(jù)按指定格式輸出。期、字符型數(shù)據(jù)按指定格式輸出。 格式:格式: Format(表達(dá)式(表達(dá)式,格式字符串,格式字符串) 表達(dá)式:表達(dá)式:要格式化的數(shù)值、日期、字符要格式化的數(shù)值、日期、字符 型表達(dá)式。型表達(dá)式。
37、 格式字符串:格式字符串:按指定格式輸出表達(dá)式的按指定格式輸出表達(dá)式的 值。該格式包括數(shù)值格式、日期格值。該格式包括數(shù)值格式、日期格 式、字符串格式式、字符串格式 。例3.1 利用Format函數(shù)顯示有關(guān)的日期和時(shí)間。Private Sub Form_Click( ) FontSize = 12 MyTime = #9:21:30 PM# MyDate = #7/21/1997# Print Tab(2); Format(MyDate, m/d/yy) Print Tab(2); Format(MyDate, mmmm-yy) Print Tab(2); Format(MyTime, h-m-
38、s AM/PM) Print Tab(2); Format(MyTime, hh:mm:ss A/P) Print Tab(2); Format(Date, dddd,mmmm,dd,yyyy) Print Tab(2); Format(Now, yyyy年年m月月dd日日 hh:mm) Print FormatDateTime(Now) VB6.0新提供的函數(shù)新提供的函數(shù)End Sub6. Shell函數(shù)函數(shù) Shell函數(shù)負(fù)責(zé)執(zhí)行一個(gè)可執(zhí)行文件,返回一個(gè)Variant,如果成功,代表這個(gè)程序的進(jìn)程ID,若不成功,則會(huì)返回0。 形式:形式: Shell(命令字符串命令字符串,窗口類型窗口類型
39、) 窗口類型值為1表示正常窗口,缺省窗口最小化為圖標(biāo)。 i = Shell(c:windowscalc.exe) j = Shell(c:, 1) 提示:提示:如果不知道應(yīng)用程序的路徑名,可用Start命令啟動(dòng)程序 i = Shell(start & calc.exe) ; i = Shell(start & vb6.exe )3.6 3.6 常常 見(jiàn)見(jiàn) 錯(cuò)錯(cuò) 誤誤1. 邏輯表達(dá)式書寫錯(cuò),在邏輯表達(dá)式書寫錯(cuò),在VBVB沒(méi)有造成語(yǔ)法錯(cuò)而形成邏輯錯(cuò)沒(méi)有造成語(yǔ)法錯(cuò)而形成邏輯錯(cuò) 例如,數(shù)學(xué)表達(dá)式 3x10 VB表達(dá)式寫為 3=x10。 問(wèn)題在于VB中的邏輯量與數(shù)值量可相互轉(zhuǎn)換。2. 同時(shí)給多個(gè)變量賦值
40、,在同時(shí)給多個(gè)變量賦值,在VBVB沒(méi)有造成語(yǔ)法錯(cuò)而形成邏輯錯(cuò)沒(méi)有造成語(yǔ)法錯(cuò)而形成邏輯錯(cuò) 例如:Dim x%,y%,z% x=y=z=13. 標(biāo)準(zhǔn)函數(shù)名寫錯(cuò)標(biāo)準(zhǔn)函數(shù)名寫錯(cuò) 4. 變量名寫錯(cuò)變量名寫錯(cuò) 檢查方法:在通用聲明段加Option Explicit5. 語(yǔ)句書寫位置錯(cuò)語(yǔ)句書寫位置錯(cuò) 在通用聲明段只能有Dim語(yǔ)句,不能有賦值等其他語(yǔ)句第四章第四章 基本的控制結(jié)構(gòu)基本的控制結(jié)構(gòu)(8學(xué)時(shí))學(xué)時(shí)) 4.1 順序結(jié)構(gòu) 4.2 選擇結(jié)構(gòu) 4.3 循環(huán)結(jié)構(gòu) 4.4 其他輔助控制語(yǔ)句 4.5 常用算法(一) 4.6 常見(jiàn)錯(cuò)誤 (順序、條件、循環(huán))4.1 4.1 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)一、賦值語(yǔ)句一、賦值語(yǔ)
41、句 形式:LET變量名表達(dá)式變量名表達(dá)式 作用: 將右面表達(dá)式的值賦給左面的變量名。 一般用于給變量賦值或?qū)丶O(shè)定屬性值。 例: sRate!=0.1 Text1.Text 歡迎使用Visual Basic 6.0 當(dāng)表達(dá)式的類型與變量的類型不一致時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度,如 iA% = 10 / 3 iA中的結(jié)果為3 注意:注意:雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“=”表示,VB系統(tǒng)會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào)。 二、與用戶交互函數(shù)和過(guò)程二、與用戶交互函數(shù)和過(guò)程 1. InputBox1. InputBox函數(shù)函數(shù) InputBoxInputBox( (提示提示 ,標(biāo)題,標(biāo)題,缺
42、省,缺省,x x 坐標(biāo)位置坐標(biāo)位置,y y坐標(biāo)位置坐標(biāo)位置) 其中:提示:提示信息;標(biāo)題:對(duì)話框標(biāo)題;缺?。狠斎?yún)^(qū)缺省值 函數(shù)返回字符類型。例要在屏幕上顯示圖示的對(duì)話框:相應(yīng)的語(yǔ)句如下:Dim strName As String * 40 strName= InputBox(請(qǐng)輸入你的姓名 + vbCrLf + 然后單擊確定 , 輸入框 )也可以使用如下語(yǔ)句:Dim strName As String * 40, strS1 As String * 40strS1 = 請(qǐng)輸入你的姓名 + Chr(13) + Chr(10) + 然后單擊確定 strName= InputBox(strS1, 輸
43、入框 , , 100,100) 當(dāng)鍵盤輸入“王曉明” 后,變量strName獲得鍵盤輸入的值。 舉例舉例2. MsgBoxMsgBox函數(shù)和函數(shù)和MsgBoxMsgBox過(guò)程過(guò)程 函數(shù)形式:變量% = MsgBox(提示,按鈕,標(biāo)題) 過(guò)程形式:MsgBox 提示,按鈕,標(biāo)題 舉例舉例 按鈕值如下: 函數(shù)返回所選按鈕整數(shù)值:例例4.1 編一帳號(hào)和密碼檢驗(yàn)程序。要求: 帳號(hào)不超過(guò)6位數(shù)字,有錯(cuò),清除原內(nèi)容再輸入。 密碼輸入時(shí)在屏幕上以 “*”代替; 若密碼錯(cuò),顯示有關(guān)信息,選擇“重試”按鈕,清除原內(nèi)容再輸入,選擇“取消”按鈕,停止運(yùn)行。分析: 帳號(hào)6位,MaxLength為6,LostFocus
44、判斷數(shù)字IsNumeric函數(shù) 密碼PassWordChar為“*”,MsgBox函數(shù)設(shè)置密碼錯(cuò)對(duì)話框。常常 見(jiàn)見(jiàn) 錯(cuò)錯(cuò) 誤誤數(shù)據(jù)合法性檢查中引起程序的死循環(huán)Private Sub Text1_LostFocus() If Not IsNumeric(Text1) Then Text1 = Text1.SetFocus End IfEnd SubPrivate Sub Text2_LostFocus() If Not IsNumeric(Text2) Then Text2 = Text1.SetFocus End IfEnd SubIf Text2 And Not IsNumeric(Text
45、2)Text2Text1確定 4.2 4.2 選選 擇擇 結(jié)結(jié) 構(gòu)構(gòu) 1. If1. IfThenThen語(yǔ)句語(yǔ)句( (單分支結(jié)構(gòu)單分支結(jié)構(gòu)) ) If Then 語(yǔ)句塊語(yǔ)句塊 End If 或或 If Then 例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y。 If xy Then t=x x=y y=t End If 或或 If xy Then t=x: x=y: y=t重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語(yǔ)句次序變一下,結(jié)果如何?重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語(yǔ)句次序變一下,結(jié)果如何?2. If2. IfThenThenElseElse語(yǔ)句語(yǔ)句( (雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)) ) If T
46、hen Else End If If Then Else 計(jì)算分段函數(shù):yxxxxxxxsincos231030單分支結(jié)構(gòu)實(shí)現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1) 雙分支結(jié)構(gòu)實(shí)現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If3. If3. IfThenThenElseIfElseIf語(yǔ)句語(yǔ)句( (多分支結(jié)構(gòu)多分支結(jié)構(gòu)) ) 形式: If Then ElseIf Then Else 語(yǔ)句塊語(yǔ)句塊 n+1 End If例例4.2 已知變量strC中存放了一個(gè)字符,判
47、斷該字符是字母字符、數(shù)字字符還是其他字符。用多分支結(jié)構(gòu)實(shí)現(xiàn)用多分支結(jié)構(gòu)實(shí)現(xiàn): If Ucase(strC) =A And Ucase (strC) =0 And strC = 90 Then Print 優(yōu) ElseIf mark = 80 Then Print 良 ElseIf mark = 70 Then Print 中 ElseIf mark = 60 Then Print 及格 Else Print 不及格 End If 方法二 If mark 60 Then Print 不及格 ElseIf mark 70 Then Print 及格 ElseIf mark 80 Then Prin
48、t 中 ElseIf mark = 60 Then Print 及格 ElseIf mark = 70 Then Print 中 ElseIf mark = 80 Then Print 良 ElseIf mark = 90 Then Print 優(yōu) Else Print 不及格 End If 返回724 4IfIf語(yǔ)句的嵌套語(yǔ)句的嵌套 If語(yǔ)句的嵌套是指If或Else后面的語(yǔ)句塊中又包含If語(yǔ)句。 形式如下: If Then If Then End If End If T x yT z 為最小數(shù)T 使得 x yFFF x yzx y x 與 y 交換y z y 與 z 交換xyz用一個(gè)IF語(yǔ)句
49、和一個(gè)嵌套的IF語(yǔ)句實(shí)現(xiàn) If xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xy Then t=x: x=y: y=t End If End IfIf語(yǔ)句的嵌套注意事項(xiàng):書寫鋸齒型; If 與End If配對(duì)。:與同類型的下面四種形式之一: 表達(dá)式 例: A 一組枚舉表達(dá)式(用逗號(hào)分隔) 2,4,6,8 表達(dá)式1 To 表達(dá)式2 60 To 100 Is 關(guān)系運(yùn)算符表達(dá)式 Is =A And Ucase (strC) =0 And strC 0 And y 0 Then Print 在第一象限 ElseIf x 0 Then Print
50、在第二象限 ElseIf x 0 And y 0 And y 0 And y 0Print 在第一象限 Case x 0Print 在第二象限 Case x 0 And y 0 And y y,x,y) (2)Choose函數(shù)形式是: Choose(數(shù)字類型變量,值為(數(shù)字類型變量,值為1的返回值,值為的返回值,值為2的返回值的返回值) 例如,Nop是14的值,轉(zhuǎn)換成 + 、-、運(yùn)算符的語(yǔ)句如下: Op= Choose(Nop,+,-,) 當(dāng)值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當(dāng)Nop是1 4的非整數(shù),系統(tǒng)對(duì)Nop取整再判斷;若Nop不在14之間,
51、函數(shù)返回Null值。 (3) Switch函數(shù)形式是: Switch(條件表達(dá)式(條件表達(dá)式1,條件表達(dá)式,條件表達(dá)式1為為True時(shí)的值時(shí)的值,條件表達(dá)式,條件表達(dá)式2,條件表達(dá)式,條件表達(dá)式2為為True時(shí)的值時(shí)的值)常常 見(jiàn)見(jiàn) 錯(cuò)錯(cuò) 誤誤1在選擇結(jié)構(gòu)中缺少配對(duì)的結(jié)束語(yǔ)句對(duì)多行式的If塊語(yǔ)句中,應(yīng)有配對(duì)的 End If語(yǔ)句結(jié)束。2. 多邊選擇ElseIf關(guān)鍵字的書寫和條件表達(dá)式的表示 ElseIf 不要寫成Else If;多個(gè)條件表達(dá)式次序問(wèn)題,見(jiàn)例4.3。3. Select Case語(yǔ)句的使用 Select Case 后不能出現(xiàn)多個(gè)變量;Case子句后不能出現(xiàn)變量,見(jiàn)例4.6。4.3 4
52、.3 循循 環(huán)環(huán) 結(jié)結(jié) 構(gòu)構(gòu)1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句 (一般用于循環(huán)次數(shù)已知)形式 For 循環(huán)變量初值循環(huán)變量初值 to 終值終值 Step 步長(zhǎng)步長(zhǎng) 語(yǔ)句塊語(yǔ)句塊Exit For 語(yǔ)句塊語(yǔ)句塊 Next 循環(huán)變量循環(huán)變量 循環(huán)變量 =終值 語(yǔ)句塊 Exit For 語(yǔ)句塊 循環(huán)變量加步長(zhǎng) T F 循環(huán)變量得初值 循環(huán)體例4.8 計(jì)算1100的奇數(shù)和,程序段如下: Dim i %, s% 等價(jià)于: Dim i %, s% s=0 s=0 : i = 1 For i = 1 To 100 step 2 re: If i 0 初值終值 =1 時(shí),可省略終值=0 死循環(huán)循環(huán)次數(shù)) 1(步長(zhǎng)初值
53、終值Int要注意:要注意:v 出了循環(huán),循環(huán)控制變量值的問(wèn)題。 例程序段: For i=2 To 13 Step 3 循環(huán)執(zhí)行次數(shù) Print i , 輸出 i的值分別為: Next i 2 5 8 11 Print : Print “I=“, i 出了循環(huán)輸出為: I=14v 在循環(huán)體內(nèi)對(duì)循環(huán)控制變量可多次引用;但最好不要對(duì)其賦值,否則影響原來(lái)的循環(huán)控制規(guī)律。4) 1(3213Int步長(zhǎng)例4.9 改變循環(huán)控制變量對(duì)循環(huán)的影響。Private Sub Command1_Click() j = 0 For i = 1 To 20 Step 2 i = i + 3 j = j + 1 Print
54、第; j; 次循環(huán)i=; i Next i Print 退出循環(huán)后i=; i End Sub正常情況:i=1,3,5,7,9,11,13,15,17,19現(xiàn)在:i=4,9,14,19例4.10 輸出可打印的ASCII碼字符與它的編碼值。 2. DoLoop循環(huán)語(yǔ)句循環(huán)語(yǔ)句(用于控制循環(huán)次數(shù)未知)形式1: Do While|Until 語(yǔ)句塊語(yǔ)句塊 Exit Do 語(yǔ)句塊語(yǔ)句塊 Loop形式2:Do 語(yǔ)句塊語(yǔ)句塊 Exit Do 語(yǔ)句塊語(yǔ)句塊Loop While|Until 表達(dá)式列表 1 F T F T Exit Do 語(yǔ)句塊 語(yǔ)句塊 Exit Do 語(yǔ)句塊 語(yǔ)句塊 表達(dá)式列表 1 圖 1-3
55、-16 Do Loop While 圖 1-3-15 Do WhileLoop 例4.11 我國(guó)有13億人口,按人口年增長(zhǎng)0.8%計(jì)算,多少年后我國(guó)人口超過(guò)26億。分析:解此問(wèn)題兩種方法,可根據(jù)公式:26=13*(1+0.008)n 直接利用標(biāo)準(zhǔn)對(duì)數(shù)函數(shù)求得;也可利用循環(huán)求得,程序如下:Private Sub Command1_Click() x = 13 n = 0 Do While x n; (2) m除以n得余數(shù)r; (3)若r=0,則n為最大公約數(shù)結(jié)束;否則執(zhí)行(4); (4)mn,nr,再重復(fù)執(zhí)行(2)。 例 求 m=14 ,n=6 的最大公約數(shù). If m n Then t = m
56、: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公約數(shù)最大公約數(shù)=, n m n r 14 6 2 6 2 0輾轉(zhuǎn)相減法 m=m-n mn n=n-m nm m、n為公約數(shù) m=nDo While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2Loop3. 循環(huán)的嵌套循環(huán)的嵌套 一個(gè)循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套. 例例4.13打印九九乘法表. For i = 1 To 9 For j = 1
57、 To 9 se = i & & j & = & i * j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Next i思考:思考:打印上三角或下三角程序如何改動(dòng)?要打印下三角打印上三角或下三角程序如何改動(dòng)?要打印下三角?For j = 1 To i For ii =1 To 10 For jj=1 To 20 Next ii Next jj For ii =1 To 10 For ii=1 To 20 Next ii Next ii For ii =1 To 10 For jj=1 To 20 Next jj Ne
58、xt ii For ii =1 To 10 Next ii For ii =1 To 10 Next ii 對(duì)于循環(huán)的嵌套,要注意以下事項(xiàng):內(nèi)循環(huán)變量與外循環(huán)變量不能同名;外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),反之則可以。正確錯(cuò)誤4.4 4.4 其他輔助控制語(yǔ)句其他輔助控制語(yǔ)句 1. Go To 語(yǔ)句語(yǔ)句 形式形式: Go To 標(biāo)號(hào)標(biāo)號(hào)|行號(hào)行號(hào) 作用:無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句. 標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列. 2.Exit語(yǔ)句語(yǔ)句 多種形式: Exit For、Exit Do、Exit Sub、Exit Function等。 作用:退出某種
59、控制結(jié)構(gòu)的執(zhí)行。 3. End語(yǔ)句語(yǔ)句 多種形式: End、 End If、 End Select、 End With、 End Type、 End Sub、 End Function、 作用:End結(jié)束一個(gè)程序的運(yùn)行;其余表示某個(gè)結(jié)構(gòu)的結(jié)束,與對(duì)應(yīng)的結(jié)構(gòu)語(yǔ)句配對(duì)出現(xiàn)。4.With 語(yǔ)句語(yǔ)句 形式如下: With 對(duì)象 語(yǔ)句塊 End With 作用:對(duì)某個(gè)對(duì)象執(zhí)行一系列的操作,而不用重復(fù)指出對(duì)象的名稱。 With Label1 .Height = 2000 .Width = 2000 .FontSize=22 .Caption = MyLabel End With Label1.Height
60、 = 2000 Label1.Width = 2000 Label1.FontSize=22 Label1.Caption = MyLabel 等價(jià)4.5 4.5 常用算法(一)常用算法(一)算法是對(duì)某個(gè)問(wèn)題求解過(guò)程的描述 1. 1. 累加、連乘累加、連乘 1100的5或7的倍數(shù)的和 Sum = 0 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + i End If Next i Print Sum 310的乘積 t = 1 For i =3 To 10 t = t * i Next i Print t思考:若把循環(huán)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木材行業(yè)供應(yīng)鏈金融服務(wù)合同4篇
- 二零二四商鋪?zhàn)赓U補(bǔ)充協(xié)議合同范本:全面優(yōu)化租賃條款3篇
- 二零二五版農(nóng)業(yè)機(jī)械出口合同范本4篇
- 二零二五版房地產(chǎn)項(xiàng)目分期付款轉(zhuǎn)讓合同3篇
- 2025年新型建筑材料推廣應(yīng)用合同3篇
- 2025版門店共享合伙人業(yè)務(wù)流程優(yōu)化合作協(xié)議2篇
- 二零二五年度智能家居設(shè)備研發(fā)合作協(xié)議4篇
- 數(shù)字化轉(zhuǎn)型與集中度變化-深度研究
- 2025年度綠色能源項(xiàng)目投資出借信息咨詢與服務(wù)協(xié)議4篇
- 2025版膩?zhàn)尤槟z漆施工與后期維護(hù)服務(wù)合同樣本4篇
- 乳腺癌的綜合治療及進(jìn)展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語(yǔ)文試題真題解讀及答案詳解課件
- 信息安全意識(shí)培訓(xùn)課件
- 2024年山東省泰安市初中學(xué)業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 2024安全員知識(shí)考試題(全優(yōu))
- 中國(guó)大百科全書(第二版全32冊(cè))08
- 法律訴訟及咨詢服務(wù) 投標(biāo)方案(技術(shù)標(biāo))
- 格式塔心理咨詢理論與實(shí)踐
- 英語(yǔ)六級(jí)詞匯(全)
評(píng)論
0/150
提交評(píng)論