版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1VisualBasic程序設(shè)計(jì)基礎(chǔ)敦化市職業(yè)教育中心修鵬鵬1VisualBasic程序設(shè)計(jì)基礎(chǔ)敦化市職業(yè)教育中心2第一章VisualBasic程序設(shè)計(jì)概述
1.1概述
1.2運(yùn)行環(huán)境、安裝和啟動(dòng)
1.3VB集成開發(fā)環(huán)境2第一章VisualBasic程序設(shè)計(jì)概述 1.131.1概述一、VisualBasic簡(jiǎn)介:
VisualBasic是基于Basic的可視化的程序設(shè)計(jì)語(yǔ)言。VisualBasic6.0中文版是Microsoft公司最新推出的可視化開發(fā)工具,是一種基于Windows操作系統(tǒng)的新型的現(xiàn)代程序設(shè)計(jì)語(yǔ)言,是一種易于學(xué)習(xí)、功能強(qiáng)、效率高的編程工具。任何具有初步程序設(shè)計(jì)基礎(chǔ)的人,都能在很短的時(shí)間內(nèi)掌握好VB,并有效地編寫出各種Windows程序。VisualBasic6.0包括三個(gè)版本:學(xué)習(xí)版、專業(yè)版、企業(yè)版、31.1概述4二、VisualBasic主要功能特點(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ì)語(yǔ)言5.支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)6.OLE技術(shù)。VB核心就是其對(duì)對(duì)象的鏈接與嵌入(OLE)的支持。7.Active技術(shù)8.完備的help聯(lián)機(jī)幫助功能三、VisuslBasic6.0新功能特點(diǎn)4二、VisualBasic主要功能特點(diǎn):51.2運(yùn)行環(huán)境、安裝和啟動(dòng)一、運(yùn)行環(huán)境:二、安裝:安裝文件:setup.exe三、啟動(dòng):方法:1.雙擊桌面VB快捷方式。
2.“開始”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03.“開始”|運(yùn)行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe51.2運(yùn)行環(huán)境、安裝和啟動(dòng)6進(jìn)入VisualBasic6.0窗口6進(jìn)入VisualBasic6.0窗口71.3VisualBasic6.0集成開發(fā)環(huán)境71.3VisualBasic6.0集成開發(fā)環(huán)境81.主窗口
應(yīng)用程序窗口,由標(biāo)題欄、菜單欄和工具欄組成。VB的三種工作模式(標(biāo)題欄總顯示當(dāng)前模式)
(1)設(shè)計(jì)模式:創(chuàng)建應(yīng)用程序的大多數(shù)工作都是在設(shè)計(jì)時(shí)完成的。在設(shè)計(jì)時(shí),可以設(shè)計(jì)窗體、繪制控件、編寫代碼并使用“屬性”窗口來(lái)設(shè)置或查看屬性設(shè)置值。
(2)運(yùn)行模式:代碼正在運(yùn)行的時(shí)期,用戶可與應(yīng)用程序交流。可查看代碼,但不能改動(dòng)它。
(3)中斷模式:程序在運(yùn)行的中途被停止執(zhí)行時(shí)。在中斷模式下,用戶可查看各變量及不是屬性的當(dāng)前值,從而了解程序執(zhí)行是否正常。還可以修改程序代碼,檢查、調(diào)試、重置、單步執(zhí)行或繼續(xù)執(zhí)行程序。81.主窗口VB的三種工作模式(標(biāo)題欄總顯示當(dāng)前模式)92.窗體(Form)設(shè)計(jì)窗口
窗體設(shè)計(jì)窗口是屏幕中央的主窗口,它可以作為自定義窗口用來(lái)設(shè)計(jì)應(yīng)用程序的界面。用戶可以在窗體中添加控件、圖形和圖片來(lái)創(chuàng)建所希望的外觀。每個(gè)窗口必須有一個(gè)的窗體名字,建立窗體時(shí)缺省名為Form1,Form2,...。窗體網(wǎng)格點(diǎn)間距的設(shè)置:設(shè)計(jì)模式-”工具”–”選項(xiàng)”應(yīng)注意窗體名(代碼中使用的標(biāo)識(shí)對(duì)象名稱)和窗體文件名的區(qū)別92.窗體(Form)設(shè)計(jì)窗口窗體設(shè)計(jì)窗口是屏10窗體設(shè)計(jì)窗口窗體名窗體文件名10窗體設(shè)計(jì)窗口窗體名窗體文件名113.代碼(code)窗口
在設(shè)計(jì)模式中,通過(guò)雙擊窗體或窗體上任何對(duì)象或通過(guò)“工程資源管理器”窗口中的“查看代碼”按鈕來(lái)打開代碼編輯器窗口。代碼編輯器是輸入應(yīng)用程序代碼的編輯器。代碼窗口主要包括:
a.對(duì)象列表框
b.過(guò)程列表框
c.代碼框
d.過(guò)程查看按鈕
e.全模塊查看按鈕113.代碼(code)窗口在設(shè)計(jì)模式中,通1212134.屬性(properties)窗口
屬性是指對(duì)象的特征,如大小、標(biāo)題或顏色等數(shù)據(jù)。在VisualBasic6.0設(shè)計(jì)模式中,屬性窗口列出了當(dāng)前選定窗體或控件的屬性的值,用戶可以對(duì)這些屬性值進(jìn)行設(shè)置。134.屬性(properties)窗口14
工程是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。工程資源管理器列出了當(dāng)前工程中的窗體和模塊5.工程資源管理器(projectexplorer)窗口14工程是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。15工程文件的擴(kuò)展名為.VBP工程資源管理器下面的列表窗口,以層次列表形式組成這個(gè)工程的所有文件。主要包括三種類型的文件:窗體文件(.FRM)存儲(chǔ)窗體上使用的所有控件對(duì)象和有關(guān)的屬性、對(duì)象相應(yīng)的事件過(guò)程、程序代碼。標(biāo)準(zhǔn)模塊文件(.BAS)所有模塊級(jí)變量和用戶自定義的通用過(guò)程(可以被應(yīng)用程序各處調(diào)用的過(guò)程)類模塊文件(.CLS)包含用戶對(duì)象的屬性及方法。15工程文件的擴(kuò)展名為.VBP16
工具箱提供一組工具,用于設(shè)計(jì)時(shí)在窗體中放置控件生成應(yīng)用程序的用戶接口。系統(tǒng)啟動(dòng)后缺省的General工具箱就會(huì)出現(xiàn)在屏幕左邊,上面有常用“部件”6.工具箱(ToolBox)窗口16工具箱提供一組工具,用于設(shè)計(jì)時(shí)在窗體17定制工具箱添加選項(xiàng)卡:對(duì)添加的選項(xiàng)卡加控件的方法:
(1)在已有的選項(xiàng)卡中拖動(dòng)所需控件(2)激活選項(xiàng)卡-”工程”-“部件”
17定制工具箱18
窗體布局窗口顯示在屏幕右下角。用戶可使用表示屏幕的小圖像來(lái)布置應(yīng)用程序中各窗體的位置。這個(gè)窗口在多窗體應(yīng)用程序中很有用,因?yàn)檫@可以指定每個(gè)窗體相對(duì)于主窗體的位置。
7.窗體布局窗口18窗體布局窗口顯示在屏幕右下角。用19立即窗口:中斷模式中調(diào)試應(yīng)用程序。對(duì)象瀏覽窗口:可查看工程定義的模塊或過(guò)程,也可查看對(duì)象庫(kù)、類型庫(kù)、類、方法、屬性及可在過(guò)程中使用的常數(shù)。19立即窗口:中斷模式中調(diào)試應(yīng)用程序。20第二章簡(jiǎn)單的VisualBasic程序設(shè)計(jì)
2.1程序設(shè)計(jì)方法的發(fā)展
2.2對(duì)象的概念
2.3建立簡(jiǎn)單的應(yīng)用程序
2.4窗體和基本控件
2.5工程的管理及環(huán)境設(shè)置
20第二章簡(jiǎn)單的VisualBasic程序設(shè)計(jì) 2.212.1程序設(shè)計(jì)方法的發(fā)展1.初期的程序設(shè)計(jì)
高運(yùn)行效率、少占用內(nèi)存為目標(biāo)2.結(jié)構(gòu)化程序設(shè)計(jì)
程序的可讀性、可維護(hù)性為目標(biāo)程序=算法+數(shù)據(jù)結(jié)構(gòu)的面向過(guò)程的程序設(shè)計(jì)3.面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)
降低程序的復(fù)雜性、提高軟件的開法效率和改善工作界面為目標(biāo)程序=對(duì)象+消息的面向?qū)ο蟮某绦蛟O(shè)計(jì)212.1程序設(shè)計(jì)方法的發(fā)展1.初期的程序設(shè)計(jì)22結(jié)構(gòu)化的分解突出過(guò)程(Howtodo?)面向?qū)ο蟮姆纸馔怀稣鎸?shí)世界和抽象的對(duì)象(Whattodo?)目前常用的面向?qū)ο笳Z(yǔ)言有:VisualBasic、VisualC++、VisualFoxPro等優(yōu)點(diǎn)
a.符合人們的思維方法
b.易于軟件的維護(hù)和功能的增減
c.能用繼承的方式減短程序開發(fā)時(shí)間
d.與可視化技術(shù)結(jié)合,改善了工作界面22結(jié)構(gòu)化的分解突出過(guò)程(Howtodo?)232.2對(duì)象的概念一、對(duì)象和類1.類:是創(chuàng)建對(duì)象實(shí)例的模板,是同種對(duì)象的集合與抽象,包含了創(chuàng)建對(duì)象的屬性描述和行為特征的定義.2.對(duì)象:
是類的一個(gè)實(shí)例,繼承了類的屬性、方法。
Vb中常用的對(duì)象有:窗體、控件等。3.控件:以圖標(biāo)的形式放在工具箱中。VB中的控件分為三類:
內(nèi)部控件(標(biāo)準(zhǔn)控件):如工具箱上的控件,20個(gè)
ActiveX控件:“工程/部件”命令加載
可插入對(duì)象:Windows應(yīng)用程序的對(duì)象,如Excel工作表。二、對(duì)象的建立和編輯:
1.對(duì)象的建立:兩種方法2.對(duì)象的選定:?jiǎn)芜x、多選
3.復(fù)制或刪除對(duì)象4.對(duì)象的命名232.2對(duì)象的概念一、對(duì)象和類24三、對(duì)象的三要素:屬性、事件和方法(1)屬性
對(duì)象的性質(zhì),即用來(lái)描述和反映對(duì)象特征的參數(shù)。(2)事件對(duì)象的響應(yīng)稱為事件,它發(fā)生在用戶與應(yīng)用程序交互時(shí)。如單擊控件、鼠標(biāo)移動(dòng)、鍵盤按下等。事件過(guò)程
指附在該對(duì)象上的用戶編寫的程序代碼,是事件的處理程序。事件驅(qū)動(dòng)過(guò)程
24三、對(duì)象的三要素:屬性、事件和方法25VisualBasic程序執(zhí)行步驟:?jiǎn)?dòng)應(yīng)用程序,裝載和顯示窗體窗體(或窗體上的控件)等待事件的發(fā)生事件發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件過(guò)程重復(fù)執(zhí)行(2)和(3),直到遇到“END”結(jié)束語(yǔ)句結(jié)束程序的運(yùn)行或單擊“結(jié)束”按鈕強(qiáng)制停止程序的運(yùn)行25VisualBasic程序執(zhí)行步驟:?jiǎn)?dòng)應(yīng)用程序,裝載26(3)方法
對(duì)象的動(dòng)作,即將一些通用的過(guò)程編寫好并封裝起來(lái),作為方法供用戶直接調(diào)用。對(duì)象方法的調(diào)用格式:
[對(duì)象.]方法[參數(shù)名表]例如:在窗體上顯示一行文字。
Form1.Print”歡迎使用VisualBasic6.0”26(3)方法
對(duì)象的動(dòng)作,即將一些通用的過(guò)272.3建立簡(jiǎn)單的應(yīng)用程序設(shè)計(jì)一個(gè)VisualBasic應(yīng)用程序的通用步驟:
1.設(shè)計(jì)用戶界面的對(duì)象
2.設(shè)置對(duì)象的屬性
3.編寫對(duì)象事件代碼
4.保存文件
5.程序運(yùn)行和調(diào)試(解釋執(zhí)行:
或“運(yùn)行|啟動(dòng)”
或
按F5)
6.建立可執(zhí)行文件。(編譯運(yùn)行:“文件”|“生成…exe”)272.3建立簡(jiǎn)單的應(yīng)用程序設(shè)計(jì)一個(gè)VisualBasi28例:編寫一個(gè)對(duì)輸入字符進(jìn)行轉(zhuǎn)換的
程序轉(zhuǎn)換規(guī)則為:將其中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母,空格不轉(zhuǎn)換,其余轉(zhuǎn)換成“*”。要求每輸入一個(gè)字符,馬上就進(jìn)行判斷和轉(zhuǎn)換。28例:編寫一個(gè)對(duì)輸入字符進(jìn)行轉(zhuǎn)換的
程序轉(zhuǎn)換規(guī)則為:將其中29PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimaaAsString*1aa=Chr$(KeyAscii)SelectCaseaaCase"a"To"z"aa=Chr$(KeyAscii-32)Case"A"To"Z"aa=Chr$(KeyAscii+32)Case""CaseElseaa="*"EndSelectText2.Text=Text2.Text&aaEndSub29PrivateSubText1_KeyPress(K30PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""
EndSubPrivateSubCommand2_Click()EndEndSub30PrivateSubCommand1_Click()31保存和運(yùn)行程序保存窗體文件保存工程程序的運(yùn)行(1)編譯運(yùn)行模式——生成.exe
(2)解釋運(yùn)行模式——F531保存和運(yùn)行程序保存窗體文件322.4窗體和基本控件一、基本屬性
1.Name名稱屬性創(chuàng)建的對(duì)象名稱,有默認(rèn)的名.在程序中,控件名是作為對(duì)象的標(biāo)識(shí)而引用,不會(huì)顯示在窗體上。
2.Caption標(biāo)題屬性 該屬性決定了控件上顯示的內(nèi)容。
3.Height、width、top和left屬性322.4窗體和基本控件一、基本屬性334.Enabled屬性控件是否可操作.當(dāng)設(shè)置為false時(shí),呈暗淡色,禁止用戶進(jìn)行操作.5.Visible屬性控件是否可見.當(dāng)設(shè)置為false時(shí),用戶看不到,但控件本身存在。
6.Font屬性
Fontname字體Fontsize字體大小Fontbold是否是粗體
Fontitalic是否斜體Fontstrikethru是否加一刪除線
Fontunderline是否帶下劃線
例2.2在窗體上建立兩個(gè)命令按鈕
Command1和Command2,Command2
的Font通過(guò)屬性窗口設(shè)置,其余屬性通過(guò)代碼實(shí)現(xiàn)。334.Enabled屬性347.Forecolor前景顏色屬性設(shè)置控件的前景顏色(即正文顏色).其值是一個(gè)16進(jìn)制常數(shù),用戶可以在調(diào)色板中直接選擇所需顏色。8.Backcolor背景顏色屬性9.Backstyle背景風(fēng)格屬性
0-transparent:透明顯示,即控件背景顏色顯示不出來(lái)10.BorderStyle邊框風(fēng)格屬性
0-None:控件周圍沒有邊框
1-FixedSingle:控件帶有單邊框。11.Alignment屬性控件上正文水平對(duì)齊方式
0:正文左對(duì)齊
1:右對(duì)齊 2:居中12.AutoSize屬性控件是否根據(jù)正文自動(dòng)調(diào)整大小,False.347.Forecolor前景顏色屬性35
例:有關(guān)屬性的綜合應(yīng)用。對(duì)象設(shè)置:效果:35例:有關(guān)屬性的綜合應(yīng)用。36
二、窗體
1.屬性:P27StartUpPosition、
MaxButton、MinButtonPicture、BorderStyle(012345)
WindowsState(0-正常、1-最小化、2-最大化)注:Picture屬性可在屬性窗口設(shè)置,也可通過(guò)Loadpicture函數(shù)用代碼來(lái)實(shí)現(xiàn)。函數(shù)格式為:
[對(duì)象].Picture=Loadpicture(“文件路徑\文件名”)
對(duì)象可以是窗體、圖片框、圖像框,缺省時(shí)為窗體。
36372.事件:P28
Click、DblClick、Load、UnLoad
等
Load當(dāng)裝入窗體時(shí)激發(fā),通常用于對(duì)屬性和變量初始化
3.方法:P28Print、Cls、Move、Show、Hide等
當(dāng)在Form_Load事件中使用Print方法時(shí),必須將該窗體的AutoRedraw設(shè)置為True,否則Print方法無(wú)效。
例上述屬性、Click、DblClick和Load
事件演示。書上例子:P28372.事件:P2838
三、標(biāo)簽Label
功能:用于顯示文本(輸出)信息,不能作為輸入信息的界面。屬性:P29
事件:click、Dblclick、Change
例2.5.顯示浮雕效果的文字,實(shí)現(xiàn)方法:字顏色、標(biāo)簽位置四、文本框TextBox
功能:是一個(gè)文本編輯區(qū)域可以輸入,編輯和顯示。
屬性:P30Text:正文內(nèi)容。
MultiLine:是否為多行,默認(rèn)一行。
Locked:是否可被編輯屬性,F(xiàn)alse,表示為可編輯。
PassWordchar:口令字符。
SelStart,SelLength,SelText:選中文本的起始、長(zhǎng)度、內(nèi)容。
例2.6復(fù)制選中的文本38三、標(biāo)簽Label392.常用事件
Change:當(dāng)改變文本框的Text屬性時(shí)會(huì)引發(fā)該事件.KeyPress(KeyAsciiAsInteger):同上,并可返回一個(gè)KeyAscii參數(shù)
KeyAscii為13,按回車鍵;為0去除剛輸入的字符.LostFocus:當(dāng)控件失去焦點(diǎn)時(shí)發(fā)生.GotFocus:當(dāng)控件獲得焦點(diǎn)時(shí)發(fā)生.3.常用方法
[對(duì)象.]SetFocus:是把光標(biāo)移到指定的文本框?qū)ο笾?即設(shè)置焦點(diǎn))。4.文本框的應(yīng)用數(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ù).392.常用事件40五、命令按鈕CommandButton功能:接受用戶輸入的命令。
輸入命令可以有三種方式:鼠標(biāo)單擊Tab鍵焦點(diǎn)到該按鈕快捷鍵
1.屬性:P33Caption:命令按鈕顯示的內(nèi)容,可設(shè)置快捷鍵,例&Ok,顯示
OkValue:檢查該按鈕是否按下.該屬性在設(shè)計(jì)時(shí)無(wú)效.Picture:按鈕可顯示圖片文件(.bmp和.Ico),當(dāng)Style為1時(shí)有效Style:確定顯示的形式.0只能顯示文字,1文字、圖形均可。ToolTipText:設(shè)置工具提示,和Picture結(jié)合使用。
2.事件
Click40五、命令按鈕CommandButton41六、常用方法Vb中使用方法的語(yǔ)法結(jié)構(gòu)是相同的[對(duì)象.]方法[參數(shù)列表]1.print方法形式:[對(duì)象.]print[{spc(n)|tab(n)}][表達(dá)式列表]作用:在對(duì)象上輸出信息。對(duì)象:可以是窗體(form)、圖形框(picturebox)、打印機(jī)。若省略,則在窗體上輸出。41六、常用方法Vb中使用方法的語(yǔ)法結(jié)構(gòu)是相同的42表達(dá)式列表開始位置是由對(duì)象的currentx和currenty屬性決定的,缺省為打印對(duì)象的左上角0,0。例2-9:print方法輸出圖形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub42表達(dá)式列表開始位置是由對(duì)象的currentx和curre432.cls方法形式:[對(duì)象.]cls(如:picture.cls)作用:用于清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。注意:(1)cls方法只清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形,不清除窗體在設(shè)計(jì)時(shí)的文本或圖形。(2)cls方法使用后,currentx和currenty屬性被設(shè)置為0。432.cls方法形式:[對(duì)象.]cls(如:p443.move方法形式:[對(duì)象.]move左邊距離[,上邊距離[,寬度[,高度]]]作用:用于移動(dòng)窗體或控件,并可改變其大小。對(duì)象:可以是窗體及除時(shí)鐘、菜單外的所有控件,省略對(duì)象為窗體。如果對(duì)象是窗體,則“左邊距離”和“上邊距離”以屏幕左邊界和上邊界為準(zhǔn),否則以窗體的左邊界和上邊界為準(zhǔn),寬度和高度表示可改變其大小。443.move方法形式:452.5工程的管理一、工程的組成
工程文件包含了一個(gè)應(yīng)用程序的所有文件:工程文件(.vbp):工程組文件(.vbg):窗體文件(.frm):控件及屬性、事件過(guò)程和自定義過(guò)程 窗體的二進(jìn)制數(shù)據(jù)文件(.frx),自動(dòng)產(chǎn)生同名.frx文件。標(biāo)準(zhǔn)模塊文件(.bas)類模塊文件(.cls) 資源文件(.res) ActiveX控件的文件(.ocx)二、創(chuàng)建、打開和保存工程:“文件”菜單452.5工程的管理一、工程的組成46
三、添加、刪除和保存文件:可利用“文件”和“工程”菜單
1.窗體名和窗體文件名概念
窗體名:窗體的Name屬性,在代碼中用來(lái)引用該窗體,同一工程不能有相同的窗體名;
窗體文件名:窗體存放在磁盤上的文件名,該文件包含了該窗體的所有控件屬性和代碼,同一文件夾不能有相同的文件名。
2.在工程中添加現(xiàn)存的窗體時(shí),只是對(duì)該窗體文件的引用納入工程。因此,如果更改窗體并保存它,會(huì)影響包含此窗體文件的任何工程。
3.在工程中刪除窗體時(shí),僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤上。但是,如果在VB之外刪除一個(gè)窗體文件,VB不能更新此工程文件,當(dāng)打開此工程時(shí),將顯示一個(gè)文件丟失的錯(cuò)誤信息。
窗體文件名窗體名46三、添加、刪除和保存文件:可利用“文件”和“工程”47四、環(huán)境設(shè)置“工具”——”選項(xiàng)”1.”編輯器”選項(xiàng)卡2.“通用”選項(xiàng)卡4.對(duì)窗體文件改名方法:在“工程資源管理器”中--右擊窗體文件--“Form另存為…”
5.保存窗體文件:若只想保存窗體文件而不保存工程文件,可直接在“工程資源管理器”中選定,然后執(zhí)行“文件”菜單中的相應(yīng)選項(xiàng)。47四、環(huán)境設(shè)置“工具”——”選項(xiàng)”4.對(duì)窗體文件改名方法:48
第三章VisualBasic語(yǔ)言基礎(chǔ)
3.1編碼基礎(chǔ)
3.2數(shù)據(jù)類型
3.3常量與變量
3.4運(yùn)算符和表達(dá)式
3.5基本語(yǔ)句
3.6數(shù)組
3.7過(guò)程
3.8程序調(diào)試
48第三章VisualBasic語(yǔ)言基493.1
編碼基礎(chǔ)一、書寫要求:1.VB代碼不區(qū)分字母的大小寫
系統(tǒng)關(guān)鍵字自動(dòng)轉(zhuǎn)換每個(gè)單詞的首字母大寫;用戶自定義行以第一次為準(zhǔn)2.語(yǔ)句書寫自由
一行可書寫幾個(gè)語(yǔ)句,之間用冒號(hào)分隔;一行最多255個(gè)字符;一條語(yǔ)句可分若干行書寫,用續(xù)行符
(空格+下劃線)連接3.注釋有利于程序的維護(hù)和調(diào)試
Rem
或單撇號(hào)“‘”以及“編輯”工具欄的“設(shè)置注釋塊”;
VB中注釋語(yǔ)句會(huì)自動(dòng)變?yōu)榫G色4.保留行號(hào)與標(biāo)號(hào)5.其他注意事項(xiàng):保留字與變量之間至少有一空格;字母“l(fā)”與數(shù)字“1”、字母“o”與數(shù)字“0”的使用。493.1編碼基礎(chǔ)一、書寫要求:503.2
數(shù)據(jù)類型
一、標(biāo)準(zhǔn)數(shù)據(jù)類型:
503.2數(shù)據(jù)類型一、標(biāo)準(zhǔn)數(shù)據(jù)類型:51
1.數(shù)值數(shù)據(jù)類型:
IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整數(shù)(2)Single和Double型用于保存浮點(diǎn)實(shí)數(shù)(3)Currency型是定點(diǎn)實(shí)數(shù)或整數(shù)(4)Byte字節(jié)型用于存儲(chǔ)二進(jìn)制數(shù)511.數(shù)值數(shù)據(jù)類型:(1)Integer和Long522.日期(Date)數(shù)據(jù)類型
按8字節(jié)浮點(diǎn)數(shù)來(lái)存儲(chǔ)。日期范圍:公元100年1月1日~9999年12月31日時(shí)間范圍:0:00:00~23:59:59
表示方法:一般日期形式前后加#來(lái)表示另一種是以數(shù)字序列表示日期和時(shí)間(1)一般日期表示法:使用成對(duì)#將任何可被認(rèn)作日期和時(shí)間的字符括起來(lái)。公元年份默認(rèn)19年,因而填入1995年與填入95年效果一樣,但年的部分輸入0~29間的數(shù)字,則VB自動(dòng)轉(zhuǎn)換為20年。例如:#5/25/24#與#5/25/2024#等價(jià)。
522.日期(Date)數(shù)據(jù)類型53(2)數(shù)字序列表示法數(shù)字序列是雙精度的浮點(diǎn)數(shù),由VB自動(dòng)解釋。序號(hào)的整數(shù)部分表示日期,小數(shù)部分表示時(shí)間。在VB中,基準(zhǔn)日期為公元1899年12月30日,這一天的整數(shù)部分為0,比基準(zhǔn)早的日期序號(hào)為負(fù)數(shù),比其晚的日期序號(hào)為正數(shù),其取值范圍為657434(公元100年1月1日)到2958465(公元9999年12月31日)。小數(shù)部分:以某個(gè)時(shí)間點(diǎn)占一天24小時(shí)的比例表示。如:6:00AM會(huì)以0.25來(lái)表示。-2.5表示1899-12-2812:00:005.75表示1900-1-418:00:00366.05表示1900-12-311:12:00367.05表示1901-1-11:12:0053(2)數(shù)字序列表示法543.邏輯(布爾型)數(shù)據(jù)型:Boolean
當(dāng)邏輯型轉(zhuǎn)換成整型數(shù)據(jù)時(shí):true–(-1)false—(0)
當(dāng)其他類型數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時(shí):非0數(shù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false4.字符串型:String“”
5.對(duì)象數(shù)據(jù)類型:Object
作為32位(4個(gè)字節(jié))地址來(lái)存儲(chǔ)543.邏輯(布爾型)數(shù)據(jù)型:Boolean553.3常量與變量一、常量和變量的命名規(guī)則常量:在程序運(yùn)行中其值不可以改變。變量:在程序運(yùn)行中其存儲(chǔ)的值可以改變。
命名規(guī)則:1.以字母或漢字開頭,后可跟漢字、字母、數(shù)字或下劃線組合,長(zhǎng)度小于等于255個(gè)字符;2.不能使用VB中的關(guān)鍵字;3.VB中不區(qū)分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個(gè)縮寫的前綴來(lái)表明該變量的數(shù)據(jù)類型。如:strMystring、intCount553.3常量與變量一、常量和變量的命名規(guī)則56VisualBasic6.0的關(guān)鍵字有:
AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents5657
二、常量
(一)直接常量有數(shù)值常量(整數(shù)、長(zhǎng)整數(shù)、定點(diǎn)數(shù)和浮點(diǎn)數(shù))、字符串常量、布爾常量、日期常量
(二)符號(hào)常量
1.系統(tǒng)提供的常量系統(tǒng)定義常量位于對(duì)象庫(kù)中,可通過(guò)“對(duì)象瀏覽器”查看.
例vbNormal、vbMinimized、vbMaximized、vbblue等
form1.windowsstate=vbmaximized‘將窗口極大化
form1.windowsstate=2‘與上面的語(yǔ)句等價(jià)的57二、常量582.用戶聲明常量
形式:
Const常量名[AS類型]=表達(dá)式省略[AS類型],常量的類型由表達(dá)式值的類型決定,也可在常量后加類型符。
表達(dá)式:可以是數(shù)值常數(shù)、字符串常數(shù)以及由運(yùn)算符組成的表達(dá)式。對(duì)于數(shù)值常數(shù)除了可用十進(jìn)制表示外,還可以使用十六進(jìn)制數(shù)(數(shù)值前加&H)和八進(jìn)制數(shù)(數(shù)值前加&O)。
為使與變量名區(qū)分,一般常量名使用大寫字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O144582.用戶聲明常量59
三、變量
1.用Dim語(yǔ)句顯式聲明變量
形式:Dim變量名[AS類型]Dim變量名類型符例DimiCountAsinteger,sAllsumAssingle
等價(jià)于DimiCount%,sAllsum!
對(duì)于字符串變量,根據(jù)其長(zhǎng)度是否固定,有兩種方法:
Dim字符串變量名AsStringDim字符串變量名AsString*字符數(shù)
2.隱式聲明
未進(jìn)行上述的聲明而直接使用,其類型為Variant類型。建議不使用。注意:
在通用聲明處加OptionExplicit
語(yǔ)句可強(qiáng)制顯式聲明變量。59三、變量603.4運(yùn)算符和表達(dá)式一、運(yùn)算符
1.算術(shù)運(yùn)算符例:5+10mod10\9/3+2^2結(jié)果:10取ia=3603.4運(yùn)算符和表達(dá)式一、運(yùn)算符取ia=3612.字符串運(yùn)算符:
&、+
“&”和
“
+”,都是將兩個(gè)字符串拼接起來(lái)。
"123"+"456"結(jié)果"123456""123"&"456"結(jié)果"123456"
區(qū)別:若+的兩旁的操作數(shù)均為數(shù)值型則進(jìn)行算術(shù)加;若一個(gè)為數(shù)字字符型,另一個(gè)為數(shù)值型,則自動(dòng)將數(shù)字字符轉(zhuǎn)換為數(shù)值,然后進(jìn)行算術(shù)加;若一個(gè)為非數(shù)字字符型,另一個(gè)為數(shù)值型,則出錯(cuò)。&則不管什么類型,強(qiáng)制轉(zhuǎn)換為字符型進(jìn)行拼接。
例如:"abcdef"&12345'結(jié)果為"abcdef12345"
"abcdef"+12345'出錯(cuò)
"123"&456'結(jié)果為"123456"
"123"+456'結(jié)果為579
Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘結(jié)果為123445
注意:(1)"123"+True'結(jié)果為122True轉(zhuǎn)換為數(shù)值-1,F(xiàn)alse轉(zhuǎn)換為數(shù)值0(2)使用“&”時(shí),最好在兩側(cè)的操作數(shù)間加入一個(gè)空格。因?yàn)長(zhǎng)ong類型變量的類型符以及八進(jìn)制、十六進(jìn)制數(shù)值表示法的起始字符也為“&”。612.字符串運(yùn)算符:&、+623.關(guān)系運(yùn)算符
將兩個(gè)操作數(shù)進(jìn)行大小比較,結(jié)果為邏輯量。
62634.邏輯運(yùn)算符說(shuō)明:1、Not:進(jìn)行取反運(yùn)算;
2、And:操作數(shù)均為真時(shí),結(jié)果才為真;
3、Or:操作數(shù)中有一個(gè)為真時(shí),結(jié)果為真;
4、Xor:操作數(shù)相反時(shí),結(jié)果才為真;
5、Eqv:操作數(shù)相同時(shí),結(jié)果才為真;
6、Imp:第1個(gè)操作數(shù)為真,第2個(gè)為假時(shí),結(jié)果才為假,其余結(jié)果均為真。
7、優(yōu)先級(jí):Not>And>OR>Xor>Eqv>Imp634.邏輯運(yùn)算符說(shuō)明:1、Not:進(jìn)行取反運(yùn)算64如果邏輯運(yùn)算符對(duì)數(shù)值進(jìn)行運(yùn)算,則以數(shù)字的二進(jìn)制值逐位進(jìn)行邏輯運(yùn)算。(1)And運(yùn)算符常用于屏蔽某些位。(2)Or運(yùn)算符常用于把某些位置1。(3)連續(xù)兩次進(jìn)行Xor運(yùn)算,可恢復(fù)原值。例:10and710or764如果邏輯運(yùn)算符對(duì)數(shù)值進(jìn)行運(yùn)算,則以數(shù)字的二進(jìn)制值逐位進(jìn)行65二、表達(dá)式
1.表達(dá)式組成
變量、常量、函數(shù)、運(yùn)算符和圓括號(hào)
2.書寫規(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)換運(yùn)算結(jié)果的數(shù)據(jù)類型向精度高的數(shù)據(jù)類型靠.Integer<Long<Single<Double<Currency4.優(yōu)先級(jí)算術(shù)運(yùn)算符>字符運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算65二、表達(dá)式66表達(dá)式書寫舉例sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)a*b*c*d/e/f/g或a*b*c*d/(e*f*g)66表達(dá)式書寫舉例sin(45*3.14/180)+(exp1.數(shù)學(xué)函數(shù):Rnd函數(shù)返回0和1(包括0但不包括1)之間的雙精度隨機(jī)數(shù).
例:產(chǎn)生1~100的隨機(jī)整數(shù):Int(Rnd*100)+1
產(chǎn)生100~3000的隨機(jī)整數(shù):Int(Rnd*2901)+100
隨機(jī)產(chǎn)生“A”~“Z”的字符:Chr(Int(Rnd*26+65))
注意:
(1)產(chǎn)生一定范圍內(nèi)的隨機(jī)整數(shù)通常表示為:
Int(Rnd*范圍)+基數(shù)或Int(Rnd*范圍+基數(shù))(2)每次運(yùn)行時(shí),要產(chǎn)生不同序列的隨機(jī)數(shù),執(zhí)行Randomize語(yǔ)句。
Randomize[number]
注:函數(shù)名后有$符號(hào),表示函數(shù)返回值為字符串。三、常用內(nèi)部函數(shù)1.數(shù)學(xué)函數(shù):三、常用內(nèi)部函數(shù)2.轉(zhuǎn)換函數(shù)
Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函數(shù):Date返回系統(tǒng)日期
Time返回系統(tǒng)時(shí)間
Now返回系統(tǒng)日期和時(shí)間Year返回年份(1)DateAdd增減日期函數(shù)(2)DateDiff間隔日期函數(shù)三、常用內(nèi)部函數(shù)2.轉(zhuǎn)換函數(shù)三、常用內(nèi)部函數(shù)4.字符串編碼及操作函數(shù)
(1)字符串編碼
Windows系統(tǒng)對(duì)字符采用了DBCS編碼,中文2字節(jié),西文1字節(jié)
VB中字符Unicode編碼,任何字符2字節(jié).Len(“中國(guó)good”)為6LenB(“中國(guó)good”)為12StrConv()進(jìn)行DBCS與Unicode之間轉(zhuǎn)換.(2)字符串函數(shù)
Mid$("ABCDEFG",2,3)"BCD"InStr(2,“EFABCDEFG","EF") 7
注:函數(shù)的自變量中有M,表示M=0區(qū)分大小寫,M=1不區(qū)分,省略M區(qū)分大小寫。4.字符串編碼及操作函數(shù)5.格式輸出函數(shù)Format()
功能:Format()可以使數(shù)值、日期或字符串按指定的格式輸出。格式:Format(表達(dá)式[,格式字符串])
其中,表達(dá)式:為要格式化的數(shù)值、日期和字符串類型表達(dá)式。格式字符串:表示按其指定的格式輸出表達(dá)式的值。格式字符串有三類:
(1)數(shù)值格式化:將數(shù)值表達(dá)式的值按“格式字符串”指定的格式輸出。(2)日期和時(shí)間格式化(3)字符串格式化格式字符串要加雙引號(hào)5.格式輸出函數(shù)Format()數(shù)組元素敦化職業(yè)教育中心課件723.5基本語(yǔ)句3.5.1賦值語(yǔ)句
形式:[LET]變量名=表達(dá)式
作用:將表達(dá)式的值賦值給變量名.
一般用于給變量賦值或?qū)丶O(shè)定屬性值.
例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”
注意:
1、當(dāng)表達(dá)式的類型與變量的類型不一致時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度。如:iA%=10/3iA中的結(jié)果為3
2、雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“=”表示,VB系統(tǒng)會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào)。
3、賦值號(hào)左邊只能是變量,不能是常量或表達(dá)式。
4、不能在一句賦值語(yǔ)句中,同時(shí)給多個(gè)變量賦值。
723.5基本語(yǔ)句3.5.1賦值語(yǔ)句733.5.2人機(jī)交互函數(shù)和過(guò)程
VB與用戶之間的直接交互是通過(guò)InputBox()函數(shù)、MsgBox()函數(shù)和
MsgBox過(guò)程進(jìn)行的。
1.InputBox函數(shù)
InputBox(提示[,標(biāo)題][,缺省][,x坐標(biāo)位置][,y坐標(biāo)位置])
其中:提示提示信息,標(biāo)題對(duì)話框標(biāo)題,缺省輸入?yún)^(qū)缺省值函數(shù)返回字符類型.
例要在屏幕上顯示圖示的對(duì)話框:733.5.2人機(jī)交互函數(shù)和過(guò)程74相應(yīng)的語(yǔ)句如下:DimstrNameAsString*40strName=InputBox(“請(qǐng)輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以使用如下語(yǔ)句:DimstrNameAsString*40,strS1AsString*40strS1=“請(qǐng)輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox(strS1,“輸入框”,,100,100)當(dāng)鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.74相應(yīng)的語(yǔ)句如下:75
2.
MsgBox函數(shù)和MsgBox過(guò)程按鈕值如下:函數(shù)返回所選按鈕整數(shù)值:7576
例3.2編一帳號(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判斷數(shù)字IsNumeric函數(shù)密碼PassWordChar為“*”,MsgBox函數(shù)設(shè)置密碼錯(cuò)對(duì)話框.76例3.2編一帳號(hào)和密碼檢驗(yàn)程序。773.5.3選擇結(jié)構(gòu)
1.If…Then語(yǔ)句(單分支結(jié)構(gòu))
If<表達(dá)式>Then
語(yǔ)句塊
EndIf
或
If<表達(dá)式>Then<語(yǔ)句>
例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y.
Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t773.5.3選擇結(jié)構(gòu)例:已知兩個(gè)數(shù)x和y,比較它782.If…Then…Else語(yǔ)句(雙分支結(jié)構(gòu))
(1)If<表達(dá)式>Then
<語(yǔ)句塊1>
Else<語(yǔ)句塊2>EndIf
(2)If<表達(dá)式>Then<語(yǔ)句1>Else<語(yǔ)句2>
計(jì)算分段函數(shù)782.If…Then…Else語(yǔ)句(雙分支結(jié)構(gòu))793.If…Then…ElseIf語(yǔ)句(多分支結(jié)構(gòu))
形式:
If<表達(dá)式1>Then <語(yǔ)句塊1>ElseIf<表達(dá)式2>Then <語(yǔ)句塊2> … [Else
語(yǔ)句塊n+1]EndIf793.If…Then…ElseIf語(yǔ)句(多分支結(jié)構(gòu))80例
已知變量strC中存放了一個(gè)字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。用多分支結(jié)構(gòu)實(shí)現(xiàn):
IfUcase(strC)>="A"AndUcase(strC)<="Z"Then
PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數(shù)字字符"Else PrintstrC+"其他字符"EndIf不管有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語(yǔ)句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語(yǔ)句塊,否則什么也不執(zhí)行。.
ElseIf不能寫成
ElseIf。80例已知變量strC中存放了一個(gè)字符,判斷該字符是字母81例已知百分制成績(jī)mark,顯示對(duì)應(yīng)的五級(jí)制成績(jī)哪些正確,哪些錯(cuò)誤?81例已知百分制成績(jī)mark,顯示對(duì)應(yīng)的五級(jí)制成績(jī)82
4.If語(yǔ)句的嵌套
If語(yǔ)句的嵌套是指If或Else后面的語(yǔ)句塊中又包含If語(yǔ)句。形式如下:
If<表達(dá)式1>Then
If<表達(dá)式11>Then…EndIf…EndIf
例已知x,y,z三個(gè)數(shù),使得x>y>z用一個(gè)IF語(yǔ)句和一個(gè)嵌套的IF語(yǔ)句實(shí)現(xiàn)Ifx<yThent=x:x=y:y=t
Ify<zThent=y:y=z:z=t
Ifx<yThent=x:x=y:y=tEndIf
EndIf82例已知x,y,z三個(gè)數(shù),Ifx<y835.SelectCase語(yǔ)句(情況語(yǔ)句)形式:
SelectCase變量或表達(dá)式
Case表達(dá)式列表1
語(yǔ)句塊1 Case表達(dá)式列表2
語(yǔ)句塊2 … [CaseElse
語(yǔ)句塊n+1] EndSelect變量:只能含有一個(gè)表達(dá)式:數(shù)值型或字符串835.SelectCase語(yǔ)句(情況語(yǔ)句)變量:只能含84例:已知坐標(biāo)點(diǎn)(x,y),判斷其落在哪個(gè)象限。
哪個(gè)能實(shí)現(xiàn),哪個(gè)不能實(shí)現(xiàn)?方法一
Ifx>0Andy>0ThenPrint"在第一象限" ElseIfx<0Andy>0ThenPrint"在第二象限" ElseIfx<0Andy<0ThenPrint"在第三象限" ElseIfx>0Andy<0ThenPrint"在第四象限" EndIf
方法二SelectCasex,yCasex>0Andy>0 Print"在第一象限"Casex<0Andy>0 Print"在第二象限"Casex<0Andy<0 Print"在第三象限"Casex>0Andy<0 Print"在第四象限"EndSelect84例:已知坐標(biāo)點(diǎn)(x,y),判斷其落在哪個(gè)象限。哪個(gè)能實(shí)853.5.4循環(huán)結(jié)構(gòu)
1.For循環(huán)語(yǔ)句(用于循環(huán)次數(shù)已知)
形式:
For循環(huán)變量=初值to終值[Step步長(zhǎng)]
語(yǔ)句塊
[ExitFor]
語(yǔ)句塊
Next循環(huán)變量
循環(huán)變量<=終值
語(yǔ)句塊
ExitFor
語(yǔ)句塊
循環(huán)變量加步長(zhǎng)
T
F
循環(huán)變量得初值
循環(huán)體例計(jì)算1~100的奇數(shù)和
Dimi%,s%s=0Fori=1To100step2 s=s+iNexti
853.5.4循環(huán)結(jié)構(gòu)循環(huán)變量<=終值86>0初值<終值=1時(shí),可省略<0初值>終值=0死循環(huán)循環(huán)次數(shù)要注意:出了循環(huán),循環(huán)控制變量值的問(wèn)題。例程序段:
Fori=2To13Step3循環(huán)執(zhí)行次數(shù)
Printi,輸出i的值分別為:Nexti25811
Print:Print“I=“,i出了循環(huán)輸出為:I=14
在循環(huán)體內(nèi)對(duì)循環(huán)控制變量可多次引用;但最好不要對(duì)其賦值,否則影響原來(lái)的循環(huán)控制規(guī)律。步長(zhǎng)86>0初值<終值=1時(shí),可省略循環(huán)次數(shù)要注意:87例
改變循環(huán)控制變量對(duì)循環(huán)的影響。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print"第";j;"次循環(huán)i=";iNextiPrint"退出循環(huán)后i=";iEndSub正常情況:i=1,3,5,7,9,11,13,15,17,19現(xiàn)在:i=4,9,14,19例
輸出可打印的ASCII碼字符與它的編碼值。
87例改變循環(huán)控制變量對(duì)循環(huán)的影響。例輸出可打印的A882.Do…Loop循環(huán)語(yǔ)句(用于控制循環(huán)次數(shù)未知)形式1:
Do{While|Until}<條件>
語(yǔ)句塊
[ExitDo
語(yǔ)句塊]Loop形式2:
Do
語(yǔ)句塊
[ExitDo
語(yǔ)句塊] Loop{While|Until}<條件>882.Do…Loop循環(huán)語(yǔ)句(用于控制循環(huán)次數(shù)未知)形式89例
我國(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)求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex<26x=x*1.008n=n+1LoopPrintn,xEndSub89例我國(guó)有13億人口,按人口年增長(zhǎng)0.8%計(jì)算,多少年903.While…Wend循環(huán):(類似于DoWhile…Loop)格式為:While<表達(dá)式><語(yǔ)句序列>Wend執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,如果表達(dá)式的值為True,則執(zhí)行循環(huán)體,遇到Wend語(yǔ)句后,返回到While語(yǔ)句并再對(duì)條件進(jìn)行測(cè)試,如為True,則繼續(xù)執(zhí)行循環(huán)體,如為False,則退出循環(huán)體。例:計(jì)算1+2+3+……+100Dimiasinteger,sasintegeri=1s=0Whilei<=100s=s+ii=i+1Wend
903.While…Wend循環(huán):(類似于DoWhil91本節(jié)常見錯(cuò)誤1.不循環(huán)或死循環(huán)的問(wèn)題
主要是循環(huán)條件、循環(huán)初值、循環(huán)終值、循環(huán)步長(zhǎng)的設(shè)置有問(wèn)題。2.循環(huán)結(jié)構(gòu)中缺少配對(duì)的結(jié)束語(yǔ)句
For少配對(duì)的Next3.循環(huán)嵌套時(shí),內(nèi)外循環(huán)交叉4.累加、連乘時(shí),存放累加、連乘結(jié)果的變量賦初值問(wèn)題
(1)一重循環(huán)在一重循環(huán)中,存放累加、連乘結(jié)果的變量初值設(shè)置應(yīng)在循環(huán)語(yǔ)句前。(2)多重循環(huán):這要視具體問(wèn)題分別對(duì)待。如:1!+2!+3!+…+n!5.大數(shù)相乘產(chǎn)生“溢出”問(wèn)題91923.5.5其他輔助控制語(yǔ)句
1.GoTo語(yǔ)句形式:GoTo{標(biāo)號(hào)|行號(hào)}
作用:無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句.2.開關(guān)語(yǔ)句:On-GoTo語(yǔ)句
3.Exit語(yǔ)句作用:退出某種控制結(jié)構(gòu)的執(zhí)行。
4.End語(yǔ)句作用:End結(jié)束一個(gè)程序的運(yùn)行;其余表示某個(gè)結(jié)構(gòu)的結(jié)束,與對(duì)應(yīng)的結(jié)構(gòu)語(yǔ)句配對(duì)出現(xiàn)。923.5.5其他輔助控制語(yǔ)句936.With語(yǔ)句形式如下:With對(duì)象 語(yǔ)句塊
EndWith
作用:對(duì)某個(gè)對(duì)象執(zhí)行一系列的操作,而不用重復(fù)指出對(duì)象的名稱。
WithLabel1
.Height=2000
.Width=2000
.FontSize=22
.Caption="MyLabel"EndWithLabel1.Height=2000Label1.Width=2000Label1.FontSize=22Label1.Caption="MyLabel"
等價(jià)936.With語(yǔ)句等價(jià)943.6數(shù)組1.引例例:若要求100個(gè)學(xué)生的平均成績(jī),然后統(tǒng)計(jì)高于平均分的人數(shù)。
aver=0Fori=1To100mark=InputBox("輸入"+i+"位學(xué)生的成績(jī)")
aver=aver+markNexti
aver=aver/100但若要統(tǒng)計(jì)高于平均分的人數(shù),則無(wú)法實(shí)現(xiàn)。已有知識(shí)解決方法:再重復(fù)輸入成績(jī),帶來(lái)兩個(gè)問(wèn)題:(1)輸入數(shù)據(jù)的工作量成倍增加;(2)若本次輸入的成績(jī)與上次不同,則統(tǒng)計(jì)的結(jié)果不正確。解決此問(wèn)題的根本方法,引入數(shù)組,始終保持輸入的數(shù)據(jù),一次輸入,多次使用。943.6數(shù)組1.引例95引入數(shù)組
dimmark(1to100)asintegerdimiasinteger,n%,aver!n=0fori=1to100aver=aver+mark(i)nexti
aver=aver/100fori=1to100ifmark(i)>averthenn=n+1nexti95引入數(shù)組962.數(shù)組的概念數(shù)組不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合。在程序中使用數(shù)組的最大好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,和循環(huán)語(yǔ)句結(jié)合使用,使得程序書寫簡(jiǎn)潔。數(shù)組元素:數(shù)組中的某一個(gè)數(shù)據(jù)項(xiàng)。數(shù)組元素的使用同簡(jiǎn)單變量的使用。
數(shù)組:必須先聲明后使用。
兩類數(shù)組:靜態(tài)(定長(zhǎng))數(shù)組、動(dòng)態(tài)(可變長(zhǎng))數(shù)組。962.數(shù)組的概念973.靜態(tài)數(shù)組及聲明
靜態(tài)數(shù)組:在聲明時(shí)已確定了數(shù)組元素個(gè)數(shù)。
形式:
Dim數(shù)組名(下標(biāo)1[,下標(biāo)2…])[As類型]
維數(shù):幾個(gè)下標(biāo)為幾維數(shù)組,最多60維。
下標(biāo):
[下界To]上界下界最小為-32768,上界最大為32767,省略下界為0。下標(biāo)必須為常數(shù),不可以為表達(dá)式或變量。
每一維大?。荷辖纾陆?1
數(shù)組大?。好恳痪S大小的乘積
As類型:如果省略,默認(rèn)為變體類型
例:Dimmark(1to100)AsInteger973.靜態(tài)數(shù)組及聲明98DimlArray(0To3,0To4)AsLong
共有4×5個(gè)元素等價(jià)于:DimlArray(3,4)AsLong注意:
(1)下界缺省為0,也可再重新定義數(shù)組的缺省下界為1。
OptionBase198DimlArray(0To3,0To99注意:(2)在靜態(tài)數(shù)組聲明時(shí)的下標(biāo)只能是常數(shù),而在其他地方出現(xiàn)的數(shù)組元素的下標(biāo)可以是變量,要加以區(qū)分。如:
n=Inputbox(“輸入n”)
Dimx(n)AsSingle
'錯(cuò)誤的聲明,下標(biāo)是變量
x(n)=100
'數(shù)組元素的下標(biāo)可以是變量,但要防止下標(biāo)越界的錯(cuò)誤發(fā)生
(3)在數(shù)組聲明中的下標(biāo)說(shuō)明了數(shù)組的整體,即每維的大小;而在程序其他地方出現(xiàn)的下標(biāo)表示數(shù)組中的一個(gè)元素。兩者寫法形式相同,但意義不同。例如:Dimx(10)AsInteger '聲明了x數(shù)組有11個(gè)元素
x(10)=100 '對(duì)x(10)這個(gè)數(shù)組元素賦值99注意:1004.動(dòng)態(tài)數(shù)組及聲明動(dòng)態(tài)數(shù)組是指在聲明數(shù)組時(shí)未給出數(shù)組的大小(省略括號(hào)中的下標(biāo)),當(dāng)要使用它時(shí),隨時(shí)用ReDim語(yǔ)句重新指出數(shù)組大小。形式如下:
Dim數(shù)組名()ReDim數(shù)組名(下標(biāo)1[,下標(biāo)2…])[As類型]
例SubForm_Load()Dimx()AsSingle
…n=Inputbox(“輸入n”)
ReDimx(n)…EndSub1004.動(dòng)態(tài)數(shù)組及聲明101注意
Dim、Private、Public變量聲明語(yǔ)句是說(shuō)明性語(yǔ)句,可出現(xiàn)在過(guò)程內(nèi)或通用聲明段;ReDim語(yǔ)句是執(zhí)行語(yǔ)句,只能出現(xiàn)在過(guò)程內(nèi)。在過(guò)程中可多次使用ReDim來(lái)改變數(shù)組的大小和維數(shù)。使用ReDim語(yǔ)句會(huì)使原來(lái)數(shù)組中的值丟失,可以在ReDim語(yǔ)句后加Preserve參數(shù)來(lái)保留數(shù)組中的數(shù)據(jù)。使用Preserve只能改變最后一維的大小,前面幾維大小不能改變。ReDim中的下標(biāo)可以是常量,也可以是有了確定值的變量。靜態(tài)數(shù)組在程序編譯時(shí)分配存儲(chǔ)單元,動(dòng)態(tài)數(shù)組在運(yùn)行時(shí)分配存儲(chǔ)單元。101注意102例:Redim和Preserve語(yǔ)句的使用Dima()asintegerPrivateSubForm_Click()Dima()AsIntegerReDima(3,2)Fori=0To3Forj=0To2a(i,j)=i*jPrint"a(";i;",";j;")=";a(i,j);""NextjNextiEndSub102例:Redim和Preserve語(yǔ)句的使用103PrivateSubForm_Click()Dima()AsIntegerReDima(3,2)Fori=0To3Forj=0To2a(i,j)=i*jNextjNextiReDimPreservea(3,4)Forj=3To4a(3,j)=j+10NextjFori=0To3Forj=0To4Print"a(";i;",";j;")=";a(i,j);""NextjNextiEndSub103PrivateSubForm_Click()1045.數(shù)組的基本操作應(yīng)掌握的基本操作有:數(shù)組初始化、數(shù)組輸入、輸出、求數(shù)組中最大(最?。┰丶跋聵?biāo)、求和、平均值、排序和查找等。A.數(shù)組元素的賦初值
(1)用循環(huán)
Dimia(1to10)AsInteger
Fori=1To10 ia(i)=0Nexti
(2)Array函數(shù)
DimibAsVariantib=Array(“abc”,
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 飛鳥集讀后感范文
- 招生實(shí)踐報(bào)告
- 心理健康教育工作總結(jié)15篇
- 關(guān)于美德演講稿范文800字(32篇)
- 暑假護(hù)士見習(xí)報(bào)告(3篇)
- 浙江省麗水市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷及答案
- 湖北省黃岡市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版質(zhì)量測(cè)試((上下)學(xué)期)試卷及答案
- 市政道路路基土方、石方施工規(guī)范征求意見稿
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版期中考試(上學(xué)期)試卷及答案
- 上海市縣(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版開學(xué)考試((上下)學(xué)期)試卷及答案
- 2022-2023學(xué)年北京市海淀區(qū)中關(guān)村中學(xué)八年級(jí)(上)期中數(shù)學(xué)試卷【含解析】
- 2.1 認(rèn)識(shí)自己 課件-2024-2025學(xué)年道德與法治七年級(jí)上冊(cè)(統(tǒng)編版2024)
- 小學(xué)五年級(jí)上學(xué)期信息科技《我們?nèi)ツ膬骸方虒W(xué)課件
- 2024智能變電站新一代集控站設(shè)備監(jiān)控系統(tǒng)技術(shù)規(guī)范部分
- 河北省邯鄲市思想政治高一上學(xué)期2024-2025學(xué)年測(cè)試試題及答案解析
- 2021新青島版六三制三年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)總結(jié)期末復(fù)習(xí)背誦資料
- 2004年三中會(huì)議精神測(cè)試題及答案
- 2024年浙江省應(yīng)急管理行政執(zhí)法競(jìng)賽題庫(kù)-上(單選、多選題)
- 【2013浙G32】機(jī)械連接竹節(jié)樁圖集
- 安全生產(chǎn)法律法規(guī)清單2024.07
- 四肢關(guān)節(jié)病癥推拿治療-梨狀肌綜合癥患者的推拿治療
評(píng)論
0/150
提交評(píng)論