版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Visual Basic 程序設(shè)計(jì)簡明教程程序設(shè)計(jì)簡明教程第一章 Visual Basic程序設(shè)計(jì)概述(1)第二章 VB簡單的程序設(shè)計(jì)(3)第三章 VB語言基礎(chǔ)(2)第四章 基本的控制結(jié)構(gòu)(6)第五章 數(shù)組(4)第六章 過程(5)第七章 常用控件(4)第八章 界面設(shè)計(jì)(3)第九章 文件(2)第十章 圖形(3)第十一章 數(shù)據(jù)庫技術(shù)(1)第一章第一章 Visual Basic程序設(shè)計(jì)概述程序設(shè)計(jì)概述(1學(xué)時(shí))學(xué)時(shí))1.1 引例1.2 VB主要功能和特點(diǎn)1.3 VB集成開發(fā)環(huán)境1.1 引例引例1.1 一行內(nèi)容在窗體左、右移動(dòng); 移動(dòng)兩種方法:手動(dòng)和自動(dòng),當(dāng)自動(dòng)時(shí),文字閃爍顯示; 當(dāng)內(nèi)容超出窗體,進(jìn)行
2、反彈。 1.1 引例引例 2.1 對(duì)輸入的字符進(jìn)行轉(zhuǎn)換的程序。 轉(zhuǎn)換規(guī)則: 大寫字母轉(zhuǎn)換成小寫字母, 小寫字母轉(zhuǎn)換成大寫字母 空格不轉(zhuǎn)換 其余轉(zhuǎn)換成“*”。要求:每輸入一個(gè)字符,馬上就進(jìn)行判斷和轉(zhuǎn)換。通過上述兩例說明VB面向?qū)ο?、可視化、事件?qū)動(dòng)的特點(diǎn)。1.2 VB主要功能和特點(diǎn)主要功能和特點(diǎn)1. 具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具;2. 事件驅(qū)動(dòng)的編程機(jī)制;3. 提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境;4. 結(jié)構(gòu)化的程序設(shè)計(jì)語言;5. 支持多種數(shù)據(jù)庫系統(tǒng)的訪問;6. Active技術(shù);7. VB 6.0在開發(fā)環(huán)境上、網(wǎng)絡(luò)功能等的增強(qiáng);8. 完備的help聯(lián)機(jī)幫助功能。1.3 VB集成開發(fā)環(huán)境集成開發(fā)
3、環(huán)境工具箱工程窗口屬性窗口窗體布局立即窗口窗體窗口1. 1. 主窗口主窗口 應(yīng)用程序窗口,由標(biāo)題欄、菜單欄和工具欄組成。2. 2. 窗體窗體(form)(form)窗口窗口 設(shè)計(jì)VB程序的界面。3. 3. 代碼代碼(code)(code)窗口窗口 編輯窗體、標(biāo)準(zhǔn)模塊中的代碼。4. 4. 屬性屬性(properties)(properties)窗口窗口 所有窗體或控件的屬性設(shè)置。5. 5. 工程資源管理器工程資源管理器( (project exprorproject expror) )窗口窗口 保存一個(gè)應(yīng)用程序所有的文件。6. 6. 工具箱工具箱(toolbox)(toolbox)窗口窗口 顯示
4、各種控件的制作工具,供用戶在窗體上設(shè)計(jì)。第二章第二章 VB簡單的程序設(shè)計(jì)簡單的程序設(shè)計(jì)(3學(xué)時(shí))學(xué)時(shí))2.1 2.1 程序設(shè)計(jì)方法的發(fā)展程序設(shè)計(jì)方法的發(fā)展2.2 VB2.2 VB中的有關(guān)概念中的有關(guān)概念2.3 2.3 建立簡單的應(yīng)用程序建立簡單的應(yīng)用程序2.4 2.4 基本控件和屬性基本控件和屬性2.5 2.5 工程的管理及環(huán)境的設(shè)置工程的管理及環(huán)境的設(shè)置2.6 2.6 生成可執(zhí)行文件和制作安裝盤生成可執(zhí)行文件和制作安裝盤 2.7 2.7 程序調(diào)試程序調(diào)試 2.8 2.8 常見錯(cuò)誤常見錯(cuò)誤2.1 2.1 程序設(shè)計(jì)方法的發(fā)展程序設(shè)計(jì)方法的發(fā)展1. 1. 初期的程序設(shè)計(jì)初期的程序設(shè)計(jì) 高運(yùn)行效率、
5、少占用內(nèi)存為目標(biāo)。2. 2. 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì) 程序的可讀性、可維護(hù)性為目標(biāo)。 程序= 算法+數(shù)據(jù)結(jié)構(gòu) 的面向過程的程序設(shè)計(jì)。3. 3. 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì) 降低程序的復(fù)雜性、提高軟件的開法效率和改善工作界面為目標(biāo)。 程序=對(duì)象+消息 的面向?qū)ο蟮某绦蛟O(shè)計(jì)。2.2 2.2 對(duì)象的有關(guān)概念對(duì)象的有關(guān)概念1. 1. 類類 類是創(chuàng)建對(duì)象實(shí)例的模板, 包含了創(chuàng)建對(duì)象的屬性描述和行為特征的定義。2. 2. 對(duì)象對(duì)象 是類的一個(gè)實(shí)例,繼承了類的屬性、方法。 VB中常用的對(duì)象有:窗體、控件等。3. 3. 對(duì)象的建立和命名對(duì)象的建立和命名4. 4. 對(duì)象的三要素對(duì)象的三要素 (1
6、 1)屬性)屬性 對(duì)象的性質(zhì),即用來描述和反映對(duì)象特征的參數(shù)。 (2 2)方法)方法 對(duì)象的行為,即將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調(diào)用。 (3 3)事件)事件 響應(yīng)對(duì)象的動(dòng)作稱為事件,它發(fā)生在用戶與應(yīng)用程序交互時(shí)。如單擊控件、鼠標(biāo)移動(dòng)、鍵盤按下等。 事件過程 指附在該對(duì)象上的用戶編寫的程序代碼,是事件的處理程序。 事件驅(qū)動(dòng)過程 是圖形用戶界面的本質(zhì),由用戶控制而代碼作出響應(yīng)。5. VB5. VB程序的執(zhí)行步驟如下:程序的執(zhí)行步驟如下:(1)啟動(dòng)應(yīng)用程序,裝載和顯示窗體;(2)窗體(或窗體上的控件)等待事件的發(fā)生;(3)事件發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件過程;(4)重復(fù)執(zhí)行步驟(2
7、)和(3) ;(5) 直到遇到END結(jié)束語句結(jié)束程序的運(yùn)行; 或按“結(jié)束”強(qiáng)行停止程序的運(yùn)行。2.3 2.3 建立簡單的應(yīng)用程序建立簡單的應(yīng)用程序以例例2.12.1為例:1. 建立用戶界面的對(duì)象;2. 對(duì)象屬性的設(shè)置;3. 對(duì)象事件過程及編程;4. 程序運(yùn)行和調(diào)試;5. 保存文件。2.4 2.4 基本控件和窗體基本控件和窗體一、常用屬性一、常用屬性 1. Name1. Name名稱屬性名稱屬性 創(chuàng)建的對(duì)象名稱,有默認(rèn)的名。在程序中,控件名是作為對(duì)象的標(biāo)識(shí)而引用,不會(huì)顯示在窗體上。 2. Caption2. Caption標(biāo)題屬性標(biāo)題屬性該屬性決定了控件上顯示的內(nèi)容。 3. Height3. H
8、eight、widthwidth、toptop和和leftleft屬性屬性 L e ft T o p H e igW id th 4. Enabled4. Enabled屬性屬性 控件是否可操作。當(dāng)設(shè)置為false時(shí),呈暗淡色,禁止用戶進(jìn)行操作。5. Visible5. Visible屬性屬性 控件是否可見。當(dāng)設(shè)置為false時(shí),用戶看不到,但控件本身存在。6. Font6. Font屬性屬性 Fontname:字體;Fontsize:字體大?。籉ontbold:是否是粗體; Fontitalic:是否斜體;Fontstrikethru:是否加一刪除線。 Fontunderline:是否帶下劃
9、線。 例2.2 在窗體是建立兩個(gè)命令按鈕 Command1和Command2, Command2 的Font通過屬性窗口設(shè)置, 其余屬性 通過代碼實(shí)現(xiàn)。7.7. Forecolor Forecolor前景顏色屬性前景顏色屬性 設(shè)置控件的前景顏色(即正文顏色).。其值是一個(gè)十六進(jìn)制常數(shù),用戶可以在調(diào)色板中直接選擇所需顏色。8 8. Backcolor. Backcolor背景顏色屬性背景顏色屬性9. 9. BackstyleBackstyle背景風(fēng)格屬性背景風(fēng)格屬性 0-transparent:透明顯示,即控件背景顏色顯示不出來。10.10. BorderStyle BorderStyle邊框風(fēng)
10、格屬性邊框風(fēng)格屬性 0-None:控件周圍沒有邊框 。 1-Fixed Single:控件帶有單邊框。11. Alignment11. Alignment屬性屬性 控件上正文水平對(duì)齊方式 0:正文左對(duì)齊 ;1:右對(duì)齊;2:居中。12.12. AutoSize AutoSize屬性屬性 控件是否根據(jù)正文自動(dòng)調(diào)整大小, False 13. WordWarp13. WordWarp屬性屬性 AutoSize True時(shí),WordWarp才有效。 按正文字體大小在垂直方向上改變顯示區(qū)域的大小。14.14.TabIndexTabIndex屬性屬性 決定了按Tab鍵時(shí),焦點(diǎn)在各個(gè)控件移動(dòng)的順序。各個(gè)控件默
11、認(rèn) TabIndex值就是以控件建立時(shí) 的順序,第一個(gè)為0。15.15.控件默認(rèn)屬性控件默認(rèn)屬性 反映該控件最重要的屬性,使用時(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 自
12、動(dòng) AutoSize=True, WordWarp=False, BorderStyle =1 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-正常、
13、1-最小化、2-最大化)2.2.事件事件 Click、DblClick和Load Load 當(dāng)裝入窗體時(shí)激發(fā),通常用于對(duì)屬性和變量初始化3.3.方法方法 Print、Cls和Move等 例2.4 上述屬性、Click、DblClick和Load 事件演示。三、標(biāo)簽三、標(biāo)簽 LabelLabel 用于顯示文本(輸出)信息,不能作為輸入信息的界面。 例2.5 顯示浮雕效果的文字,實(shí)現(xiàn)方法:字顏色、標(biāo)簽位置四、文本框四、文本框 TextBoxTextBox 是一個(gè)文本編輯區(qū)域,可在該區(qū)域輸入,編輯和顯示正文內(nèi)容。 1.1.其他屬性其他屬性 Text:正文內(nèi)容; Maxlength:設(shè)置正文的最多字符
14、個(gè)數(shù),0任意長度值; MultiLine:是否為多行,默認(rèn)為一行,F(xiàn)alse; ScrollBars: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:選中文本的起始、長度、內(nèi)容。 例2.6 復(fù)制選中的文本2.2.常用事件常用事件 Change:當(dāng)改變文本框的Text屬性時(shí)會(huì)引發(fā)該事件。 KeyPress(KeyAs
15、cii As Integer):同上,并可返回一個(gè)KeyAscii參數(shù) KeyAscii 為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ù)過濾數(shù)據(jù)過濾例例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
16、鍵時(shí),該事件激發(fā)。 IsNumeric(Text2):判斷是否輸入非數(shù)字?jǐn)?shù)據(jù)。 Text2.SetFocus:使焦點(diǎn)重新回到文本框。 五、命令按鈕五、命令按鈕CommandButtonCommandButton 接受用戶輸入的命令。輸入命令可以有三種方式: 鼠標(biāo)單擊、Tab鍵焦點(diǎn)到該按鈕、快捷鍵。 1. 1. 其他屬性其他屬性Caption:命令按鈕顯示的內(nèi)容,可設(shè)置快捷鍵,例 &Ok,顯示 Ok。Value: 檢查該按鈕是否按下。該屬性在設(shè)計(jì)時(shí)無效。Picture :按鈕可顯示圖片文件(.bmp和.Ico),當(dāng)Style為1時(shí)有效。Style:確定顯示的形式,0 只能顯示文字,1 文字、圖形
17、均可 。ToolTipText :設(shè)置工具提示,和Picture結(jié)合使用。 2. 2. 事件事件 Click3. 例例 2.8 建立一個(gè)允許剪切、復(fù)制和粘貼的簡單便箋板程序。 可增加內(nèi)容:利用MouseMove事件決定命令按鈕的有效性, 即當(dāng)選中內(nèi)容,“剪切”、“復(fù)制”按鈕有效,否則無效。六、常用方法六、常用方法 方法是面向?qū)ο蟮模适褂玫男问綖椋?對(duì)象.方法 1 1. .PrintPrint方法方法 形式: 對(duì)象.PrintSpc(n)|Tab(n)表達(dá)式列表;|, 作用:在對(duì)象上輸出信息對(duì)象對(duì)象:窗體、圖形框或打印機(jī)(Printer) ,省略對(duì)象在窗體上輸出。Spc(n)函數(shù):插入n個(gè)空格
18、,允許重復(fù)使用。Tab(n)函數(shù):左端開始右移動(dòng)n列,允許重復(fù)使用。;(分號(hào)):光標(biāo)定位上一個(gè)顯示的字符后。,(逗號(hào)):光標(biāo)定位在下一個(gè)打印區(qū)的開始位置處。無 ;,時(shí)換行。 開始打印的位置是由對(duì)象的CurrentX和CurrentX屬性決定, 缺省為打印對(duì)象的左上角0,0。 注意注意:Print方法在Form _Load事件過程中起作用,必須設(shè)置窗體的 AutoRedraw為True。例例2.9 顯示圖形顯示圖形 Private Sub Form_Click() For i = 1 To 5 Print Tab(i); String(6 - I, ); Spc(6); String(I, )
19、Next i End Sub注意注意:String(number, character)返回指定長度重復(fù)字符的字符串??紤]:若把Spc(6)換成Tab(6),效果如何?2. 2. ClsCls方法方法 形式:對(duì)象.Cls 作用:清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。 注意:不清除在設(shè)計(jì)時(shí)的文本和圖形。3. Move3. Move方法方法 形式:對(duì)象.Move 左邊距離,上邊距離,寬度,高度 作用:移動(dòng)窗體或控件,并可改變其大小。 對(duì)象:可以是窗體及除時(shí)鐘、菜單外的所有控件 例例2.10 圖形移到窗體的中心。 七、應(yīng)用舉例七、應(yīng)用舉例 例2-11 編一計(jì)算月支付貸款的程序?,F(xiàn)要求根據(jù)房產(chǎn)商
20、提供的信息,買房者選擇房型、面積、單價(jià)、按揭期等信息,計(jì)算每月支付代款的程序。窗體1:列表框選擇數(shù)據(jù)、標(biāo)簽顯示數(shù)據(jù)、文本框輸入數(shù)據(jù);窗體2:圖形框顯示房屋的平面圖。Pmt函數(shù)計(jì)算月支付貸款。2.5 工程的管理及環(huán)境的設(shè)置工程的管理及環(huán)境的設(shè)置一、工程的組成一、工程的組成 工程文件包含了一個(gè)應(yīng)用程序的所有文件: 窗體文件(.frm):控件及屬性、事件過程和自定義過程; 窗體的二進(jìn)制數(shù)據(jù)文件(.frx),自動(dòng)產(chǎn)生同名.frx文件; 標(biāo)準(zhǔn)模塊文件(.bas); 類模塊的文件(.cls); 資源文件(.res); ActiveX控件的文件(.ocx).二、創(chuàng)建、打開和保存工程二、創(chuàng)建、打開和保存工程三
21、、添加、刪除和保存文件三、添加、刪除和保存文件1. 窗體名和窗體文件名概念 窗窗體名體名:窗體的Name屬性,在代碼中用來引用該窗體,同一工程不能有相同的窗體名; 窗體文件名窗體文件名:窗體存放在磁盤上的文件名,該文件包含了該窗體的所有控件屬性和代碼,同一文件夾不能有相同的文件名。2. 在工程中添加現(xiàn)存的窗體時(shí),只是對(duì)該窗體文件的引用納入工程。因此,如果更改窗體并保存它,會(huì)影響包含此窗體文件的任何工程。3. 在工程中刪除窗體時(shí),僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤上。但是,如果在VB之外刪除一個(gè)窗體文件,VB不能更新此工程文件,當(dāng)打開此工程時(shí),將顯示一個(gè)文件丟失的錯(cuò)誤信息。4.
22、對(duì)窗體文件改名方法1) 打開工程 “另存為Form”實(shí)現(xiàn)文件的復(fù)制保存工程文件。 2) 利用編輯程序打開工程文件,修改FORM=XXX的文件名。窗體文件名窗體名2.6 生成可執(zhí)行文件和制作安裝盤生成可執(zhí)行文件和制作安裝盤 以工程文件例2.11為例。1. 1. 生成可執(zhí)行文件生成可執(zhí)行文件 文件/生成V6B2-11.exe文件,然后關(guān)閉Visual Basic6.0。2. 2. 制作安裝盤制作安裝盤在向?qū)У闹笇?dǎo)下運(yùn)行V B6.0中文版工具“Package & Deployment”;“打包”:把工程中用到的各種類型的文件進(jìn)行打包壓縮后,存放到特定的目錄下?!罢归_”:再把這些打包的文件展開到用戶可
23、以攜帶的安裝介質(zhì)軟盤、光盤等。3. 3. 檢測(cè)安裝程序檢測(cè)安裝程序 在沒有VB 6.0系統(tǒng)的環(huán)境下,執(zhí)行安裝盤中的Setup.exe文件,將發(fā)行盤進(jìn)行安裝。2.7 程程 序序 調(diào)調(diào) 試試一、錯(cuò)誤類型一、錯(cuò)誤類型 (1 1)編輯錯(cuò)誤)編輯錯(cuò)誤在編輯代碼時(shí),VB會(huì)對(duì)鍵入的代碼直接進(jìn)行語法檢查。當(dāng)發(fā)現(xiàn)代碼存在打字錯(cuò)誤,遺漏關(guān)鍵字或標(biāo)點(diǎn)符等語法錯(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ò)誤。
24、此類錯(cuò)誤由于用戶未定義變量、遺漏關(guān)鍵字等原因產(chǎn)生。這時(shí),Visual Basic也彈出一個(gè)子窗口,提示出錯(cuò)信息,出錯(cuò)的那一行被高亮度顯示。(3 3) 運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤指VB在編譯通過后,運(yùn)行代碼時(shí)發(fā)生的錯(cuò)誤。這類錯(cuò)誤往往是指令代碼執(zhí)行了一非法操作引起的。例如類型不匹配、試圖打開一個(gè)不存在的文件等。(4 4) 邏輯錯(cuò)誤邏輯錯(cuò)誤程序運(yùn)行后,得不到所期望的結(jié)果,這說明程序存在邏輯錯(cuò)誤。這類錯(cuò)誤往往是程序存在邏輯上的缺陷所引起。例如,運(yùn)算符使用不正確、語句的次序不對(duì)、循環(huán)語句的起始、終值不正確等。通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,故錯(cuò)誤較難排除,需要程序員仔細(xì)地閱讀分析程序以及調(diào)試。二、調(diào)
25、試錯(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)入中斷模式。可以查看代碼、修改代碼、檢查數(shù)據(jù)。 (2)(2)調(diào)試窗口調(diào)試窗口 有三個(gè)調(diào)試窗口,它們是:“立即”窗口、“監(jiān)視”窗口、和“本地”窗口。可單擊視圖菜單中的對(duì)應(yīng)命令打開這些窗口。(3 3)設(shè)置斷點(diǎn)和逐語句跟蹤)設(shè)置斷點(diǎn)和逐語句跟蹤 斷點(diǎn)是告訴VB掛起程序執(zhí)行的一個(gè)標(biāo)記,當(dāng)程序執(zhí)行到斷點(diǎn)處即暫停程序的運(yùn)行,進(jìn)入中斷模式。設(shè)置或刪除斷
26、點(diǎn)的步驟: 中斷模式下,直接查看某個(gè)變量的值,只要把鼠標(biāo)指向所關(guān)心的變量處,稍停一下,就在鼠標(biāo)下方顯示該變量的值。斷點(diǎn)標(biāo)記當(dāng)前行2.8 常常 見見 錯(cuò)錯(cuò) 誤誤1. 使用中文標(biāo)點(diǎn)符號(hào)使用中文標(biāo)點(diǎn)符號(hào) 系統(tǒng)產(chǎn)生“無效字符”,以紅色顯示。2. 字母和數(shù)字形狀相似字母和數(shù)字形狀相似 小寫字母“l(fā)”和數(shù)字“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)按
27、規(guī)定的大小寫表示。5. 無意形成控件數(shù)組無意形成控件數(shù)組 建立控件時(shí)小心使用“復(fù)制”、“粘貼”按鈕。6. 打開工程時(shí)找不到對(duì)應(yīng)的文件打開工程時(shí)找不到對(duì)應(yīng)的文件 保存文件時(shí)先保存窗體.frm文件、再保存.vbp文件,注意路徑。第三章第三章 VB語言基礎(chǔ)語言基礎(chǔ)(2學(xué)時(shí))學(xué)時(shí))3.1 編碼規(guī)則3.2 數(shù)據(jù)類型3.3 變量與常量3.4 運(yùn)算符和表達(dá)式3.5 常用函數(shù)3.6 常見錯(cuò)誤3.1 編編 碼碼 基基 礎(chǔ)礎(chǔ)1. VB代碼不區(qū)分字母的大小寫代碼不區(qū)分字母的大小寫 系統(tǒng)保留字自動(dòng)轉(zhuǎn)換每個(gè)單詞的首字母大寫; 用戶自定義行以第一次為準(zhǔn)。2. 語句書寫自由語句書寫自由 一行可書寫幾句語句,之間用冒號(hào)分隔;
28、 一句語句可分若干行書寫,用續(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 條件表達(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á)式從左到右
29、在同一基準(zhǔn)上書寫,無高低、大小。 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)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小
30、數(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é)歷= ???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 語句。 例產(chǎn)生1100的隨機(jī)數(shù): Int(Rnd *100)+12. 轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)
31、 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)日期和時(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中字符U
32、nicode編碼,任何字符2字節(jié)。 Len(“中國good ”)為6;LenB(“中國good ”)為12。 StrConv() 進(jìn)行DBCS與Unicode之間轉(zhuǎn)換。 (2)字符串函數(shù)字符串函數(shù) Mid$(ABCDEFG,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ù)例3.1 利用Format函數(shù)顯示有關(guān)的日期和時(shí)間。Private Sub
33、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-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(No
34、w, 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(命令字符串,窗口類型) 窗口類型值為1表示正常窗口,缺省窗口最小化為圖標(biāo)。 i = Shell(c:windowscalc.exe) j = Shell(c:, 1) 提示:提示:如果不知道應(yīng)用程序的路徑名,可用Start命令啟動(dòng)程序 i = Shell(start & calc.exe
35、) ; i = Shell(start & vb6.exe )3.6 3.6 常常 見見 錯(cuò)錯(cuò) 誤誤1. 邏輯表達(dá)式書寫錯(cuò),在邏輯表達(dá)式書寫錯(cuò),在VBVB沒有造成語法錯(cuò)而形成邏輯錯(cuò)沒有造成語法錯(cuò)而形成邏輯錯(cuò) 例如,數(shù)學(xué)表達(dá)式 3x10 VB表達(dá)式寫為 3=x10。 問題在于VB中的邏輯量與數(shù)值量可相互轉(zhuǎn)換。2. 同時(shí)給多個(gè)變量賦值,在同時(shí)給多個(gè)變量賦值,在VBVB沒有造成語法錯(cuò)而形成邏輯錯(cuò)沒有造成語法錯(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. 語句書寫位
36、置錯(cuò)語句書寫位置錯(cuò) 在通用聲明段只能有Dim語句,不能有賦值等其他語句第四章第四章 基本的控制結(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 其他輔助控制語句 4.5 常用算法(一) 4.6 常見錯(cuò)誤 (順序、條件、循環(huán))4.1 4.1 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)一、賦值語句一、賦值語句 形式:LET變量名表達(dá)式變量名表達(dá)式 作用: 將表達(dá)式的值賦值給變量名。 一般用于給變量賦值或?qū)丶O(shè)定屬性值。 例: sRate!=0.1 Text1.Text 歡迎使用Visual Basic 6.0 當(dāng)表達(dá)式的類型與變量的類型不一致時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度,
37、如 iA% = 10 / 3 iA中的結(jié)果為3 注意:注意:雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“=”表示,VB系統(tǒng)會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào)。 二、與用戶交互函數(shù)和過程二、與用戶交互函數(shù)和過程 1. 1. InputBoxInputBox函數(shù)函數(shù) InputBoxInputBox( (提示提示 ,標(biāo)題,標(biāo)題,缺省,缺省,x x 坐標(biāo)位置坐標(biāo)位置,y y坐標(biāo)位置坐標(biāo)位置) 其中:提示: 提示信息;標(biāo)題: 對(duì)話框標(biāo)題;缺?。狠斎?yún)^(qū)缺省值 函數(shù)返回字符類型。例要在屏幕上顯示圖示的對(duì)話框:相應(yīng)的語句如下:Dim strName As String * 40 strName= InputBo
38、x(請(qǐng)輸入你的姓名 + vbCrLf + 然后單擊確定 , 輸入框 )也可以使用如下語句:Dim strName As String * 40, strS1 As String * 40strS1 = 請(qǐng)輸入你的姓名 + Chr(13) + Chr(10) + 然后單擊確定 strName= InputBox(strS1, 輸入框 , , 100,100) 當(dāng)鍵盤輸入“王曉明” 后,變量strName獲得鍵盤輸入的值。2. MsgBoxMsgBox函數(shù)和函數(shù)和MsgBoxMsgBox過程過程 函數(shù)形式:變量% = MsgBox(提示,按鈕,標(biāo)題) 過程形式:MsgBox 提示,按鈕,標(biāo)題 按鈕
39、值如下: 函數(shù)返回所選按鈕整數(shù)值:例例4.1 編一帳號(hào)和密碼檢驗(yàn)程序。要求: 帳號(hào)不超過6位數(shù)字,有錯(cuò),清除原內(nèi)容再輸入。 密碼輸入時(shí)在屏幕上以 “*”代替; 若密碼錯(cuò),顯示有關(guān)信息,選擇“重試”按鈕,清除原內(nèi)容再輸入,選擇“取消”按鈕,停止運(yùn)行。分析: 帳號(hào)6位,MaxLength為6,LostFocus判斷數(shù)字IsNumeric函數(shù) 密碼PassWordChar為“*”,MsgBox函數(shù)設(shè)置密碼錯(cuò)對(duì)話框。常常 見見 錯(cuò)錯(cuò) 誤誤數(shù)據(jù)合法性檢查中引起程序的死循環(huán)Private Sub Text1_LostFocus() If Not IsNumeric(Text1) Then Text1 =
40、Text1.SetFocus End IfEnd SubPrivate Sub Text2_LostFocus() If Not IsNumeric(Text2) Then Text2 = Text1.SetFocus End IfEnd SubIf Text2 And Not IsNumeric(Text2)Text2Text1確定 4.2 4.2 選選 擇擇 結(jié)結(jié) 構(gòu)構(gòu) 1. 1. IfIfThenThen語句語句( (單分支結(jié)構(gòu)單分支結(jié)構(gòu)) ) If Then 語句塊語句塊 End If 或或 If Then 例:已知兩個(gè)數(shù)x和y,比較它們的大小, 使得x大于y. If xy Then
41、t=x x=y y=t End If 或或 If xy Then t=x: x=y: y=t重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語句次序變一下,結(jié)果如何?重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語句次序變一下,結(jié)果如何?2. 2. IfIfThenThenElseElse語句語句( (雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)) ) If Then 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
42、(x*x+1) Else y=cos(x)x3+3*x End If3. 3. IfIfThenThenElseIfElseIf語句語句( (多分支結(jié)構(gòu)多分支結(jié)構(gòu)) ) 形式: If Then ElseIf Then Else 語句塊語句塊 n+1 End If例例4.2 已知變量strC中存放了一個(gè)字符,判斷該字符是字母字符、數(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
43、 = 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 Print 中 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 I
44、f 返回724 4IfIf語句的嵌套語句的嵌套 If語句的嵌套是指If或Else后面的語句塊中又包含If語句。 形式如下: 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語句和一個(gè)嵌套的IF語句實(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語句的嵌套注意事項(xiàng):書寫鋸齒型; If 與End If配對(duì)。:與同類型的下面四種形式
45、之一: 表達(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 在第二象限 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
46、的返回值,值為的返回值,值為2的返回值的返回值) 例如,Nop是1-4的值,轉(zhuǎn)換成 + 、-、運(yùn)算符的語句如下: Op= Choose(Nop,+,-,) 當(dāng)值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當(dāng)Nop是1-4的非整數(shù),系統(tǒng)自動(dòng)取Nop的整數(shù)辦法在判斷;若Nop不在14之間,函數(shù)返回Null值。 (3) Switch函數(shù)形式是: Switch(條件表達(dá)式(條件表達(dá)式1,條件表達(dá)式,條件表達(dá)式1為為True時(shí)的值時(shí)的值,條件表達(dá)式,條件表達(dá)式2,條件表達(dá)式,條件表達(dá)式2為為True時(shí)的值時(shí)的值)常常 見見 錯(cuò)錯(cuò) 誤誤1在選擇結(jié)構(gòu)中缺少配對(duì)的結(jié)束語句對(duì)
47、多行式的If塊語句中,應(yīng)有配對(duì)的 End If語句結(jié)束。2. 多邊選擇ElseIf關(guān)鍵字的書寫和條件表達(dá)式的表示 ElseIf 不要寫成Else If;多個(gè)條件表達(dá)式次序問題,見例4.3。3. Select Case語句的使用 Select Case 后不能出現(xiàn)多個(gè)變量;Case子句后不能出現(xiàn)變量,見例4.6。4.3 4.3 循循 環(huán)環(huán) 結(jié)結(jié) 構(gòu)構(gòu)1. For循環(huán)語句循環(huán)語句 (一般用于循環(huán)次數(shù)已知)形式 For 循環(huán)變量初值循環(huán)變量初值 to 終值終值 Step 步長步長 語句塊語句塊Exit For 語句塊語句塊 Next 循環(huán)變量循環(huán)變量 循環(huán)變量 =終值 語句塊 Exit For 語句
48、塊 循環(huán)變量加步長 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(步長初值終值Int要注意:要注意:v 出了循環(huán),循環(huá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
49、 在循環(huán)體內(nèi)對(duì)循環(huán)控制變量可多次引用;但最好不要對(duì)其賦值,否則影響原來的循環(huán)控制規(guī)律。4) 1(3213Int步長例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 第; 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)語句循環(huán)語句(用于
50、控制循環(huán)次數(shù)未知)形式1: Do While|Until 語句塊語句塊 Exit Do 語句塊語句塊 Loop形式2:Do 語句塊語句塊 Exit Do 語句塊語句塊Loop While|Until 表達(dá)式列表 1 F T F T Exit Do 語句塊 語句塊 Exit Do 語句塊 語句塊 表達(dá)式列表 1 圖 1-3-16 Do Loop While 圖 1-3-15 Do WhileLoop 例4.11 我國有13億人口,按人口年增長0.8%計(jì)算,多少年后我國人口超過26億。分析:解此問題兩種方法,可根據(jù)公式:26=13*(1+0.008)n 直接利用標(biāo)準(zhǔn)對(duì)數(shù)函數(shù)求得;也可利用循環(huán)求得,
51、程序如下: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: 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=nD
52、o 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 To 9 se = i & & j & = & i * j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Next i思考:思考:打印上三角或下三角程序如何改動(dòng)?要打印下三角打印上三角或下三角程序如
53、何改動(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 Next 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 其他輔
54、助控制語句其他輔助控制語句 1. Go To 語句語句 形式形式: Go To 標(biāo)號(hào)標(biāo)號(hào)|行號(hào)行號(hào) 作用:無條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語句. 標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列. 2.Exit語句語句 多種形式: Exit For、Exit Do、Exit Sub、Exit Function等。 作用:退出某種控制結(jié)構(gòu)的執(zhí)行。 3. End語句語句 多種形式: 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)語句配對(duì)出現(xiàn)。4.Wi
55、th 語句語句 形式如下: With 對(duì)象 語句塊 End With 作用:對(duì)某個(gè)對(duì)象執(zhí)行一系列的操作,而不用重復(fù)指出對(duì)象的名稱。 With Label1 .Height = 2000 .Width = 2000 .FontSize=22 .Caption = MyLabel End With Label1.Height = 2000 Label1.Width = 2000 Label1.FontSize=22 Label1.Caption = MyLabel 等價(jià)4.5 4.5 常用算法(一)常用算法(一)算法是對(duì)某個(gè)問題求解過程的描述 1. 1. 累加、連乘累加、連乘 1100的5或7的倍
56、數(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)體前面置各變量初值的語句放在循環(huán)體內(nèi),程序運(yùn)行時(shí)會(huì)產(chǎn)生什么情況?例例4.14 求自然對(duì)數(shù)e的近似值,要求其誤差小于0.00001,近似公式為: 該例題涉及兩個(gè)問題: (1)用循環(huán)結(jié)構(gòu)求級(jí)數(shù)和的問題。本例根據(jù)某項(xiàng)值的精度來控制循環(huán)的結(jié)束與否。 (2)累加:e=e+t 循環(huán)體外對(duì)累
57、加和的變量清零 e=0 連乘:n=n*i 循環(huán)體外對(duì)連乘積變量置1 n=1 Private Sub Form_Click()Private Sub Form_Click() Dim i%,n&, t!, e! Dim i%,n&, t!, e! e = 0 : n = 1 e = 0 : n = 1 e存放累加和、n存放階乘 i = 0 : t = 1 i = 0 : t = 1 i計(jì)數(shù)器、t第i項(xiàng)的值 Do While t 0.00001Do While t 0.00001 e = e + t : i = i + 1 e = e + t : i = i + 1 累加、連乘 n = n n =
58、 n * * i : t = 1 / n i : t = 1 / n Loop Loop Print Print 計(jì)算了計(jì)算了 ; ; i; i; 項(xiàng)的和是項(xiàng)的和是 ; ; e eEnd SubEnd Subm1i0ii!11i!1 . !1.3!1! 211!11ei2. 求素?cái)?shù)求素?cái)?shù)素?cái)?shù)是一個(gè)大于2,且不能被1和本身以外的整數(shù)整除的整數(shù)。 判別某數(shù)m是否為素?cái)?shù)最簡單的方法是:對(duì)于m 從 i=2,3,m-1判別m能否被i整除,只要有一個(gè)能整除,m不是素?cái)?shù),否則m是素?cái)?shù)。例例4.15 求100以內(nèi)素?cái)?shù)的代碼: For m = 2 To 100 For i = 2 To m - 1 If (m
59、Mod i) = 0 Then GoTo NotNextM Next i Print mNotNextM: Next mm是否為素?cái)?shù)求100以內(nèi)的素?cái)?shù)思考:思考: 此例用Go To語句對(duì)非素?cái)?shù)不作判斷,若不用GoTo語句,如何修改程序? 3.3.窮舉法窮舉法 “窮舉法”也稱為“枚舉法”或“試湊法”,即將可能出現(xiàn)的各種情況一一測(cè)試,判斷是否滿足條件,一般采用循環(huán)來實(shí)現(xiàn)。 例例4.16 百元買百雞問題。假定小雞每只5角,公雞每只2元,母雞每只3元?,F(xiàn)在有100元錢要求買100只雞,編程列出所有可能的購雞方案。 設(shè)母雞、公雞、小雞各為x、y、z只,根據(jù)題目要求,列出方程為: x+y+y=100 3x
60、+2y+0.5z=100三個(gè)未知數(shù),兩個(gè)方程,此題有若干個(gè)解。解決此類問題采用“試湊法”,把每一種情況都考慮到。 方法一:最簡單三個(gè)未知數(shù)利用三重循環(huán)來實(shí)現(xiàn)。 方法二:從三個(gè)未知數(shù)的關(guān)系,利用兩重循環(huán)來實(shí)現(xiàn)。4.4.遞推法遞推法 “遞推法”又稱為“迭代法”,其基本思想是把一個(gè)復(fù)雜的計(jì)算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。 例例4.17 猴子吃桃子。小猴在某天摘桃若干個(gè),當(dāng)天吃掉一半多一個(gè);第二天吃了剩下的桃子的一半多一個(gè);以后每天都吃尚存桃子的一半多一個(gè),到第7天要吃時(shí)只剩下一個(gè),問小猴共摘下了多少個(gè)桃子?分析:這是一個(gè)“遞推”問題,先從最后一天
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩教育活動(dòng)總結(jié)(15篇)
- 幼兒書籍的讀書心得
- 快遞公司實(shí)習(xí)心得
- 第四單元+提高創(chuàng)新思維能力+練習(xí)(B卷) 高中政治統(tǒng)編版選擇性必修三邏輯與思維
- 地球的自轉(zhuǎn)+訓(xùn)練題 高二地理湘教版(2019)選擇性必修1
- 針灸聯(lián)合補(bǔ)陽還五湯加減治療頸腰椎病的臨床價(jià)值
- 心理拓展訓(xùn)練心得體會(huì)(范文7篇)
- 初級(jí)會(huì)計(jì)實(shí)務(wù)-初級(jí)會(huì)計(jì)《初級(jí)會(huì)計(jì)實(shí)務(wù)》模擬試卷378
- 星載AIS系統(tǒng)解交織關(guān)鍵技術(shù)研究
- 2025版汽車修理廠租賃及維修服務(wù)一體化合同3篇
- 石家莊長安區(qū)幼兒園信息統(tǒng)計(jì)表
- 壓力與浮力的原理解析
- 鐵路損傷圖譜PDF
- 裝修家庭風(fēng)水學(xué)入門基礎(chǔ)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)二 社群的種類與維護(hù)
- 2023年廣東省深圳市八年級(jí)下學(xué)期物理期中考試試卷
- 《詩詞寫作常識(shí) 詩詞中國普及讀物 》讀書筆記思維導(dǎo)圖
- 一站到底試題及答案完整版(第2801-2900題)
- 《稅務(wù)風(fēng)險(xiǎn)文獻(xiàn)綜述》
- 健康養(yǎng)生課件
- 混雜控制系統(tǒng)課件
評(píng)論
0/150
提交評(píng)論