全國計算機二級筆記_第1頁
全國計算機二級筆記_第2頁
全國計算機二級筆記_第3頁
全國計算機二級筆記_第4頁
全國計算機二級筆記_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、全國計算機二級筆記第一講:Visual Basic 概述重點:1、掌握面向?qū)ο蟮某绦蛟O計的概念:對象、 方法、屬性與事件2、事件驅(qū)動過程的程序設計原理3、介紹VB集成開發(fā)環(huán)境4、VB開發(fā)環(huán)境的基本操作1.1 Visual Basic 簡介?具有面向?qū)ο蟮目梢暬O計工具?事件驅(qū)動的編程機制?提供了易學易用的應用程序集成開發(fā)環(huán)境?結(jié)構(gòu)化的程序設計語言?支持多種數(shù)據(jù)庫的訪問?支持DDE、DLL、OLE技術?完備的Help聯(lián)機幫助功能1.2 面向?qū)ο蟮某绦蛟O計方法基礎2 .對象及對象類:動作體的邏輯模型,稱為“對象 ”3 .屬性:屬性是用來描述對象的特性。4 .5 .方法:方法指對象可以進行的動作或行

2、為。VB對象具有屬性、方法和事件。屬性是描述對象的數(shù)據(jù);方法告訴對象應做的事情;事件是對 象所產(chǎn)生的事情,事件發(fā)生時可以編寫代碼進行處理。VB的窗體和控件是具有自己的屬性、 方法和事件的對象??梢?把屬性看作一個對象的性質(zhì),把方法看作對象的動作,把事件看作 對象的響應。日常生活中的對象,如小孩玩的氣球同樣具有屬性、方法和事 件。氣球的屬性包括可以看到的一些性質(zhì),如它的直徑和顏色。其 它一些屬性描述氣球的狀態(tài)(充氣的或未充氣的)或不可見的性質(zhì), 如它的壽命。通過定義,所有氣球都具有這些屬性;這些屬性也會 因氣球的不同而不同。氣球還具有本身所固有的方法和動作。如:充氣方法(用氮氣 充滿氣球的動作)

3、,放氣方法(排出氣球中的氣體)和上升方法(放 手讓氣球飛走)。所有的氣球都具備這些能力。1. 3基于Windows環(huán)境下的應用程序的工作方式 事件驅(qū)動在傳統(tǒng)的或“過程化”的應用程序中,應用程序自身控制了執(zhí) 行哪一部分代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并 按應用程序中預定的路徑執(zhí)行,必要時調(diào)用過程。在事件驅(qū)動的應用程序中,代碼不是按照預定的路徑執(zhí)行,而是在 響應不同的事件時執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也 可以由來自操作系統(tǒng)或其它應用程序的消息觸發(fā)、甚至由應用程序本身的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序,因此應用程序每 次運行時所經(jīng)過的代碼的路徑都是不同的。因

4、為事件的順序是無法預測的, 所以在代碼中必須對執(zhí)行時的“各 種狀態(tài)”作一定的假設。當作出某些假設時(例如,假設在運行來處理 某一輸入字段的過程之前,該輸入字段必須包含確定的值),應該組織好應用程序的結(jié)構(gòu),以確保該假設始終有效(例如,在輸入字段中有值 之前禁止使用啟動該處理過程的命令按鈕)。在執(zhí)行中代碼也可以觸發(fā)事件。例如,在程序中改變文本框中的文 本將引發(fā)文本框的 Change事件。如果Change事件中包含有代碼, 則將導致該代碼的執(zhí)行。如果原來假設該事件僅能由用戶的交互操作所 觸發(fā),則可能會產(chǎn)生意料之外的結(jié)果。正因為這一原因,所以在設計應 用程序時理解事件驅(qū)動模型并牢記在心是非常重要的。在

5、VB中事件的調(diào)用形式是:Private Sub 對象名 事件名(事件內(nèi)容)End Sub1.4 Visual Basic的集成開發(fā)環(huán)境VB 集成開發(fā)環(huán)境 (IDEIntegrated Developing Environment )由以下元素組成:1 .標題欄用于顯示正在開發(fā)或調(diào)試的工程名和系統(tǒng)的工作狀態(tài)( 設計態(tài)、運 行態(tài)、中止態(tài))。2 . 菜單欄用于顯示所使用的Visual Basic命令。VB6.0標準菜單包括:3 . 工具欄在編程環(huán)境下用于快速訪問常用命令。 缺省情況下,啟動 VB后顯示“標準”工具 欄,附加的編輯、窗體設計和調(diào)試的工具欄可以從“視圖”菜單上的“工具欄”命令中 移進或移

6、出。4 .窗體設計器用來設計應用程序的界面。啟動VB后, 窗體設計器中自動出現(xiàn)一個名為 Form1的空 白窗體,可以在該窗體中添加控件、圖形和 圖片等來創(chuàng)建所希望的外觀,窗體的外觀設 計好后,從菜單中選擇“文件” 一 “保存窗 體” 一在保存對話框中給出合適的文件名(注 意擴展名),并選擇所需的保存位置一確定。需要再設計另一個窗體時,單擊工具欄上的 “添加窗體”按鈕即可。5 .控件(工具)箱由一組控件按鈕組成,用于設計時在窗 體中放置控件。除了缺省的工具箱布局之外, 還可以通過從上下文菜單中選定“添加選項 卡”并在結(jié)果選項卡中添加控件來創(chuàng)建自定 義布局。6.彈出式(上下文)菜單在要使用的對象上

7、單擊鼠標右鍵即可 打開快捷菜單,其上會出現(xiàn)與當前對象相關 的經(jīng)常執(zhí)行的操作,以加快操作速度。7. 工程管理器窗口用于瀏覽工程中所包含的窗體和模塊, 還可以從中查看代碼、查看對象。8. 屬性窗口是VB中一個比較復雜的窗口,其中列出 了對選定窗體和控件的屬性設置值。VB中正 是通過改變屬性來改變對象的特征,如大小、 標題或顏色。9. 對象瀏覽器列出工程中有效的對象,并提供在編碼 中漫游的快速方法??梢允褂谩皩ο鬄g覽器” 瀏覽在VB中的對象和其它應用程序,查看 對那些對象有效的方法和屬性,并將代碼過 程粘貼進自己的應用程序。1 0 .對象瀏覽器右擊窗體中的對象、從工程管理器中點 “查看代碼”按鈕。1

8、1 .窗體布局窗口Form Layout window 允許使用表示屏 幕的小圖象來布置應用程序中各窗體的位 置。12 . 立即、本地和監(jiān)視窗口 這些附加窗口是為調(diào)試應用程序提供的,它 們只在IDE之中運行應用程序時才有效。2、單擊對話框打開按銀,進入VE集成環(huán)境,充分體現(xiàn)了可視化的特點.1.5創(chuàng)建VB應用程序的一般步驟一個VB程序也稱為一個工程,由窗體、標準 模塊、自定義控件及應用所需的環(huán)境設置組 成。開發(fā)步驟一般如下:1 .創(chuàng)建程序的用戶界面2 .設置界面上各個對象的屬性3 .編寫對象響應事件的程序代碼4 .保存工程5 .測試應用程序,排除錯誤6 .創(chuàng)建可執(zhí)行程序?硬件環(huán)境:486以上處理

9、器、16MB以上內(nèi) 存、50MB以上的硬盤空間、CD-ROM驅(qū)動 器、鼠標等?軟件環(huán)境:Windows95 或 indowsNT3.51 以 上版本?初次安裝:1)啟動 Windows952)插入具有VB6.0系統(tǒng)的光盤3)運行VB6.0安裝程序Setup.exe4)選擇 典型安裝”或自定義安裝”或 最小安 裝”?添加或刪除VB6.0部件:1)插入具有VB6.0系統(tǒng)的光盤2)運行 開始/設置/控制面板”3)雙擊控制面板中的 添加/刪除程序”圖標4)選擇其中的“Visual Basic 6.0選項”?啟動1 .桌面:開始 /程序/Visual Basic 6.02 .建立快捷方式,雙擊圖標?退出

10、1 .選擇文件菜單下的退出命令2 .單擊窗口關閉按鈕舉例:1啟動VB ,開始新工程2創(chuàng)建程序的用戶截面3加入程序代碼4保存工程文件5運行和調(diào)試應用程序,檢查并排除程序中 的錯誤6生成可執(zhí)行程序7打印窗體和代碼第二講 常用控件與界面設計重點:1、掌握窗體常用的屬性、方法與事件,重點掌握窗體的 Print方法的使用 2、掌握標簽、文本框、命令按鈕等控件的常用屬性、方法、事件2. 1創(chuàng)建窗體補充內(nèi)容:調(diào)整窗體布局 生成可執(zhí)行文件2. 2 VB的常用控件(P19) 概述:控體是用來進行用戶界面設計的可視化部 件。常用的VB6控件一覽表 P20常用控件:P21(1)文本框(TextBox):用于接收用戶

11、在框內(nèi) 輸入 的信息或顯示由程序提供的信息。文本框在工具箱中的圖標 P25;在窗體中 的形式 屬性:名稱:文本框名稱。命名規(guī)則同窗體名。(通常以“Txt ”作為前綴。)Text :文本屬性。該屬性的值為用戶從文 本框中輸入的內(nèi)容。PasswordChar: 口令屬性。設置是否可以 看到用戶從文本框中輸入的文本內(nèi)容。取值:空字符串:(默認值):可以看到 輸入的字符。某一字符:用戶每輸入一個字符,文 本框內(nèi)就出現(xiàn)一個該字符。MaxLength :最大長度屬性。設置文本框 的Text屬性中所能放入的字符總個數(shù)。取值:0 :(默認值)。1 32 KB。MultiLine :多行屬性。設置用戶是否可 在

12、文本框內(nèi)輸入多行文本。取值:True :可多行輸入。False :(默認值)只能單行輸入。Alignment :對齊屬性。設置文本框內(nèi)的文 本內(nèi)容的對齊方式。取值:0:(默認值)靠左對齊。1 :靠右對齊。2 :居中對齊。說明:本屬性只在 MultiLine 為True 時有效。TabStop: Tab鍵屬性。設置是否可用Tab 鍵來移動焦點到另一個對象上。取值:True:(默認值)可以False :不可以。其它屬性類似窗體。方法:Refresh :刷新。SetFocus :設置焦點。通過本方法,可以 使光標指向指定的文本框。事件:Change :當文本框的內(nèi)容發(fā)生變化時,就 引發(fā)本事件。Los

13、tFocus :當光標離開文本框時,引發(fā)本 事件。Keypress:當用戶按下或松開鍵盤上某個 按鍵時,發(fā)生本事件。(2)標簽:(Label)主要用于在窗體上增 加文字說明。標簽在工具箱中的圖標 P25;在窗體中 的形式屬性:名稱:標簽名稱。(通常以“Lbl”作為前綴。)Caption :標題屬性。本屬性的值為顯示 在標簽上的內(nèi)容。AutoSize :大小自適應屬性。即標簽的大 小是否隨著標題內(nèi)容的多少而自動變化。取值:True :是。False :(默認值)否。FontName :字體名稱。設置在標簽內(nèi)顯示 的文本的字體名稱。方法:Refresh :刷新。Move :移動。事件:Click

14、:單擊事件。DblClick :雙擊事件。(3) 命令按鈕:(commandbutton):用戶用 鼠標單擊命令按鈕,表示要執(zhí)行某項功能。 屬性:名稱:(通常以“ Cmd作為前綴。)Caption :標題。其值就是在命令按鈕 上顯示的文本。Default:設定此命令按鈕是否為窗體的默認按鈕。取值true :在窗體啟動(Active ) 后,按Enter鍵馬上就會執(zhí)行的命令按鈕。(同一窗體中只能有一個命令按鈕的此項屬 性值為true )False :否。Enabled :設定命令按鈕是否可用。取值true :(默認值):可用。false :不可用。(命令按鈕呈灰色) 事件:click :單擊事件

15、方法:SetFocus : 命令按鈕經(jīng)過 SetFocus方 法后,將取得焦點。(用戶此時按回車鍵將會 執(zhí)行此命令按鈕。)(4)復選框:(checkbox):用來設定程序的 執(zhí)行狀態(tài)。屬性:名稱:(通常以“ Chk'作為前綴。)caption :標題,顯示在復選框的右方, 指明此復選框所代表的功能。Value :表示復選框在執(zhí)行時的三種狀取值:0:不復選,執(zhí)行時無勾。1:復選,執(zhí)行時有勾。2:灰色,表示用戶不能修改這個 設定值,只能看到它目前狀態(tài)。事件:click :單擊事件。方法:Move :Refresh(5)選項按鈕:(optionbutton )用來設定 程序的執(zhí)行狀態(tài)。屬性:

16、名稱:(通常以“ Opt”作為前綴。)caption :標題alignment : 設置標題文本的對齊方式。取值:0:(默認值)靠左對齊1 :靠右對齊2:靠中對齊value :其值決定該選項按鈕是否被選取值:true :表示此選項按鈕被選中。 False :表示此選項按鈕沒選中。說明:一個窗體或一個框架內(nèi)的選項按鈕 只能有一個被選中,(不同框架內(nèi)的選項按鈕 互不干擾)若用戶不設定哪一個選項按鈕的 值為true ,則系統(tǒng)指定第一個選項按鈕的 value 值為 true 。事件:click :單擊。方法:MoveRefresh(6) 框架:(frame)可以用框架控件將其它 各自獨立的控件(一般指

17、復選框、選項按鈕 等)組合在一組中。如實驗指導書P1& P16。屬性:名稱 captiontop leftwidthheight fontforecolor等等事件:click dblclick 等等說明:1、在使用框架控件將其它控件分組 時必須先繪制框架控件,后繪制其中的控件。2、在一個框架內(nèi)的控件可以進行整體 的激活、屏蔽、移動等等。3、在同一個窗體中的多個選項按鈕, 只有一個可以被選中,但在窗體中可以用 框架將選項按鈕分類,在同一框架內(nèi)的多 個選項按鈕中只有一個可以被選取。不同 框架內(nèi)的選項按鈕彼此互不干擾。4、要將控件畫在框架之中,不能雙擊 控件,因為那樣將使控件重疊在框架的上

18、 面,必須單擊工具圖標,然后在框架內(nèi)拖 動后釋放,這樣的所畫的控件在框架之中。第三講常用控件與界面設計重點:1、掌握列表框、組合框、選項按鈕、復選按鈕、滾動條等控件的常用的屬性、方法、事件2、掌握菜單的設計(7)歹ij表框(ListBox):用于列出可供用 戶選擇的項目列表。用戶可以從中選擇一個 或多個項目。屬性:名稱:(通常以“ List ”作為前綴。)List :列表屬性。用于保存列表的內(nèi)容。List實際上是一個一維數(shù)組,數(shù)組中元素的值,就是在執(zhí)行時看到的列表 項(item)一維數(shù)組:List 中有5個元素,List(0),List(1)List,List(3) ,List(4)列表項文本

19、 List (0)=68List (1)=78List (2)=88List (3)=80List (4)=76數(shù)組名:List 列表項序號:0,1,2, 3, 4,(從0開始)列表項文本(數(shù)組元素值)分別為: 68 78 888076Listcount :列表框內(nèi)所有選項的總數(shù),也 就是List()數(shù)組元素的總個數(shù)。Listindex :用戶最后單擊的列表項在List() 數(shù)組中的編號順序。(無選中時其值為-1 )Text :列表項的正文。其值為最后選中的 列表項的文本。請記住如下關系:對象名稱.List(ListIndex尸Text Columns:列表框顯示形式。設定Listbox的 列

20、表項若超過顯示范圍時,其卷動方式使用 垂直滾動條或是水平滾動條。取值:0 :(默認值)使用垂直滾動條。逐 行顯示列表項,可能有垂直滾動條。1n :使用水平滾動條。此時列表框內(nèi) 一次可顯示的列數(shù)(Column)即為n值。 MultiSelect :設定是否允許用戶多重選取對 象的列表項取值:0 :不能多重選取。(默認值)1:簡易多重選取。(用鼠標或空格 鍵來選取,一次一個)2 :高級多重選取。可用shift 或ctrl 來選取。(類似文件選取)Selected :設定列表項是否被選取的狀態(tài)。它是一個與List大小相同的數(shù)組。其中各元素的取值:True :被選取。F alse :不被選取。(默認值

21、)Sorted :排序?qū)傩?。設定列表項是否要照ASCII代碼排序。(字母順序)取值:True :是(不區(qū)分大小寫)False :否。(默認值)方法:(P28)AddItem:添加列表項。格式:對象名稱. AddItem < 列表項 文本 >,插入位置序號說明:1、若不指定位置,則插入到 列表項末尾。2、新列表項插入后,原來位置 及其后的列表項順序下移。Clear :刪除列表所有項目Removeitem刪除列表項。珞式:對象名稱.Removeitem刪除項序號事件:Click :單擊事件。Dblick :雙擊事件(使用較少)應掌握:1 .如何添加或刪除列表框中的列表項?方法一:在設計

22、態(tài):定制List屬性。(向列 表中添加列表時,按ctrl +Enter換行。) 方法二:在程序代碼中:用 AddItem,RemoveItem等方法進行。2 .如何知道目前用戶所選取的列表項和目前列表框中的列表項數(shù)目?用戶目前所選的列表項:Text的值。目前列表框中的列表項數(shù)目:ListCount 的值。(8)組合框(comboBoX:將文本框和列表 框結(jié)合在一起,在列表框中所選項目的文本 會自動填入文本框。(與列表框相比,組合框 一次只能選取一個列表項)工具箱中的圖標P25;在窗體中的形式屬性:同 Listbox 有 : List, ListCount,ListIndex,Text,Sort

23、ed等等。Style :外觀屬性。設置組合框的類型和 功能。取值:(實驗指導書P40)0:(默認值)系統(tǒng)將創(chuàng)建一個帶有下拉 式列表框的組合框。稱為組合下拉式的組合框。它的下拉式窗 體不是一直顯示的。(如word中字體大小選擇框), 此狀態(tài)下用戶可將所內(nèi)容直接輸入到文本 框中。1:系統(tǒng)創(chuàng)建一個由文本框和列表框直 接結(jié)合在一起的簡單組合框。稱為組合式的組合框。它的下拉式窗 體是一直顯示的。如:word中字體菜單對話框中的字 體、字號對話內(nèi)容。2:系統(tǒng)創(chuàng)建一個沒有文本框的下拉式 列表框。單擊列表框右側(cè)的按鈕,文本框才 會顯示出來。稱為單純下拉式的組合框。此狀態(tài)下用戶不可在文本框中輸入,只 能在列表中

24、選擇。且下拉式窗體也不是一直 顯示的。Text:文本屬性。其取值為用戶從列表框 中選定的文本內(nèi)容或直接輸入文本框中的內(nèi) 容。事件:對不同類型的組合框,響應的事件是 不相同的。對于0, 2類型的組合框:單擊事件。對于1類型的組合框:雙擊事件。帶有文本框的0, 1組合框:在編輯文本 時可引發(fā)Change事件。說明:1、用戶若只需要使用單選的列表框, 則可用組合框來代替。2、如何添加或刪除組合框中的列表 項?(方法:同列表框)3、如何知道用戶目前所選取或輸入的 列表項是什么?由于組合框不允許多重選取,所以,Text屬性值為內(nèi)容;Listindex 屬性值為序號。方法:同列表框。圖像:(image):

25、主要用于圖像的顯示、放 大、縮小等靜態(tài)顯示圖像場合。圖像框中不能容納其他控件、也不能繪制圖形和顯示文本。而圖片控件框中可以。圖像在工具箱中的圖標 P25;在窗體中的形式屬性:名稱:visible :設置此對象在執(zhí)行時是否看得見。取值:True :(默認值)看得見。False :隱藏。enabled :可用否。picture : 設定圖像框中代表的圖片名稱。其值在設定時的格式為:盤符、 路 徑圖片文件名(.ico圖標文件.bmp位圖文件)stretch :用來決定圖像控件的大小是否要隨著所載入圖片的大小而變化。取值:true :隨圖片的大小而變化。False :(默認值)不隨圖片的大 小而變化。

26、事件:類似窗體。方法:MoveRsfresh(10)圖片:(picturebox ):不僅可以裝入 圖像,還可以在它上面繪制各種圖形和顯示 正文、放置控件(類似框架控件)。圖片在工具箱中的圖標P25;在窗體中 的形式水平滾動條(horizontal scroll bar) 、垂 直滾動條(vertical scroll bar) :滾動條:用來附加在|那些不能自動支持滾動 歷應用程序或控件中水平滾動或垂直滾動查 閱大量信息。一般出現(xiàn)在文本框、列表框右 邊;用來調(diào)整數(shù)據(jù)或選擇輸入。| (如word中序體、段落對話框中)滾動條在工具箱中的圖標 P25;在窗體中 的形式屬性:(實驗指導書P18)名稱

27、:(通常以“ Hsb”、“Vsb”作為前綴。) Max / Min : 定義了 Value屬性值所能 出現(xiàn)的最大值和最小值。說明:1、一開始使用滾動條時,Max為 32768, Min 為 0。2、水平滾動條位于最左邊時、垂直 滾動條位于最上邊時為 Min;水平滾動條位 于最右邊時、垂直滾動條位于最下邊時為Max。Value : 滾動條目前所在位置所對應的 數(shù)值。| (也可在代碼中設定。廠LargeChange :當用戶在滾動塊的上方、 下方(左方、右方)單擊時 Value所增加的 值。默認值為1。SmallChang :當用戶在滾動條兩端的箭 頭按鈕上單擊時 Value所增加的值。默認值 為

28、1。事件:Change:在滾動塊移動后(即Value值改 變時)發(fā)生。例如,可用一個滾動條的 Change事件麗" 更新一個TextBox控件中滾動條的 Value 屬性的設置?;蛘呖梢岳?Change事件旺 程在一個工作區(qū)里顯示數(shù)據(jù)和公式,在另一一 個區(qū)域里顯示結(jié)果。Scroll :在拖動滾動塊時發(fā)生。單擊滾動 箭頭或滾動條時不發(fā)生。方法:Move :用以移動滾動條。Refresh :強制全部重繪一個滾動條。SetFocus :設置焦點。將焦點移至指定的 滾動條上。時間:(timer)(計時器):用來實現(xiàn)與時間 有關的功能。時間控件在工具箱中的圖標 P25;在窗體 中的形式屬性:

29、名稱:enabledinterval用來設定引發(fā)timer事件過程的間隔時間,單位為1/1000秒。事件:(時間控件只有一個事件)timer :它會按照interval所設定的時間定時引發(fā)。說明:時間控件的使用方法:1 .在form上放置一個時間對象。2 .在屬性窗口中設定其interval 屬性。3 .填寫timer事件的程序內(nèi)容,4 .當程序開始執(zhí)行后,將不會看到它的圖 標,每隔interval 定義的時間內(nèi),程序會 觸發(fā)一次timer事件。時間控控件應用舉例:windows中計時器, word中的定時保存文件,定時更新屏幕畫面 (屏幕保護程序)等等。第六講循環(huán)結(jié)構(gòu)與循環(huán)結(jié)構(gòu)語句重點:1、

30、掌握單分支、雙分支以及多分支結(jié)構(gòu)語句的格式以及程序設計方法2、do-loop型循環(huán)語句及循環(huán)結(jié)構(gòu)的程序設計3、For-Next型循環(huán)語句及循環(huán)結(jié)構(gòu)的程序設計4、循環(huán)的嵌套1 for-next 循環(huán)語句:P69一般格式:for v=e1 to e2 step e3exit for循環(huán)體語句組next v其中:v :循環(huán)控制變量。應為 整型 或 單 精度型。el :循環(huán)控制變量的初值。e2 :循環(huán)控制變量的終值 。e3 :循環(huán)控制變量的步長值。功能:(執(zhí)行過程):P70使用說明: 超過終值的情況:當e3 >0 時,指 v>e2,當 e3<0 時,指 v<e2 。循環(huán)次數(shù)的計

31、算公式:循環(huán)次數(shù)=Int(e2-e1)/e3)+1當step 1時,此部分可以省略。循環(huán)中執(zhí)行到exit for語句時, 結(jié)束本循環(huán)語句)轉(zhuǎn)本next的下一條語句去 執(zhí)行。1.1程序舉例例:求 1+2+3+4+5Private Sub Form_click()Dim s As Integer, i As Integers = 0For i = 1 To 5s = s + iNext iPrint "s=" sEnd Sub例:求 1*2*3*4Private Sub Form_click()Dim s As Integer , i As Integers = 1For i

32、= 1 To 4s = s * iNext IPrint "s=" sEnd Sub例P70例P71先看len、mid函數(shù)的使用:有一個字符串A="abcd”(1) 則 len(A)=4 len(x)可獲得x字符串長度。(一個漢字為2個字符)(2) mid(x,n1,n2):取子串函數(shù)作用一:取子串:mid(A,1,1)= "a"mid(A,1,2)= "ab”mid(A,3,1)= "c"從一個字符串中一個一個取出字符的方法:for I=1 to len(x)print mid(x,I,1)next I若逆序取出

33、:for I=len(x) to 1 step -1print mid(x,I,1) next I作用二:改變一個字符串中某些字符。mid(x,2,2)="k"1.2循環(huán)嵌套:P73for 1= 1 to 2fot j=1 to 3printb”next j printa”next I程序舉例:P73例rnd(x):隨機函數(shù)的使用方法:P73改變程序中rnd(X)中的X取值,觀察結(jié) 果Private Sub Form_click()Print Rnd(1); Rnd(0)產(chǎn)生a,b范圍內(nèi)隨機整數(shù)的公式:P73 int(b-a+1)*rnd+a)例:生成5個3位隨機整數(shù)。Fo

34、r I=1 to 5Print int(999-100+1)*rnd+100)Next I自習P74各例isNumeric(x):判斷一個字符串是否是一個數(shù)字串。若x是數(shù)字串,其值為True,若不是數(shù)字串, 其值為False2 do-loop循環(huán)結(jié)構(gòu):P68一般格式:4種P68do while e doexit doexit dolooploop while e格式一:(1)先判斷e的值,為true ,執(zhí)行循環(huán) 體A,為false , 循環(huán)結(jié)束,轉(zhuǎn)loop的下 面一條語句去執(zhí)行。(2)循環(huán)體執(zhí)行完后,執(zhí)行l(wèi)oop語句,返 回(1)。流程圖P67 (a)2.1 例:(補充)求s=1+2+3+4+

35、 當結(jié)果大小等于 55 時結(jié)束Private Sub Form_click()Dim s As Integer, n As Integers = 0n = 0Do While s < 55LoopPrint s, nEnd Sub格式二:(1)執(zhí)行循環(huán)體語句組。(2)執(zhí)行到loop while 語句時)判斷e的 值,若為true ,轉(zhuǎn)(1),若為false ,循 環(huán)結(jié)束,轉(zhuǎn)loop的下面一條語句去執(zhí)行。流程圖P67 (b)格式三:do until e格式四:doexit doloop until efalse )則執(zhí)行循exit doloop格式三功能:(1)判斷e的值,若為環(huán)體語句;若

36、為true )則循環(huán)結(jié)束)轉(zhuǎn)loop 的下面一條語句去執(zhí)行。(2)執(zhí)行l(wèi)oop語句時)返回(1)流程圖P68圖4-13(b)格式四功能:(1)執(zhí)行循環(huán)體語句(2)執(zhí)行l(wèi)oop語句時,判斷e的值,若為false ,返回(1),若為true ,則循環(huán) 結(jié)束,轉(zhuǎn)loop的下面一條語句去執(zhí)行。流程圖P68圖4-13 (a)特別說明:無論哪種格式,記住循環(huán)體執(zhí)行的條件:(1) while 后的條件值為true 時,執(zhí)行循環(huán)體,為false 時,循環(huán)結(jié)束。(2) until后的條件值為false 時,執(zhí) 行循環(huán)體,為true時,循環(huán)結(jié)束。程序舉例:P68例4-3第七講選擇分支與循環(huán)-vb 程序設計的常用算

37、法重點:1、重點掌握結(jié)構(gòu)程序設計的方法和思想;4、理解和掌握VB中常用算法的思想和設計 方法;算法(Algorithm ):計算機解題的基本思想方法和步驟。算法的描述:是對要解決一 個問題或要完成一項任務所采取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結(jié)果)、采用什么結(jié)構(gòu)、使用什么語句以及如何安排這些語句等。通常使用自然 語言、結(jié)構(gòu)化流程圖、偽代碼等來描述算法。一、計數(shù)、求和、求階乘等簡單算法此類問題都要使用循環(huán),要注意根據(jù)問 題確定循環(huán)變量的初值、終值或結(jié)束條 件,更要注意用來表示計數(shù)、和、階乘 的變量的初值。例:用隨機函數(shù)產(chǎn)生100個0, 99范圍 內(nèi)的隨機整數(shù),統(tǒng)計個位

38、上的數(shù)字分別 為 1 2, 3, 4, 5, 6, 7, 8, 9, 0 的數(shù) 的個數(shù)并打印出來。本題使用數(shù)組來處理,用數(shù)組a(1 to 100) 存放產(chǎn)生的確100個隨機整數(shù),數(shù)組x(1 to 10)來存放個位上的數(shù)字分別為1, 2, 3, 4, 5, 6, 7, 8, 9, 0 的數(shù)的個數(shù)。即個位是1的個數(shù)存放在x(1)中)個位 是2的個數(shù)存放在x(2)中,個位是0 的個數(shù)存放在x(10)o將程序編寫在一個 GetTJput過程中,代碼如下:Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer

39、Dim i As Integer, p As Integer '產(chǎn)生100個0, 99范圍內(nèi)的隨機整 數(shù),每行10個打印出來For i = 1 To 100a(i) = Int(Rnd * 100) If a(i) < 10 ThenForm1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.PrintNext i'統(tǒng)計個位上的數(shù)字分別為1, 2, 3, 4, 5, 6, 7, 8, 9, 0的數(shù)的個數(shù),并將 統(tǒng)計結(jié)果保存在數(shù)組 x(1),x(

40、2),,x(10) 中,將統(tǒng)計結(jié)果打印出來For i = 1 To 100p = a(i) Mod 10'求個位上的數(shù)字If p = 0 Then p = 10x(p) = x(p) + 1Next iForml.Print "統(tǒng)計結(jié)果"For i = 1 To 10P = iIf i = 10 Then p = 0Form1.Print "個位數(shù)為"+Str(p) + "共"+ Str(x(i) + "個" Next iEnd Sub二、求兩個整數(shù)的最大公約數(shù)、最小公倍數(shù)分析:求最大公約數(shù)的算法思想:(最

41、小公倍數(shù)=兩個整數(shù)之積/最大公約數(shù))(1)對于已知兩數(shù) m, n,使得m>n ;(2) m除以n得余數(shù)r;(3)若r=0,則n為求得的最大公約數(shù),算法結(jié)束;否則執(zhí)行(4);(4) m - n, n r,再重復執(zhí)行(2)。例如:求m=14 ,n=6 的最大公約數(shù).m nr1 14 .6262_*0m=inputBox("m=") n=inputBox("n=") nm=n*m 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

42、nLoopPrint "最大公約數(shù)=",nPrint "最小公倍數(shù)=",nm/n三、判斷素數(shù)只能被1或本身整除的數(shù)稱為素數(shù)基本思想:把m作為被除數(shù),將2 INT(河)作為除數(shù),如果都除不盡,m就是素數(shù),否則就不是。(可用以下程序段實現(xiàn))m =val( InputBox("請輸入一個數(shù) ")For i=2 To int(sqr(m) If m Mod i = 0 Then Exit ForNext iIf i > int(sqr(m) Then Print "該數(shù)是素數(shù)"ElsePrint "該數(shù)不是

43、素數(shù)"End If 將其寫成一函數(shù),若為素數(shù)返回 True ,不是則返回FalsePrivate Function Prime( m as Integer) As Boolean Dim i% Prime=TrueFor i=2 To int(sqr(m) If m Mod i = 0 Then Prime=False: Exit ForNext i End Function四、驗證哥德巴赫猜想(任意一個大于等于6的偶數(shù)都可以分解為兩個素數(shù)之和)基本思想:n為大于等于6的任一偶數(shù),可分解為n1和n2兩個數(shù),分別檢查 n1和n2是否為素數(shù),如都是,則為一組解。如 n1不是素數(shù),就不必再

44、檢查n2是否素數(shù)。先從n1=3開始,檢驗 n1和n2 (n2=N-n1 )是否素數(shù)。然后使 n1+2再檢驗n1、n2是否素數(shù), 直到n1=n/2為止。利用上面的prime函數(shù),驗證哥德巴赫猜想的程序代碼如下:Dim n%,n1%,n2%n=Val(InputBox(" 輸入大于6的正整數(shù)")For n1=3 to n2 step 2 n2=n-n1If prime(n1) ThenIf prime(n2) thenPrint n & "=" & n1 & "+" & n2Exit For結(jié)束循環(huán)End

45、if End if Next n1五、迭代法算法思想:對于一個問題的求解X,可由給定的一個初值X0,根據(jù)某一迭代公式得到一個新的值 X1,這個新值X1比初值X0更接近要求的值 X;再以新值作為初值,即: X1 -X0,重新按原來的方法求X1,重復這一過和直到|X1-X0|< £ (某一給定的精度)。此時可將X1作為問題的解。1 .a .例:用迭代法求某個數(shù)的平方根。已知求平方根的迭代公式為:X1_(x0 )2 x0Private Function Fsqrt( a As single ) AS singleDim x0 As Single, x1 As Singlex0 =a/

46、2'迭代初值x1 = 0.5*(x0 + a/x0)Dox0 = x1 '為下一次迭代作準備x1 = 0.5*(x0 + a/x0)Loop While Abs(x1 - x0) > 0.00001Fsqrt=x1End Function六、數(shù)制轉(zhuǎn)換將一個十進制整數(shù)m轉(zhuǎn)換成 -r(2 16)進制字符串。方法:將m不斷除r取余數(shù),直到商為零,以反序得到結(jié)果。下面寫出一轉(zhuǎn)換函數(shù), 參數(shù)idec為十進制數(shù),ibase為要轉(zhuǎn)換成數(shù)的基 (如二進制的基是 2,八進制的基是 8等), 函數(shù)輸出結(jié)果是字符串。Private Function TrDec(idec As Integer,

47、 ibase As Integer) As StringDim strDecR$, iDecR% strDecR =""Do While idec <> 0iDecR = idec Mod ibaseIf iDecR >= 10 ThenstrDecR = Chr$(65 + iDecR - 10) & strDecR ElsestrDecR = iDecR & strDecREnd If idec = idec ibase Loop TrDec = strDecR End Function七、字符串的一般處理 1 .簡單加密和解密加密的思

48、想是:將每個字母C加(或減)一序數(shù)K,即用它后的第 K個字母代替,變換式公式:c=chr(Asc(c)+k)例如序數(shù) k為5,這時"A" f "F" , "a" 下,"B" f "G" 當加序數(shù)后 的字母超過"Z"或"z"則 c=Chr(Asc(c)+k-26)例如:You are goodf Dtz fwj ltti解密為加密的逆過程將每個字母C減(或加)一序數(shù) K ,即c=chr(Asc(c)-k),例如序數(shù)k為5,這時"Z" f

49、"U" , "z" - "u" , "丫" > "T"當加序數(shù)后的字母小于"A"或"a"則 c=Chr(Asc(c)-k +26)下段程序是加密處理:i = 1: strp ="" nL = Len(RTrim(strI) Do While (i <= nL)strT = Mid$(strI, i, 1)'取第 i 個字符If (strT >= "A" And strT <= &quo

50、t;Z") TheniA = Asc(strT) + 5If iA > Asc("Z") Then iA = iA - 26strp = strp + Chr$(iA)ElseIf (strT >= "a" And strT <= "z") TheniA = Asc(strT) + 5If iA > Asc("z") Then iA = iA - 26strp = strp + Chr$(iA)Elsestrp = strp + strTEnd If i = i + 1 Loop

51、Print strp2.統(tǒng)計文本單詞的個數(shù)算法思路:(1)從文本(字符串)的左邊開始,取出一個字符;設邏輯量WT表示所取字符是否是單詞內(nèi)的字符,初值設為 False(2)若所取字符不是空格",逗號“,分號”或 感嘆號”等單詞的分隔符,再判斷 WT是否為True ,若WT不為True則表是新單詞的開始,讓單詞數(shù) Nw=Nw+1 ,讓WT=True;(3)若所取字符是空格",逗號“,分號”或 感嘆號”等單詞的分隔符,則表示字符不是單詞內(nèi)字符,讓 WT=False;(4)再依次取下一個字符,重得(2) (3)直到文本結(jié)束o下面程序段是字符串 strI中包含的單詞數(shù)Nw = 0:

52、Wt = FalsenL = Len(RTrim(strI)For i = 1 To nLstrT = Mid$(strI, i, 1)'取第 i 個字符Select Case strTCase "",",","","!"Wt = FalseCase ElseIf Not Wt ThenNw = Nw + 1Wt = TrueEnd IfEnd SelectNext iPrint "單詞數(shù)為:", Nw八、窮舉法 窮舉法(又稱 枚舉法”)的基本思想是:一一列舉各種可能的情況,并 判斷哪一

53、種可能是符合要求的解,這是一種在沒有其它辦法的情況的方法”,是一種最笨”的方法,然而對一些無法用解析法求解的問題往往能奏效,通常采用循環(huán)來處理窮舉問題。例:將一張面值為100元的人民幣等值換成100張5元、1元和0.5元的零鈔,要求每種零鈔不少于1張,問有哪幾種組合?Dim i%, j%, k%Print "5 元1 元0.5 元"Fori = 1 To 20For j = 1 To 100 - ik=100 - i - jIf 5.0 * i + 1.0 * j + 0.5 * k = 100 ThenPrint i, j, kEnd IfNext jNext i九、遞歸

54、算法用自身的結(jié)構(gòu)來描述自身,稱遞歸VB允許在一個 Sub子過程和Function過程的定義內(nèi)部調(diào)用自己,即遞歸Sub子過程和遞歸 Function函數(shù)。遞歸處理一般用棧來實現(xiàn),每調(diào)用一次自身,把當 前參數(shù)壓棧,直到遞歸結(jié)束條件;然后從棧中彈出當前參數(shù),直到???。遞歸條件:(1)遞歸結(jié)束條件及結(jié)束時的值;(2)能用遞歸形式表示,且遞歸向終止條件發(fā)展。例:編fac(n)=n!的遞歸函數(shù)Function fac(n As Integer) As IntegerIf n = 1 Thenfac = 1Elsefac = n * fac(n - 1)End IfEnd Function第八講數(shù)組-靜態(tài)數(shù)

55、態(tài)重點:1、掌握數(shù)組的概念以及數(shù)組的定義和數(shù)組的結(jié)構(gòu)2、數(shù)組相關的函數(shù)和語句3、數(shù)組元素的引用4、數(shù)組元素的輸入、輸出和處理8. 1數(shù)組的概念數(shù)組:是同類變量的一個有序的集合。例:有5個學生的數(shù)學成績,若編程時這樣存放:s1=50s2=90 s3=80 s4=60 s5=70則5個分數(shù)分別存放在si s2 s3s4 s5簡單變量中若編程時這樣存放:s(1)=89s(2)=67 s(3)=42s(4)=68 s(5)=97則5個分數(shù)分別存放在一個s數(shù) 組中。一、數(shù)組命名、數(shù)組元素、數(shù)組的維數(shù)與數(shù)組的類型:上例中:數(shù)組名s 命名規(guī)則同簡單變量的命名規(guī)則。P45數(shù)組元素:數(shù)組中的每個成員為一個元素如上例中s數(shù)組中有5個元素,分別為:s(1) s(2)s(3) s(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論