版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章VisualBasic程序開發(fā)環(huán)境
第2頁1.1VB簡介1.2VB的啟動與退出1.3VB集成開發(fā)環(huán)境第3頁1.1VB簡介
VisualBasic發(fā)展歷史
VisualBasic語言特點
提供可視化編程工具面向?qū)ο蟮某绦蛟O(shè)計思想事件驅(qū)動的編程機(jī)制結(jié)構(gòu)化程序設(shè)計語言強(qiáng)大的數(shù)據(jù)庫功能網(wǎng)絡(luò)功能第4頁1.2VB的啟動與退出
1.VB的啟動2.VB的運(yùn)行方式:
VB編程時,同時解釋生成偽代碼,執(zhí)行時經(jīng)解釋變成目標(biāo)碼,生成EXE文件,即可脫離VB環(huán)境直接在Windows下運(yùn)行。3.VB的退出第5頁1.3VB集成開發(fā)環(huán)境
主窗口窗體窗口(Form)工程資源管理器(ProjectExplorer)屬性(Properties)窗口工具箱(ToolBox)獲取幫助第6頁
第7頁
第8頁
第9頁
第2章創(chuàng)建簡單的VB應(yīng)用程序
第11頁2.1簡單VB應(yīng)用程序的創(chuàng)建過程2.2對象的建立和編輯2.3對象的屬性、事件和方法2.4編寫代碼2.5程序的保存、裝入和運(yùn)行第12頁2.1簡單VB應(yīng)用程序的創(chuàng)建過程簡單加法器設(shè)計實例編程步驟第13頁簡單加法器設(shè)計實例簡單加法器可執(zhí)行文件簡單加法器源程序第14頁編程步驟
創(chuàng)建VisualBasic應(yīng)用程序需要:⑴
創(chuàng)建用戶界面⑵
設(shè)置用戶界面屬性⑶
編寫事件驅(qū)動代碼
運(yùn)行程序方法
第15頁2.2對象的建立和編輯
控件:工具箱中每一個圖標(biāo)就代表了一個控件。例如:文本框、標(biāo)簽框、命令按鈕等。對象:VB中控件和窗體統(tǒng)稱為對象。
第16頁對象的建立
對象的建立有兩種方法:①單擊工具箱中控件,在窗口的適當(dāng)位置拖動鼠標(biāo)。②雙擊工具箱中控件。對象建立后,可以移動、復(fù)制、刪除、改變大小。第17頁對象的編輯
1.對象的移動
2.對象的縮放
3.對象的復(fù)制與刪除
4.成組選擇
5.控件數(shù)組
6.使用網(wǎng)格
7.控件格式化
8.對象的命名
第18頁2.3對象的屬性、事件和方法
在面向?qū)ο蟮某绦蛟O(shè)計中,“對象”是系統(tǒng)中的基本運(yùn)行實體。建立一個對象后,其操作是通過與該對象有關(guān)的屬性、事件和方法來描述的。屬性、事件和方法也稱為對象的三要素。
第19頁對象的屬性
1.
對象的屬性屬性是一個對象的特征,不同的對象有不同的屬性。2.屬性的設(shè)置
(1)可以通過屬性窗口設(shè)置對象屬性(2)可以在程序中用程序語句設(shè)置。格式:對象.屬性=屬性值例如:Text1.text=“VisualBasic程序設(shè)計”第20頁對象的事件
1.事件(Event)事件是由系統(tǒng)事先設(shè)計好的,能夠被某一對象識別的動作。如單擊(Click)、雙擊(DblClick)、鍵盤按下(KeyPress)、載入窗體(Load)、移動鼠標(biāo)(MouseMove)等。2.事件過程(EventProcedure)
是VB響應(yīng)某個事件后,所執(zhí)行的一段程序代碼。格式:
PrivateSub對象名_事件([參數(shù)列表])……事件響應(yīng)程序代碼……EndSub例如:“簡單加法器”設(shè)計實例中,在運(yùn)行程序時,若用戶單擊命令按鈕ADD時,發(fā)生了鼠標(biāo)單擊(Click)事件。第21頁對象的方法3.方法(Method)是特殊的過程和函數(shù),是特定對象的一部分。 格式:對象名.方法[參數(shù)列表]例如:Print方法
Form1.Print"您好?。?!"Printer.Print"您好!?。?
Print"您好?。?!"
第22頁2.4編寫代碼程序代碼窗口編寫過程代碼代碼編輯器第23頁2.5程序的保存、裝入和運(yùn)行1.保存程序保存窗體文件
保存工程文件
2.程序的裝入
3.程序的運(yùn)行
解釋運(yùn)行
處理程序中的錯誤
調(diào)試程序
生成可執(zhí)行文件
第3章窗體第25頁3.1對象的基本屬性3.2幾個常用控件3.3窗體的屬性、事件與方法3.4多窗體第26頁3.1語句和語法規(guī)則1.Name(名稱)屬性該屬性是所有對象都具有的屬性,它是所創(chuàng)建對象的名稱。
2.Caption(標(biāo)題)屬性字符型。表示所創(chuàng)建對象的標(biāo)題,將顯示在對象上,窗體的標(biāo)題將顯示在窗體的標(biāo)題欄中。3.Height和Width(高度、寬度)屬性用來設(shè)置和返回控件對象的高度和寬度,決定控件對象的大小,4.Top和Left(頂邊距、左邊距)屬性Top和Left屬性決定了控件對象在其父對象中的位置。第27頁5.Enabled(可用)屬性True:允許用戶操作,并對操作做出響應(yīng)。False:禁止用戶操作,呈暗淡色。例如:Text1.Enabled=False 6.Visible(可見)屬性True:程序運(yùn)行時控件可見。False:程序運(yùn)行時控件隱藏起來。例如:Text1.Visible=True7.Font(字體)屬性FontName:設(shè)置字體類型,屬性值為字符型。如:“宋體”、“楷體”。FontSize:設(shè)置字體大小,屬性值為整型。如:28、32。FontBold:設(shè)置字體是否粗體,屬性值為邏輯型。FontItalic:設(shè)置字體是否斜體,屬性值為邏輯型。FontStrikethru:設(shè)置文本是否加刪除線,屬性值為邏輯型。FontUnderline:設(shè)置文本是否加下劃線,屬性值為邏輯型。第28頁【例3.1】設(shè)計一個程序,程序運(yùn)行后在窗體上顯示2個文本框,文本框中顯示“沈陽”二字。第29頁
8.BackColor(背景色)屬性例如:Form1.BackColor=&HFF00AA 將窗體背景色設(shè)置為紫色9.ForeColor(前景色)屬性
10.BackStyle(背景樣式)屬性
0—Transparent:透明,即不顯示控件背景色。
1—Opaque:不透明,此時可為控件設(shè)置背景顏色。11.BorderStyle(邊框樣式)屬性 0—None:控件周圍沒有邊框。1—FixedSingle:控件帶有單邊框。
12.Alignment(對齊樣式)屬性0—LeftJustify:正文左對齊。1—RightJustify:正文右對齊。2—Center:正文居中對齊。第30頁【例3.2】設(shè)計程序,使其在窗體上顯示5個外觀不同的標(biāo)簽控件。第31頁
13.AutoSize(自動調(diào)整)屬性True:可以自動調(diào)整大小。False:保持原設(shè)置時的大小,正文若太長將自動裁剪。
14.TabIndex屬性TabIndex屬性值決定了對象的Tab順序,即按Tab鍵時焦點在各個控件間移動的順序。
15.控件默認(rèn)屬性每個控件對象有且只有一個屬性可以直接由控件名來代表。例如,可以用Text1=“VisualBasic”來代替Text1.Text=“VisualBasic”。第32頁3.2幾個常用控件
標(biāo)簽文本框命令按鈕第33頁標(biāo)簽
標(biāo)簽主要用來顯示文本信息。1.屬性⑴
標(biāo)簽的常用屬性有:Name、Caption、Height、Width、Top、Left、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline、Alignment和Autosize、BorderStyle等。⑵
WordWrap屬性WordWrap屬性控制Caption屬性的內(nèi)容能否自動換行,屬性值為邏輯型,默認(rèn)值為False。將AutoSize屬性設(shè)置為True時WordWrap屬性的設(shè)置才起作用。第34頁2.事件標(biāo)簽的常用事件有:單擊(Click)和雙擊(DblClick)?!纠?.3】設(shè)計一個程序,利用2個標(biāo)簽控件,顯示具有浮雕效果的文字。
第35頁文本框文本框也稱編輯框,用來輸入、編輯和顯示文本。1.屬性⑴
文本框的常用屬性有:Name、Height、Width、Top、Left、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline和Alingment等。⑵
Text屬性返回或設(shè)置文本框中的文本信息。其取值為字符串類型,默認(rèn)最大長度為2048個字符。⑶
Maxlength屬性用來設(shè)置文本框中能夠輸入的正文內(nèi)容的最大長度。其取值為整數(shù)類型,默認(rèn)設(shè)置為0。0:任意長字符串。非零整數(shù):文本框中可容納的字符數(shù)。第36頁⑷
MultiLine屬性該屬性返回或設(shè)置文本框中是否可以輸入多行文本。其取值為邏輯型,默認(rèn)設(shè)置為False。True:文本框可以輸入或顯示多行正文,同時具有文字處理器的自動換行功能。False:只能輸入單行文本。⑸
ScrollBars屬性該屬性用來設(shè)置文本框是否具有滾動條,其取值為整數(shù)類型,默認(rèn)設(shè)置為0。0—None:無滾動條。1—Horizontal:具有水平滾動條。2—Vertical:具有垂直滾動條。3—Both:同時具有水平和垂直滾動條。第37頁⑹
Locked屬性該屬性設(shè)置文本框在運(yùn)行時是否可被編輯,其取值為邏輯型,默認(rèn)值為False。False:可以編輯。True:文本框中的文本不可被編輯,此時文本框相當(dāng)于標(biāo)簽的作用。⑺
PasswordChar屬性該屬性可用于密碼輸入。⑻
SelStart、SelLength和SelText屬性在程序運(yùn)行中,對文本框內(nèi)容進(jìn)行選擇操作,這三個屬性返回用戶選中的文本。SelStart:選定的文本的開始位置,第一個字符的位置是0。SelLength:選定的文本長度。SelText:選定的文本內(nèi)容。第38頁【例3.4】設(shè)計程序,當(dāng)單擊窗體時,程序會自動將1個文本框的前8個字符顯示到另外1個文本框中。第39頁2.事件⑴
Change事件當(dāng)用戶輸入新內(nèi)容或當(dāng)程序?qū)ext屬性設(shè)置新值時會觸發(fā)該事件。⑵
LostFocus事件
由于按下制表鍵(Tab)或單擊其它對象,使當(dāng)前對象失去焦點時,則引發(fā)該事件。3.方法文本框的常用方法:SetFocus。格式:[對象名.]SetFocus功能:該方法是把光標(biāo)移到指定文本框中。
第40頁4.文本框應(yīng)用【例3.5】設(shè)計評分系統(tǒng)程序。當(dāng)程序運(yùn)行時,輸入4個裁判給出的分?jǐn)?shù),單擊“顯示結(jié)果”按鈕顯示出平均分。在輸入分?jǐn)?shù)時,可以按Tab鍵使光標(biāo)從左邊的文本框向右邊的文本框切換。
第41頁命令按鈕1.屬性⑴基本屬性Name、Height、Width、Top、Left、Enabled、VisibleFontName、FontSize、BackColor ⑵Caption屬性 ⑶Default屬性
True:回車鍵有效。False:回車鍵無效。默認(rèn)值 ⑷Cancel屬性True:按此按鈕與按Esc鍵的效果相同。False:Esc鍵無效。默認(rèn)值 ⑸Value屬性
True:命令按鈕被按下。False:命令按鈕未被按下。默認(rèn)值第42頁⑹
Style屬性 0—Standard:按鈕上不能顯示圖形。 1—Graphical:按鈕上可以顯示圖形,也可以顯示文字。⑺
Picture屬性
用來設(shè)置命令按鈕上顯示的圖形,條件是Style屬性值為1。顯示的圖形文件可以是.bmp和.ico。⑻ToolTipText屬性
用來設(shè)置當(dāng)鼠標(biāo)在命令按鈕上停留1秒時,在其下面的小矩形框中顯示提示信息,其取值為字符類型。例如:Command1.ToolTipText="確認(rèn)后,單擊此按鈕"第43頁2.事件
命令按鈕的主要事件有Click事件,命令按鈕不支持DblClick事件?!纠?.6】編寫單詞測試器程序。第44頁【例3.7】編寫設(shè)置密碼程序。程序設(shè)計者事先在程序中設(shè)定一個密碼為“Hello”。第45頁3.3窗體的屬性、事件與方法
窗體的屬性窗體常用方法窗體常用事件第46頁窗體的屬性1.基本屬性Name、Caption、Font、BackColor、ForeColorHeight、Width、Left、Top【例3.8】用程序改變窗體的背景色和前景色。第47頁
2.Appearance屬性0:窗體顯示為平面效果。1:窗體顯示為立體效果。3.AutoRedraw屬性True:自動重繪該窗體上的所有內(nèi)容。False:不會自動重繪窗體上的內(nèi)容。默認(rèn)值4.ControlBox屬性True:窗體具有控制菜單。默認(rèn)值False:窗體不具有控制菜單。5.Enabled屬性該屬性用于設(shè)置窗體是否能夠?qū)︽I盤或鼠標(biāo)產(chǎn)生的事件作出反應(yīng),默認(rèn)值為True,表示能夠?qū)κ录鞒龇磻?yīng)。第48頁6.BorderStyle屬性7.MaxButton和MinButton屬性True:表示窗體的“最大化”、“最小化”按鈕有效。默認(rèn)值False:表示相應(yīng)的按鈕無效。8.Moveable屬性True:表示窗體的位置可以被移動
False:表示窗體的位置不可以被移動第49頁9.Picture屬性用于設(shè)置窗體的背景圖片。若在程序代碼中設(shè)置該屬性值,則需要使用LoadPicture函數(shù)。例如:Form1.Picture=LoadPicture(“c:\picture\lake.bmp”)
使用相對路徑來加載圖片,即:
Form1.Picture=LoadPicture(“l(fā)ake.bmp”)
當(dāng)參數(shù)為空時,即LoadPicture()時,表示清除圖片?!纠?.9】本程序用來初始化窗體外觀。即當(dāng)窗體沒有顯示之前,在加載窗體的事件過程Form_load中用程序?qū)Υ绑w的外觀進(jìn)行設(shè)置。第50頁10.Visible屬性該屬性用于設(shè)置窗體是否可見。默認(rèn)值為True,表示窗體可見。11.WindowsState屬性用來指定窗體啟動后的初始大小。0:窗體以正常方式顯示。默認(rèn)值1:窗體最小化成圖標(biāo)。2:窗體以全屏方式出現(xiàn)。第51頁窗體常用方法1.Print方法格式:[對象名.]Print字符串表達(dá)式功能:用來在窗體上輸出字符。說明:⑴當(dāng)省略對象名時,默認(rèn)在當(dāng)前窗體中顯示。⑵表達(dá)式在窗體上顯示的位置由窗體的CurrentX和CurrentY屬性決定,在默認(rèn)情況下,從(0,0)開始,執(zhí)行完一次Print方法之后,CurrentY自動加1?!纠?.10】在窗體上輸出文字。第52頁2.Cls方法格式:[對象名.]Cls功能:清除在窗體上由Print方法顯示的文本,或由Pset、Line、Circle等畫圖方法所畫出的圖形,且將光標(biāo)移動到窗體左上角。說明:⑴當(dāng)省略對象名而只寫Cls時,默認(rèn)清除當(dāng)前窗體上的內(nèi)容。⑵該方法經(jīng)常寫為以下形式:
Cls或Me.Cls '清除當(dāng)前窗體Picture1.Cls '清除圖片框Picture1中的圖片第53頁3.Move方法格式:[對象名.]Move<左邊距>[,<上邊距>[,<寬度>[,<高度]]]功能:移動窗體,且可同時改變其大小。說明:左邊距、上邊距、寬度、高度均以Twip為單位?!纠?.11】利用程序修改控件位置和大小。
第54頁窗體常用事件1.Click事件2.DblClick事件雙擊窗體空白區(qū)域或雙擊窗體上的一個無效控件時,此事件被觸發(fā)。3.Activate事件和Deactivate事件當(dāng)窗體獲得焦點變成活動窗體時,就會觸發(fā)一個Activate事件。當(dāng)窗體不再是活動窗體時發(fā)生Deactivate事件。4.Initialize事件當(dāng)應(yīng)用程序創(chuàng)建一個窗體時,將觸發(fā)Initialize事件。5.Load事件把窗體裝入內(nèi)存工作區(qū)時發(fā)生Load事件。第55頁【例3.12】窗體的Load事件舉例。在以下程序中,用Form_Load事件過程對窗體的標(biāo)題、大小、背景色、前景色和字體進(jìn)行初始化,在Form_Activate事件過程中用Print方法顯示。第56頁6.QueryUnload事件當(dāng)關(guān)閉窗體時,觸發(fā)一個QueryUnload事件。事件過程格式:PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)
…EndSub說明:
⑴參數(shù)Cancel是一個整數(shù)。如果該參數(shù)的取值被設(shè)定為一個非零值,可以阻止該窗體和應(yīng)用程序的關(guān)閉如果取值為0,該窗體將被關(guān)閉⑵UnloadMode參數(shù)返回一個整數(shù)或一個常數(shù)該參數(shù)取值可以指明QueryUnload事件的原因。
【例3.13】設(shè)計一個關(guān)不掉的窗體程序。第57頁7.Unload事件Unload事件在QueryUnload事件之后發(fā)生。8.Paint事件在應(yīng)用程序運(yùn)行時,若出現(xiàn)下列情況就會自動產(chǎn)生Paint事件?!ご绑w窗口被最小化成圖標(biāo),然后又恢復(fù)正常顯示狀態(tài)?!ぴ菊趽踔摯绑w的窗體被移開并使該窗體全部或部分顯露出來?!ぴ摯绑w因其他窗體的移動而被全部或部分遮擋?!ご绑w的大小改變或移動。·使用Refresh方法。
第58頁3.4多窗體
建立、移除窗體加載窗體顯示窗體隱藏窗體卸載窗體設(shè)計多重窗體程序應(yīng)該注意的問題
Submain過程第59頁建立、移除窗體.新建一個VB工程時,工程中只有一個窗體,默認(rèn)名.稱為Form1.添加新窗體方法.添加現(xiàn)存窗體方法.移除窗體方法一般調(diào)用一個窗體要經(jīng)歷5個過程:加載—顯示—使用—隱藏—卸載。第60頁加載窗體Load方法只是把窗體加載到內(nèi)存里,并不顯示。格式:Load[對象名]例如:LoadForm2第61頁顯示窗體Show方法顯示窗體格式:[對象名].Show 或[對象名].show0 '顯示為無模式窗體[對象名].Visible=True '顯示為無模式窗體[對象名].Show1 '顯示為模式窗體說明:顯示的窗體分為無模式窗體和模式窗體。第62頁隱藏窗體Hide方法隱藏窗體格式:[對象名].Hide或[對象名].Visible=False說明:使用Hide方法只能隱藏窗體,不能將窗體卸載。如果調(diào)用Hide方法時該窗體還沒有加載,Hide方法會自動加載該窗體但并不予以顯示?!纠?.14】用Hide方法和Show方法,實現(xiàn)兩個窗體的交替顯示。第63頁卸載窗體Unload方法卸載窗體格式:Unload[對象名]功能:隱藏窗體同時將窗體從內(nèi)存中卸載?!纠?.15】用Show方法和Unload方法,實現(xiàn)用主窗體Form1調(diào)用其它2個窗體的功能,其中Form3被顯示為模式窗體。第64頁設(shè)計多重窗體程序時應(yīng)該注意的問題1.過多的使用窗體,會降低程序的運(yùn)行效率。2.應(yīng)及時卸載不再使用的窗體,以釋放其所占的資源。3.在程序代碼中,要操作其他窗體的控件時,應(yīng)在控件名前寫明該控件所在的窗體的名稱。例如:Form2.Text1.Text="多重窗體"。4.關(guān)鍵字“Me”代表代碼所在的窗體,例如:在窗體模塊Form1的程序代碼中,要卸載Form1:UnloadForm1或UnloadMe。第65頁SubMain過程SubMain(啟動過程)是在顯示多個窗體之前,執(zhí)行的一個特定的過程。SubMain過程建立方法。SubMain過程的特點如下:·每個工程中只能有一個SubMain過程?!ubMain過程可以被設(shè)置為工程的啟動對象?!ubMain過程只能在標(biāo)準(zhǔn)模塊中定義。第4章VB程序設(shè)計基礎(chǔ)第67頁4.1語句和語法規(guī)則4.2數(shù)據(jù)類型4.3常量與變量4.4常用內(nèi)部函數(shù)4.5運(yùn)算符和表達(dá)式第68頁4.1語句和語法規(guī)則
關(guān)鍵字和標(biāo)識符關(guān)鍵字:又稱為保留字,是VisualBasic系統(tǒng)定義的、有特定意義的詞匯.標(biāo)識符:自定義的命名稱為標(biāo)識符。VisualBasic中標(biāo)識符的命名規(guī)則:⑴必須以字母開頭;⑵只能由字母、數(shù)字和下劃線組成,不能直接使用VisualBasic的關(guān)鍵字;⑶不得超過255個字符,控件、窗體和模塊的名字不能超過40個字符;⑷在標(biāo)識符的有效范圍內(nèi)必須是唯一的。⑸VisualBasic允許使用漢字作為標(biāo)識符。第69頁4.2數(shù)據(jù)類型VisualBasic的數(shù)據(jù)類型主要分為三大類:系統(tǒng)定義的基本數(shù)據(jù)類型自定義類型枚舉類型第70頁基本數(shù)據(jù)類型第71頁1.字符串型(String)⑴在字符串中字母的大小寫是有區(qū)別的。例如"ABC"與"abc"是不相等的。⑵字符串中包含字符的個數(shù)稱為字符串的長度,如果長度為0則稱之為空串。 "abc" “中華人民共和國” “” “” ⑶字符串需要加上定界符雙引號圖4.1立即窗口第72頁2.數(shù)值型(Numeric)包括整數(shù)類型和實數(shù)類型。⑴整數(shù)類型①整型(Integer)例如:4,-4。②長整型(Long)③字節(jié)型(Byte)以1個字節(jié)存儲無符號整型,只能存儲0至255之間的數(shù)。第73頁⑵實數(shù)類型實數(shù)類型又分為單精度實型、雙精度實型和貨幣型。其中單精度實型、雙精度實型在VB中都有兩種表示法:定點表示和浮點表示。①單精度浮點型(Single)
單精度浮點型指數(shù)部分用E表示。例如:123.456E+3123.456E-43.402823E+38 '3.402823乘以10的38次方②雙精度浮點型(Double)雙精度浮點型指數(shù)部分用D表示例如:123.456D+31.79769313486232D+308 '1.79769313486232乘以10的308次方③貨幣型(Currency)貨幣型數(shù)據(jù)精確到小數(shù)點后4位。第74頁3.日期型(Date)可以表示的日期范圍從公元100年1月1日到9999年12月31日,而時間可以從0:00:00到23:59:59。日期文字須以定界符“#”括起來。例如: #January1,1993# #1Jan93# #1993-1-1#4.布爾型(Boolean)布爾型又稱為邏輯型,它只有兩個值,即真值(True)和假值(False),存儲為兩個字節(jié)。5.變體型(Variant)變體型是一種特殊的數(shù)據(jù)類型,它可以用來表示系統(tǒng)定義的任何種類的數(shù)據(jù)類型(除了定長String類型及用戶定義類型外)。第75頁自定義類型
用Type語句定義數(shù)據(jù)類型,通常又稱為記錄型
格式:Type數(shù)據(jù)類型名
數(shù)據(jù)類型元素名
as數(shù)據(jù)類型數(shù)據(jù)類型元素名
as數(shù)據(jù)類型……EndType例如:TypestudentNoasintegerNameasString*10 '定義為10個字符的定長字符串
SexasString*2 '定義為2個字符的定長字符串Endtype第76頁枚舉類型1.枚舉類型的定義枚舉類型,即將該變量的取值一一列舉出來格式:[Public|Private]Enum枚舉名稱
成員名1[=常量表達(dá)式]
成員名2[=常量表達(dá)式]
……EndEnum第77頁定義一個枚舉類型Workday包含7個成員PublicEnumWorkdayMondayTuesdayWednesdayThursdayFridaySaturdaySundayEndEnum可以用賦值語句給枚舉中的成員賦值,所賦的值可以是任何長整型的數(shù)。例如:PublicEnumWorkdayMonday=1TuesdayWednesdayThursdayFridaySaturdaySundayEndEnum第78頁4.3常量與變量在程序設(shè)計中需要將數(shù)據(jù)存儲為常量或者變量。值不能被改變的量稱為常量,可以被改變的量稱為變量。用常量和變量在程序中表示數(shù)據(jù)是重要的程序設(shè)計思想。第79頁常量
1.直接常量直接常量就是程序中具體給出的數(shù)據(jù)的值。直接常量分為數(shù)值常量、字符串常量、邏輯常量和日期常量。例如:5678,233.5E-6,0.58d7,"thisisastring",True,#2004-11-18#等。
可以指明常量的類型,即在數(shù)值的后面加上相應(yīng)的類型說明符。例如:2.75!是一個單精度浮點型常量,11.25#是一個雙精度浮點型常量。第80頁2.符號常量符號常量:是用一些有意義的名字代替永遠(yuǎn)不變的值。格式:Const常量名[類型說明]=表達(dá)式[,常量名=表達(dá)式]……ConstPi2=Pi*2,Pi4=Pi*4Consttomorrow=#1/1/1995#Constnum!=1.25,maxAsDouble=2.65常量的效范圍有以下三種情況:⑴
如果創(chuàng)建僅存在于過程中的常量,就在這個過程內(nèi)部聲明常量。⑵
如果希望這個常量在模塊中所有過程都有效,但對模塊之外任何代碼都無效,就在模塊的聲明段中聲明常量。⑶
如果創(chuàng)建在整個程序中都有效的全局常量,則應(yīng)在標(biāo)準(zhǔn)模塊的聲明段中聲明常量,并在
Const前面放置Public關(guān)鍵字,在窗體模塊或類模塊中不能聲明全局常量。
【例4.1】第81頁變量1.變量的聲明⑴顯式聲明顯式聲明是在變量使用前用聲明語句聲明變量。格式:Dim變量名[As數(shù)據(jù)類型]說明:①其中Dim還可以是Static、Public或Private。②變量名應(yīng)遵循標(biāo)識符的定義規(guī)則。③數(shù)據(jù)類型可以是VB支持的任意數(shù)據(jù)類型,若未指定類型則為變體型。例如:DimvarAsIntegerPublicsum_1AsDoubleDimtomorrowAsDateDimx'x為變體型
第82頁Dimname1asStringDimname2asString*6
可以用一個Dim語句定義多個變量,但每個變量的數(shù)據(jù)類型必須用as聲明,例如:Dimvar1,var2asIntegerDimvar1asInteger,var2asInteger可使用類型符定義變量。例如:
Dimtotal! '定義total為單精度實型變量
Dimaverage@ '定義average為貨幣型變量第83頁⑵隱式聲明例如:PrivateSubCommand1_Click()Var=50PrintVarEndSub
可以采用強(qiáng)制變量聲明:OptionExplicit選擇“工具|選項”命令,選擇“編輯器”選項卡,再選擇“要求變量聲明”選項第84頁2.自定義類型的變量①聲明自定義類型變量。例如,4.2.2節(jié)中定義一個Student數(shù)據(jù)類型,現(xiàn)在定義一個student類型的變量,方法為:
Dimliasstudent②引用自定義類型變量
格式:變量名.成員名例如:
li.noli.Nameli.Sex第85頁3.枚舉類型的變量例如,在4.2.3節(jié)中定義了一個枚舉數(shù)據(jù)類型Workday,下面的程序代碼定義了一個枚舉類型變量mywork。PrivateSubCommand1_Click()DimmyworkAsWorkday '定義變量mywork為Workday枚舉類型
mywork=Tuesday ‘將枚舉成員Tuesday(值為2)賦值給yworkPrintmywork '打印變量mywork的值,結(jié)果為2EndSub第86頁變量的作用范圍在VisualBasic中,變量作用范圍分成過程(局部)級、模塊(文件內(nèi)部)級、工程(項目、全局)級這三個等級。
1.局部變量局部變量聲明方法:用Dim或者Static關(guān)鍵字聲明?!纠?.2】局部變量舉例。Dim與Static的區(qū)別:用Static聲明的局部變量中的值一直存在,這種變量稱為靜態(tài)變量,而用Dim聲明的變量只在過程執(zhí)行期間才存在,執(zhí)行完畢后,變量就被釋放?!纠?.3】測試Dim與Static的區(qū)別。
第87頁2.模塊變量
模塊級變量在使用之前必須聲明,不能使用隱式聲明方式。模塊級變量聲明方法:在模塊頂部的聲明段中用Dim或Private關(guān)鍵字聲明模塊級變量。
【例4.4】模塊級變量舉例
3.全局變量全局變量聲明方法:在模塊的通用聲明段中用Public或Global聲明。
第88頁三種變量作用范圍對照表
當(dāng)不同作用范圍的變量重名時,系統(tǒng)能夠通過變量的作用范圍加以識別,過程中引用的變量,總是同名變量中作用范圍最小的那個變量。
第89頁4.4常用內(nèi)部函數(shù)
函數(shù)的調(diào)用格式:<函數(shù)名>([參數(shù)1],[參數(shù)2]…)說明:⑴每一個函數(shù)都有函數(shù)名,通過函數(shù)名調(diào)用函數(shù)。⑵數(shù)學(xué)術(shù)語中的函數(shù)的“自變量”在程序設(shè)計語言中稱為“參數(shù)”,函數(shù)運(yùn)算的結(jié)果稱為“返回值”。⑶函數(shù)是以表達(dá)式的形式調(diào)用的,而不能單獨作為一個語句。例如:a=Sin(b)z=Sin(x)+Cos(x+y)第90頁數(shù)學(xué)函數(shù)第91頁字符串函數(shù)第92頁第93頁轉(zhuǎn)換函數(shù)第94頁時間函數(shù)第95頁隨機(jī)數(shù)函數(shù)1.Rnd函數(shù)格式:Rnd[(x)],其中參數(shù)x是一個雙精度數(shù),可以省略。功能:可產(chǎn)生一個0~1之間的單精度隨機(jī)數(shù)(該值是大于或等于0,但小于1的數(shù)),下一個要產(chǎn)生的隨機(jī)數(shù)受參數(shù)x的影響,分別為:⑴
當(dāng)x<0時,則每次產(chǎn)生的隨機(jī)數(shù)都相同。⑵
當(dāng)x>0或省略時,產(chǎn)生下一個隨機(jī)數(shù)。⑶
當(dāng)x=0時,則該次產(chǎn)生的隨機(jī)數(shù)與上一次產(chǎn)生的隨機(jī)數(shù)相同。例如:要產(chǎn)生1~100之間的隨機(jī)整數(shù)時,可利用Int(Rnd*100+1)來解決2.Randomize語句格式:Randomize[(x)]功能:將Rnd函數(shù)的隨機(jī)數(shù)生成器初始化例如:RandomizePrintRnd第96頁數(shù)制轉(zhuǎn)換函數(shù)第97頁測試函數(shù)
格式:TypeName(變量名)功能:返回參數(shù)的變量類型。說明:返回值為具體的類型名例如:DimaAsVariantDimbAsIntegerDimcAsDoubleDimdAsStringPrintTypeName(a) '返回值:emptyPrintTypeName(b) '返回值:IntegerPrintTypeName(c) '返回值:DoublePrintTypeName(d) '返回值:StringPrintTypeName(Command1) '返回值:CommandButtonPrintTypeName(Picture1) '返回值:PictureBoxPrintTypeName(Text1) '返回值:TextBox第98頁4.5運(yùn)算符和表達(dá)式運(yùn)算符是表示數(shù)據(jù)之間運(yùn)算方式的符號,操作數(shù)是參與運(yùn)算的數(shù)據(jù),表達(dá)式是由運(yùn)算符和操作數(shù)組成的式子。例如:算術(shù)表達(dá)式“1+2”中1、2是操作數(shù),“+”是運(yùn)算符。運(yùn)算符中有的需要兩個操作數(shù),稱為雙目運(yùn)算符,有的只需要一個操作數(shù),稱為單目運(yùn)算符。例如“-”作為負(fù)號時只用一個操作數(shù)。
第99頁算術(shù)運(yùn)算符第100頁算術(shù)表達(dá)式
在書寫算術(shù)表達(dá)式時應(yīng)注意與數(shù)學(xué)中的表達(dá)式寫法的區(qū)別:⑴
在VisualBasic中不能省略乘號運(yùn)算符,如:數(shù)學(xué)上的表達(dá)式b2-4ac中省略了乘號,但在寫成對應(yīng)的VisualBasic表達(dá)式的時候,要寫成b^2-4*a*c。⑵
表達(dá)式中所有的括號一律使用圓括號,并且括號左右必須配對。如:數(shù)學(xué)中的表達(dá)式[(x+y)/(a-b)+c]x,在VisualBasic中要寫成((x+y)/(a-b)+c)*x。⑶算術(shù)運(yùn)算符優(yōu)先級從高到低的順序為:乘方→負(fù)數(shù)→(乘、除)→整除→取?!印p),優(yōu)先級高則先運(yùn)算,但如果有括號則先運(yùn)算括號內(nèi)的表達(dá)式,例如:?-2^2 '結(jié)果為
–4?3^3\2 '結(jié)果為13?4Mod8/2 '結(jié)果為0?3*2\3/2 '結(jié)果為3
第101頁字符串運(yùn)算符和字符串表達(dá)式字符串運(yùn)算符只有“&”和“+”,它們的功能是把字符串連接起來。例如:?"Visual"+"Basic" '結(jié)果為:VisualBasic?"Visual"&"Basic" '結(jié)果為:VisualBasic?"abcd"+123 '操作類型不匹配出錯
?"abcd"&123 '結(jié)果為
abcd123?now&"星期四" '03-6-2015:39:55星期四
字符串表達(dá)式例如:"abc"&"123"&Left("abc",1)
第102頁關(guān)系運(yùn)算符關(guān)系運(yùn)算比較規(guī)則:⑴
數(shù)值型:比較它們的數(shù)值大小。⑵
字符型:從左到右逐個字符比較ASCII碼值,直到遇到不同字符為止。對于兩個漢字字符,比較它們的拼音。常見的字符的比較關(guān)系如下:“空格”<“0”<……<“9”<“A”<……<“Z”<“a”<……<“z”<“漢字”⑶
日期型:將日期看成“yyyymmdd”的8位整數(shù),再按數(shù)值進(jìn)行比較。第103頁關(guān)系表達(dá)式格式:<表達(dá)式1><關(guān)系運(yùn)算符><表達(dá)式2>功能:如果關(guān)系表達(dá)式成立,則計算結(jié)果為真,否則為假。說明:⑴
“表達(dá)式1”和“表達(dá)式2”是兩個類型相同的表達(dá)式,可以是算術(shù)表達(dá)式、字符串表達(dá)式或者是其它關(guān)系表達(dá)式。例如:?10-5>2+3 '結(jié)果為:False?"xyz"="XYZ" '結(jié)果為:False⑵VisualBasic中,所有的關(guān)系運(yùn)算符的優(yōu)先級都相同。
第104頁邏輯運(yùn)算符與邏輯表達(dá)式
⑴
Not取反運(yùn)算,即將真變假或假變真。例如:?Not"abc"<"abd" 'False⑵And
與運(yùn)算,只有兩個操作數(shù)的值都為真時,結(jié)果為真,否則結(jié)果為假。例如:?trueAnd1<2 'True?2+2=4Andfalse 'False?3<5And"a"="A"'False⑶Or或運(yùn)算,兩個操作數(shù)的值只要有一個為真時,結(jié)果就為真,否則結(jié)果為假。例如:?"abc"<>"ABC"Or2>1 'True?TrueOr6-3>4 'True?6<2Or"b"="B" 'False第105頁⑷Xor
異或運(yùn)算,兩個操作數(shù)的值相反時,結(jié)果為真,否則結(jié)果為假。例如:?3>5Xor8<5 'False⑸Eqv
等價運(yùn)算,兩個操作數(shù)的值同時為真或同時為假時,結(jié)果為真,否則結(jié)果為假。例如:?3>5Eqv8<5 'True⑹Imp
蘊(yùn)含運(yùn)算,當(dāng)?shù)谝粋€操作數(shù)的值為真,第二個操作數(shù)的值為假時,結(jié)果為假,否則結(jié)果為真。例如:?5<6Imp2>3 'False第106頁邏輯表達(dá)式邏輯運(yùn)算符的優(yōu)先級有高到低為:Not→And→Or→Xor→Eqv→Imp。例如:?Not"Abc"="abc"Or2+3<>5And"23"<"3"'結(jié)果為:True第107頁日期運(yùn)算符與日期表達(dá)式
1.日期運(yùn)算符日期運(yùn)算符只有“+”和“-”。2.日期表達(dá)式日期表達(dá)式包括以下操作:“+”連接的日期表達(dá)式,操作數(shù)一個為日期型,另一個為數(shù)值型,表示計算該日期后的若干天。例如:?#2002-02-01#+1 '結(jié)果為:02-2-2“-”連接的日期表達(dá)式有兩種情況:當(dāng)操作數(shù)一個為日期型,另一個為數(shù)值型時,表示計算該日期前的若干天;如果兩個操作數(shù)都是日期型,表示計算兩個日期之間相差的天數(shù)。例如:?#01/01/2002#-2 '結(jié)果為01-12-30?#2002-02-02#-2 '結(jié)果為:02-1-31 ?#2001-02-03#-#2001-02-02# '結(jié)果為:1
第108頁各種運(yùn)算符的優(yōu)先級比較第5章數(shù)據(jù)的輸出與輸入
第110頁5.1數(shù)據(jù)的輸出5.2數(shù)據(jù)輸入函數(shù)InputBox5.3消息框MsgBox5.4字形5.5打印機(jī)輸出第111頁5.1數(shù)據(jù)的輸出
Print方法
與Print方法有關(guān)的函數(shù)
Cls方法
第112頁P(yáng)rint方法格式:[對象名.]Print[表達(dá)式列表]功能:在指定對象中輸出表達(dá)式的值。說明:⑴對象可以是窗體、立即窗口、圖片框和打印機(jī)等。例如:Form1.Print"中國" Picture1.Print"中國"Printer.Print"中國" Debug.Print"中國" Print"china" 第113頁⑵“表達(dá)式列表”是輸出的內(nèi)容,如果Print后面沒有表達(dá)式,則輸出一個空行。輸出內(nèi)容多個表達(dá)式之間用分號、逗號或空格隔開。⑶Print方法執(zhí)行后會自動換行。如果要下一個Print語句輸出的信息也在同一行上顯示,可以在語句末尾加上一個逗號或分號。其中,分號表示緊湊模式,逗號表示標(biāo)準(zhǔn)模式。⑷Print關(guān)鍵字可以用“?”代替,VB會自動將它翻譯成Print。第114頁與Print方法有關(guān)的函數(shù)
1.Tab()函數(shù)格式:PrintTab(n);輸出內(nèi)容功能:與Print方法結(jié)合使用,從指定位置n開始輸出信息,n為數(shù)值表達(dá)式,其值為整數(shù),表示輸出位置的列號。2.Spc()函數(shù)格式:PrintSpc(n);輸出內(nèi)容功能:與Print方法結(jié)合使用,輸出內(nèi)容從當(dāng)前位置跳過n列,即n個空格。3.Space()函數(shù)格式:Space(n)功能:返回n個空格。4.Format()函數(shù)格式:PrintFormat(數(shù)值表達(dá)式[,格式說明串])功能:與Print方法結(jié)合使用,將數(shù)值表達(dá)式按指定的格式輸出。
第115頁Format()函數(shù)的“格式說明串”包括以下幾種符號:# 表示一個數(shù)字位,用于控制輸出內(nèi)容的長度。0 與#基本相同,區(qū)別是當(dāng)輸出內(nèi)容長度小于給定的#個數(shù)時,多余位以0補(bǔ)齊。.
顯示小數(shù)點,與#、0結(jié)合使用。小數(shù)部分多余的數(shù)字將被四舍五入。,
千位分隔符,即從小數(shù)點左邊第1位開始,每3位用一個逗號隔開。%
將數(shù)值以百分?jǐn)?shù)的形式輸出,百分號放在格式說明串的末尾。$ 美元符號,放在格式說明字符串的開始。+,- 正、負(fù)號,可將數(shù)值帶上符號。E+,E- 將數(shù)值轉(zhuǎn)換為指數(shù)形式顯示?!纠?.1】驗證格式輸出結(jié)果。第116頁Cls方法格式:[對象名.]Cls功能:清除程序運(yùn)行時窗體或圖片框所生成的圖形和文本。對象可以是窗體或圖片框,缺省時表示清除當(dāng)前窗體中的顯示內(nèi)容。例如:Form1.ClsPicture1.ClsCls第117頁5.2數(shù)據(jù)輸入函數(shù)InputBox
格式:InputBox(提示信息[,標(biāo)題][,缺省值][,x坐標(biāo)][,y坐標(biāo)])功能:InputBox函數(shù)能產(chǎn)生輸入框,并有提示信息,等待用戶輸入信息后,將輸入信息作為字符串返回。說明:其中主要參數(shù)的含義如教材圖5.2所示。輸入?yún)^(qū)【例5.2】利用InputBox函數(shù)輸入學(xué)生的一組信息。
第118頁5.3消息框MsgBox
消息框用于向用戶顯示消息,等待用戶做出必要的響應(yīng),并返回一個整型數(shù)值,作為程序繼續(xù)運(yùn)行的依據(jù)。消息框有函數(shù)形式和語句形式。第119頁MsgBox函數(shù)
格式:MsgBox(提示信息[,按鈕類型][,標(biāo)題])例如:x=MsgBox("thisisamsgbox!",1,"MsgBoxDexmo")
【例5.3】測試消息框及返回值。說明:1.“按鈕類型”用來指定顯示按鈕的個數(shù)、使用的圖標(biāo)樣式、缺省按鈕(即活動狀態(tài)按鈕)的位置以及消息框的強(qiáng)制回應(yīng)等。每項內(nèi)容詳細(xì)取值見表5.1。
2.MsgBox函數(shù)的返回值是由用戶選擇的按鈕決定的,每個按鈕都有一個特定的返回值,
第120頁
MsgBox語句
消息框的語句形式其作用與MsgBox函數(shù)類似。格式:MsgBox消息[,按鈕類型][,標(biāo)題]例如:MsgBox"下載完畢"第121頁5.4字形
1.字體類型
FontName屬性格式:對象.FontName[="字體類型"]FontName="system"FontName="黑體"2.字體大小
FontSize屬性,設(shè)置字體的大小。格式:FontSize[=點數(shù)]FontSize=20FontSize=24VisualBasic中的字體最大點數(shù)為2106點。第122頁3.其它屬性粗體字
FontBold斜體字
FontItalic加刪除線
FontStrikethru加下劃線
FontUnderline這些屬性的值都是Boolean類型,即只有True和False兩個值5.4字形
第123頁格式:Printer.Print[打印內(nèi)容]在打印結(jié)束時,調(diào)用EndDoc方法表示結(jié)束打印。例如:PrivateSubCommand1_Click()Printer.Print"打印機(jī)測試"Printer.Print"Thisisthefirstpage!"Printer.EndDocEndSub5.5打印機(jī)輸出
第124頁5.5打印機(jī)輸出
VisualBasic還提供了一些控制打印的方法和屬性:1.多頁打印實現(xiàn)強(qiáng)制換頁打印。格式:Printer.NewPage格式:
Printer.Page使用此語句可以在打印的時候同時打印出頁號。2.結(jié)束打印格式:Printer.EndDoc3.取消打印格式:Printer.KillDoc第125頁窗體輸出格式:[窗體.]PrintForm例如:Print"********"PrintForm如果窗體中有圖形,則需將AutoRedraw屬性設(shè)置為True,才能將圖形打印出來。打印結(jié)束后,PrintForm調(diào)用
EndDoc方法清空打印機(jī)。第6章VB程序設(shè)計語句
第127頁6.1賦值語句6.2選擇控制結(jié)構(gòu)6.3循環(huán)控制結(jié)構(gòu)6.5控件數(shù)組6.6過程6.4數(shù)組第128頁6.1賦值語句1.賦值語句的作用格式:變量名=表達(dá)式
或
控件名.屬性=表達(dá)式說明:⑴
前者為變量賦值語句,后者為控件的屬性賦值語句。例如:s=100 s=s+1 ch1="ABC" Form1.Caption="求圓的面積" num=InputBox("請輸入一個數(shù)") 第129頁⑵
賦值語句可以改變變量存儲的值。⑶
“=”號既可以構(gòu)成賦值語句,也可以作為邏輯表達(dá)式的邏輯等號。例如:printx=y a=bAndb=c n=3=5 第130頁2.賦值相容⑴
變量類型與表達(dá)式類型相同。⑵
變量為字符串型,表達(dá)式為數(shù)值型。⑶
變量為數(shù)值型,表達(dá)式為可以轉(zhuǎn)換為合法數(shù)值的字符串。⑷
整型與浮點型屬于賦值相容。第131頁6.2選擇控制結(jié)構(gòu)
順序程序結(jié)構(gòu):賦值語句、輸入輸出語句構(gòu)成了最基本的程序結(jié)構(gòu),即順序程序結(jié)構(gòu)。
選擇控制結(jié)構(gòu):又稱為分支結(jié)構(gòu),這種結(jié)構(gòu)能夠根據(jù)條件執(zhí)行不同的操作。VisualBasic支持的選擇控制結(jié)構(gòu)包括
If語句
SelectCase語句。
第132頁
If語句1.If…Then語句格式:If<條件>Then<語句塊>EndIf說明:
⑴“條件”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,“語句塊”可以為一條或多條語句,If語句以EndIf結(jié)束。⑵語句執(zhí)行過程假真條件語句塊【例6.1】輸入a、b的值,如果a大于b,則輸出“a大于b”。
第133頁⑶
條件表達(dá)式也可以是算術(shù)表達(dá)式,非零為真、零為假。⑷
If語句可以精簡為單行If語句,即If<條件>Then<語句>【例6.2】將例6.1用單行If語句改寫。
第134頁2.If...Then...Else語句格式:If<條件>Then<語句塊1>Else<語句塊2>EndIf說明:⑴語句執(zhí)行過程假真條件語句塊1語句塊2【例6.3】輸入一個非零數(shù),判斷其是正數(shù)還是負(fù)數(shù)。
⑵
If...Then...Else語句為雙分支選擇結(jié)構(gòu),語句塊1和語句塊2必定有一個被執(zhí)行。第135頁【例6.4】
判斷某年是不是閏年。閏年的條件:年份能被400整除,或者年份能被4整除但不能被100整除。yearMod400=0(被400整除)Mod4=0AndyearMod100<>0(被4整除但不被100整除)兩個表達(dá)式之間應(yīng)該用Or連接。
⑶
If...Then...Else語句單行形式:If<條件>Then<語句塊1>Else<語句塊2>【例6.5】將例6.3用單行語句改寫。
第136頁3.If語句的嵌套格式:If<條件1>Then<語句塊1>ElseIf<條件2>Then<語句塊2>…[Else語句塊n+1]EndIf第137頁If語句多分支結(jié)構(gòu)流程圖假真假真假真條件1條件2條件n語句塊1語句塊2語句塊n語句塊n+1第138頁If語句的嵌套可以用于條件比較復(fù)雜的多分支情況?!纠?-6】已知分段函數(shù):編寫程序,輸入自變量x的值,計算并輸出函數(shù)y的值。利用If語句嵌套可以實現(xiàn)多分支的篩選【例6.7】輸入一個分?jǐn)?shù),判斷它應(yīng)得的學(xué)分。90分以上得4學(xué)分,80-89分得3學(xué)分,70-79分得2學(xué)分,60-69分得1學(xué)分,60分以下不得學(xué)分。If語句如果有多個條件都為真,只能執(zhí)行第一個條件為真的分支【例6.8】將上題的篩選條件重新設(shè)計。第139頁SelectCase語句
格式:SelectCase<測試表達(dá)式>Case<值1><語句塊1>Case<值2><語句塊2>…[CaseElse<語句塊n+1>]EndSelect第140頁說明:1.測試表達(dá)式可以是任何數(shù)值表達(dá)式或字符串表達(dá)式;2.每個case分支可以列出多個值,可以是以下形式之一:⑴
多個具體值,用逗號隔開,例如:Case1,2,3⑵
使用關(guān)鍵字To表示值的范圍,例如:Case1to10⑶
使用Is關(guān)系表達(dá)式,例如:CaseIs>=10 CaseIs<>"" ⑷
也可以使用以上幾種形式的組合,例如:Case1,3,Is>10 【例6.9】輸入a、b的值和運(yùn)算符號,根據(jù)輸入的運(yùn)算符號決定運(yùn)算的方式。
第141頁3.當(dāng)程序中依賴某個單獨的關(guān)鍵變量或表達(dá)式作判斷條件時,SelectCase語句效率更高,可讀性好。4.如果測試表達(dá)式的值能與多個Case子句表達(dá)式的值相匹配,只執(zhí)行第一個匹配的Case子句下面的語句塊?!纠?-10】用Case語句改寫例6.7,將輸入成績轉(zhuǎn)換為相應(yīng)學(xué)分。 注意值列表順序的合理性。5.CaseElse子句是可選的,表示沒有匹配的值時,則執(zhí)行該子句中的語句塊n+1?!纠?-11】從鍵盤輸入一個字符,判斷是字母還是數(shù)字,或是其它特殊字符。第142頁Iif函數(shù)
格式:
IIf(條件,表達(dá)式1,表達(dá)式2)說明:⑴
函數(shù)執(zhí)行過程。PrintIIf(3>5,1,-1)⑵
函數(shù)中的三個參數(shù)都不能省略,“表達(dá)式1”和“表達(dá)式2”的值的類型應(yīng)保持一致。⑶MaxValue=IIf(x>y,x,y)可以改寫為單行If語句:Ifx>yThenMaxValue=xElseMaxValue=y
第143頁6.3循環(huán)控制結(jié)構(gòu)
VisualBasic提供了三種不同風(fēng)格的循環(huán)語句,包括:1.計數(shù)循環(huán)(For…Next語句)2.Do循環(huán)(Do…Loop語句)3.當(dāng)循環(huán)(While…Wend語句)其中,計數(shù)循環(huán)是按給定的次數(shù)執(zhí)行循環(huán)體,而Do循環(huán)和當(dāng)循環(huán)是在給定的條件滿足時執(zhí)行循環(huán)體。
第144頁For…Next語句
格式:For<循環(huán)變量>=<初值>To<終值>[Step步長][循環(huán)體]Next[循環(huán)變量]說明:1.For語句執(zhí)行過程計數(shù)器>終值計數(shù)器=初始值假循環(huán)體計數(shù)器=計數(shù)器+步長例如:Fori=1To5Printi,Nexti第145頁2.1關(guān)鍵字Step表示步長。例如Fori=1To10Step2Print"Line";iNexti3.當(dāng)步長為正,初值大于終值時,或步長為負(fù),初值小于終值時,循環(huán)體將不執(zhí)行。Fori=9to0Print"Line";iNextI欲使其運(yùn)行,需要將循環(huán)語句的步長設(shè)置為負(fù)值。改寫為:Fori=9to0Step-1Print"Line";iNextI第146頁【例6.12】求1到100之間自然數(shù)列之和?!纠?.13】輸入任意10個數(shù),統(tǒng)計其中正數(shù)和負(fù)數(shù)的個數(shù)。
【例6.14】找出所有平方小于200的正整數(shù)。
第147頁
Do…Loop語句1.DoWhile…Loop語句格式:DoWhile<條件>[循環(huán)體]Loop說明:⑴語句執(zhí)行過程。假循環(huán)體真條件【例6.15】從鍵盤輸入字符并統(tǒng)計字符個數(shù),當(dāng)輸入字符為“?”時,停止計數(shù)。【例6.16】用Do語句編寫程序,求1到100的累加和。
第148頁⑵
Do循環(huán)需要有能夠改變循環(huán)條件表達(dá)式值的語句,否則循環(huán)永遠(yuǎn)不會結(jié)束,即死循環(huán)。⑶
ExitDo語句用于強(qiáng)制跳出循環(huán)。⑷
Do...Loop語句的另一種形式格式:Do[循環(huán)體]LoopWhile<條件>這種形式可以保證循環(huán)體至少執(zhí)行一次。
假循環(huán)體真條件第149頁2.DoUntil…Loop語句格式:DoUntil<條件>[循環(huán)體]Loop說明:⑴語句執(zhí)行過程真循環(huán)體假條件第150頁⑵另一種語句形式是把測試條件放在Loop語句中,這種形式可以保證循環(huán)至少執(zhí)行一次。格式:Do[循環(huán)體]LoopUntil<條件>真循環(huán)體假條件【例6.17】用DoUntil…Loop語句改寫例6.15。
第151頁While…Wend語句
由While…Wend語句構(gòu)成的循環(huán)稱為當(dāng)循環(huán)或While循環(huán)。格式:While<條件>[循環(huán)體]Wend
假循環(huán)體真條件【例6.18】用公式π/4=1-1/3+1/5-1/7+……
求π的近似值(計算到最后一項的絕對值小于10-6)。
第152頁幾種循環(huán)語句的比較
1.For…Next語句s=0Fori=1To10s=s+iNextPrints2.While…Wend語句s=0i=1Whilei<=10s=s+ii=i+1WendPrints3.DoWhile…Loop語句s=0i=1DoWhilei<=10s=s+ii=i+1LoopPrints4.Do…LoopWhile語句s=0i=1Dos=s+ii=i+1LoopWhilei<=10Prints5.DoUntil…Loop語句s=0i=1DoUntili>10s=s+ii=i+1LoopPrints6.Do…LoopUntil語句s=0i=1Dos=s+i=i+1LoopUntili>10Prints第153頁多重循環(huán)在循環(huán)語句中使用另一個循環(huán)語句稱為循環(huán)的嵌套。兩個For語句嵌套的形式:Fori=m1Tom2
……Forj=n1Ton2<內(nèi)循環(huán)體>內(nèi)循環(huán)
外循環(huán)
Nextj
……Nex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時占用土地租賃協(xié)議
- 快件賒銷協(xié)議書
- 2024建設(shè)工程補(bǔ)充合同范本
- 求職意向書樣本-書信范本
- 2024幼兒園保安聘用合同
- 勞務(wù)施工安全協(xié)議書范本2024年
- 浙江省初中名校七年級上學(xué)期語文期中試卷5套【附答案】
- 吉林省雜糧采購合同
- 4.1 夯實法治基礎(chǔ) (大單元教學(xué)設(shè)計) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊
- 家庭雇傭保姆合同模板
- 煤礦皮帶智能化集控系統(tǒng)PPT教學(xué)講授課件
- 個人財務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)--論文
- 分?jǐn)?shù)乘除法整理復(fù)習(xí)(課堂PPT)
- 杭州會展業(yè)發(fā)展與對策研究文獻(xiàn)綜述
- 小學(xué)六年級英語上冊《Unit 1 How can I get there》教案
- 完整版方法驗證報告模板最終
- 電力管道資料表格(共30頁)
- 大班科學(xué)活動教案《豆豆家族》含PPT課件
- 【精品試卷】部編人教版(統(tǒng)編)一年級上冊語文第一單元測試卷含答案
- 金屬有機(jī)化學(xué)ppt課件
- 數(shù)學(xué)說題稿(共4頁)
評論
0/150
提交評論