




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
VB程序設計概述VB簡介VisualBasic——基于Basic的可視化的程序設計語言繼承了Basic所具有的程序設計語言簡單易用的特點采用面向?qū)ο蟮某绦蛟O計方法(OOP)、事件驅(qū)動的編程機制VB發(fā)展史1991年,VB1.01992年,VB2.01993年,VB3.01995年,VB4.01997年,VB5.01998年,VB6.0VB包括三個版本:學習版專業(yè)版企業(yè)版VB功能特點具有面向?qū)ο蟮目梢暬脑O計工具事件驅(qū)動的編程機制提供了易學易用的應用程序集成開發(fā)環(huán)境(IDE)結(jié)構化的程序設計語言支持多種數(shù)據(jù)庫系統(tǒng)的訪問支持動態(tài)數(shù)據(jù)交換(DDE)、動態(tài)鏈接(DLL)和對象的鏈接與嵌入(OLE)技術完備的Help聯(lián)機幫助功能面向?qū)ο蟮某绦蛟O計設計模式:對象+消息對象及對象類對象——動作體的邏輯模型,在VB中,對象就是可控制的某種東西,如應用程序的每個窗體和窗體上的控件都是對象。對象的屬性、事件、方法屬性
對象中的數(shù)據(jù)方法
對象中的代碼(包括過程和函數(shù))事件
能被對象所識別的動作決定了對象的外觀決定了對象的行為決定了對象之間聯(lián)系的手段對象的命名規(guī)則必須以字母、漢字開頭,由字母、漢字、數(shù)字或下劃線組成。長度≤255個字符。在當前窗體內(nèi)必須唯一。不能使用VB中的關鍵字。VB中不區(qū)分名稱的大小寫。作為對象名的字符串內(nèi)不得包括點號和用于類型說明的字符%、&、!、#、@、$和空格。創(chuàng)建VB程序標題條設計、運行、中斷菜單工具欄標準、編輯、窗體設計、調(diào)試窗體設計器控件箱VB的開發(fā)環(huán)境彈出式菜單工程資源管理器窗口和代碼編輯器窗口屬性窗口窗體布局窗口“立即”、“本地”和“監(jiān)視”窗口對象瀏覽器開發(fā)應用程序的一般步驟創(chuàng)建程序的用戶界面設置界面上各個對象的屬性編寫對象響應事件的程序代碼保存工程調(diào)試創(chuàng)建可執(zhí)行程序使用幫助工程——在VB中創(chuàng)建的應用程序。一個VB應用程序是由若干個不同類型(.frm,.vbp,.bas等)的文件組成的,工程就是這些文件的集合。工程的概念保存工程工程文件(.vbp)——列出了在創(chuàng)建該工程時所建立的所有文件的相關信息。窗體文件(.frm)——包括有窗體、窗體上的對象及窗體上的事件響應代碼。標準模塊文件(.bas)——包含有可被任何窗體或?qū)ο笳{(diào)用的過程程序代碼二進制數(shù)據(jù)文件(.frx)——當窗體中含有二進制屬性(如圖片或圖標)時,該文件將自動產(chǎn)生。使用幫助的三種方法“幫助”菜單中的“目錄”選項卡“幫助”菜單中的“索引”選項卡聯(lián)機幫助:將鼠標放在某一對象上,按“F1”鍵VB程序的設計界面創(chuàng)建窗體窗體的常用屬性、方法和事件屬性的設定:在設計態(tài)時通過屬性窗口設定在程序代碼中改變屬性值
對象名.屬性=表達式窗體的常用屬性Name:名稱屬性Caption:標題屬性BackColor和ForeColor:背景色和前景色屬性BorderStyle:邊框風格屬性Enabled:激活屬性Visible:可視屬性Font:字體屬性Left、Top、Width和Height:位置與大小屬性Picture、Icon:圖片和圖標屬性窗體的常用方法
基本格式:[對象名.]方法名Show—
顯示方法Hide—
隱藏方法Print—打印方法Move—移動方法Refresh—
刷新方法CLS—清除方法[對象.]Print[{Spc(n)|Tab(n)}][表達式列表][;|,]
對象可以是窗體、圖形框或打印機,若省略對象,則默認為窗體。
Spc(n)函數(shù):用于在輸出時插入n個空格,允許重復使用。
Tab(n)函數(shù):用于在輸出表達式列表前向右移動n列,允許重復使用。表達式列表:要輸出的數(shù)值或字符串表達式,若省略,則輸出一個空行,多個表達式之間用逗號、分號分隔,也可出現(xiàn)Spc(n)函數(shù)和Tab(n)函數(shù)。
;(分號):緊湊格式輸出。表示光標定位在上一個顯示的字符后。
,(逗號):標準位置輸出。表示光標定位在下一個打印區(qū)的開始位置處,打印區(qū)每隔14列開始。Print
方法Move方法[對象名.]MoveLeft[,Top,Width,Height]left參數(shù)是必須的。要指定任何其它的參數(shù),必須先指定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。任何沒有指定的尾部的參數(shù)則保持不變。例如:Me.Move(Screen.Width-Me.Width)/2,(Screen.Height-Me.Height)/2窗體的常用事件Click:單擊事件DblClick:雙擊事件Load:裝載事件Unload:卸載事件Resize:改變大小事件Activate:激活事件Deactivate:失去激活事件裝載窗體與Load事件裝載語句:Load窗體名卸載窗體與Unload事件卸載語句:Unload窗體名End
語句標簽(Label)屬性AutoSize決定控件是否能自動調(diào)整大小以顯示所有的內(nèi)容WordWrap決定控件是否擴大以多行方式顯示標題文字,前題是AutoSize為TrueBorderStyle設置邊框是立體的或是平面的BackStyle設置背景是透明或是不透明方法Refresh、Move事件Click、DblClick文本框(TextBox)屬性Text設置控件中包含的文本(小于32KB)MaxLength設置控件中可以輸入字符的最大數(shù),0為任意個字符MultiLine決定用戶是否可以接受多行文本Alignment設置復選框或選項按鈕、或一個控件的文本的對齊ScrollBars決定對象是否有水平或垂直滾動條PasswordChar決定是否在控件中顯示用戶鍵入的字符SelStart*設置所選擇文本的起始點SelLength*設置所選擇文本的字符數(shù)SelText*設置包含當前所選擇文本的字符串方法Refresh強制全部重繪一個窗體或控件SetFocus將焦點移至指定的窗體或控件事件Change當文本框的內(nèi)容改變或通過代碼改變Text屬性的設置時時發(fā)生LostFocus當對象失去焦點時發(fā)生GotFocus當對象獲得焦點時發(fā)生KeyPress當一個對象具有焦點,按下并松開一個鍵時發(fā)生命令按鈕(CommandButton)屬性Cancel設置該命令按鈕是否為窗體的“取消”按鈕Default設置該命令按鈕是否為窗體默認的按鈕Style設置命令按鈕的外觀是標準風格或圖形風格Value*該命令按鈕是否選中,True為選中,F(xiàn)alse為未選中TabIndex設置窗體中的對象響應Tab鍵的順序TabStop設置用戶是否可以使用Tab鍵來選定對象方法SetFocus事件Click選項按鈕(OptionButton)屬性Caption設置選項按鈕旁的標題文字Alignment設置選項按鈕是在標題文字的左邊或是右邊Value設置選項按鈕是否被選中,True為選中,F(xiàn)alse為未選中事件Click、DblClick復選框(CheckBox)屬性Caption同選項按鈕Alignment同選項按鈕Value設置選項按鈕是否被選中,0:未選中,1:選中,2:變灰,暫時不能訪問事件Click框架(Frame)Caption該屬性為空時,可作為一個封閉邊框列表框(ListBox)屬性List設置列表框中包含的項目Text*在列表框中最后選中的列表項的正文文本ListIndex*在列表框中最后選中的列表項序號ListCount*列表框中的列表項數(shù)目Sorted決定是否將列表框中的列表項按ASCII碼自動排序Columus決定列表框中的項目是按一列還是多列顯示方法AddItem向列表框添加項目RemoveItem將列表框中所選中的列表項刪除Clear清空列表框中的所有項目事件Click、DblClick組合框(ComboBox)屬性Style決定組合列表框的外觀其余同ListBox方法同ListBox事件當Style為0或2時可響應Click事件當Style為1時可響應DblClick事件當Style為0或1時可響應Change事件圖片框(PictureBox)屬性Picture設置圖片框的背景圖像AutoSize決定圖片框是否能自動調(diào)整大小以顯示完整的圖片方法Print、Move、Refresh事件Click圖像(Image)屬性Picture設置圖像控件的背景圖像Stretch確定是否縮放圖形來適應圖像控件大小方法Move、Refresh定時器(Timer)屬性Enabled設置該控件是否被激活Interval設置調(diào)用Timer控件的Timer事件間隔的時間(單位為毫秒,最大為65535毫秒)事件TimerTimer控件可以有規(guī)律地隔一段時間執(zhí)行一次代碼水平\垂直滾動條(HscrollBar/VscrollBar)屬性Min設置滾動塊位于滾動條頂端或者最左側(cè)時所代表的值Max設置滾動塊位于滾動條底端或者最右側(cè)時所代表的值LargeChange設置當用戶在滾動條的空白處單擊時增減的值SmallChange設置當用戶在滾動條兩端的箭頭按鈕上單擊時增減的值Value滾動條當前的值事件Change在滾動塊移動后或通過代碼改變Value屬性的設置時發(fā)生。Scroll在滾動塊移動時發(fā)生VB語言基礎過程事件過程
——指附在對象上的程序代碼,是事件的處理程序,由事件調(diào)用。事件過程存儲在窗體模塊(.frm)中。形式:PrivateSub對象名_事件過程名[(參數(shù)列表)]……(事件過程代碼)EndSub通用過程
——可被共享的代碼構成的過程,即該代碼可被不同的窗體所共享,或被一個窗體中不同的事件所共享。由事件過程或其他過程調(diào)用。模塊窗體模塊(.frm)
窗體內(nèi)的事件過程、窗體及窗體中各個控件對象的屬性和相關說明。標準模塊(.BAS)
通用過程及相關說明。創(chuàng)建方法:工程→添加模塊→輸入代碼編碼規(guī)則<語句定義符>[語句體]語句的功能具體操作和說明語句的一般形式:VB代碼中不區(qū)分字母大小寫為了提高程序的可讀性,VB對用戶程序代碼進行自動轉(zhuǎn)換。對于VB中的關鍵字,首字母總被轉(zhuǎn)換成大寫,其余字母被轉(zhuǎn)換成小寫。若關鍵字由多個英文單詞組成,自動將每個單詞的首字母轉(zhuǎn)換成大寫。語句書寫自由在同一行上可以書寫多條語句,語句間用“
:(西文)”分隔。單行語句可分若干行書寫,在本行后加入續(xù)行符(空格和下劃線“_”)。一行允許多達255個字符。注釋有利于程序的維護和調(diào)試方法:Rem語句
Rem<注釋>單引號‘
‘
<注釋>工具按鈕
在工具欄上擊右鍵,在快捷菜單中選擇“編輯”按鈕數(shù)據(jù)類型數(shù)值型(Numeric)數(shù)據(jù)Integer和Long型:用于保存整數(shù),整數(shù)運算速度快、精確,但表示數(shù)的范圍小。Single和Double型:用于保存浮點實數(shù),浮點實數(shù)表示數(shù)的范圍大,但有誤差。Currency型:是定點實數(shù),其保留小數(shù)點右邊4位和小數(shù)點左邊15位,用于貨幣計算。Byte型:用于存儲二進制數(shù)。日期型(Date)數(shù)據(jù)Date型按8字節(jié)的浮點數(shù)來存儲。日期范圍:100年1月1日——9999年12月31日時間范圍:0:00:00——23:59:59邏輯型(Boolean)數(shù)據(jù)
Boolean型用于邏輯判斷,它只有True和
False兩個值。
邏輯數(shù)據(jù)整型數(shù)據(jù)True=-1False=0整型數(shù)據(jù)邏輯數(shù)據(jù)非0數(shù)=True0=False字符型(String)數(shù)據(jù)——String類型存放字符型數(shù)據(jù)。變長字符串定長字符串變體型(Variant)數(shù)據(jù)
——對所有未定義的變量的缺省數(shù)據(jù)類型定義,它對數(shù)據(jù)的處理完全取決于程序上下文的需要。數(shù)據(jù)類型數(shù)據(jù)類型類型名稱類型說明符存儲空間(Byte)初始值數(shù)值型整型Integer%20長整型Long&4單精度Single!4雙精度Double#8貨幣型Currency@8字節(jié)型Byte1字符型變長字符串String$10+串長度空字符串定長字符串String*Size$串長度布爾型Boolean2False日期型Date80:00:00變體型Variant>=16空字符串對象型Object4常量與變量常量
——在程序中取值始終保持不變的數(shù)據(jù),可以是具體的數(shù)值,也可以是專門說明的符號。變量
——以符號形式出現(xiàn)在程序中,且取值可以發(fā)生變化的數(shù)據(jù)。命名規(guī)則必須以字母、漢字開頭,由字母、漢字、數(shù)字或下劃線組成。長度≤255個字符。在作用域內(nèi)必須唯一。不能使用VB中的關鍵字。VB中不區(qū)分變量名的大小寫。作為變量名的字符串內(nèi)不得包括點號和用于類型說明的字符%、&、!、#、@、$和空格。Const語句的形式:
[Public|Private]Const<常量名>[AsType]=<值>
全局模塊數(shù)據(jù)類型常量的說明ConstPI=3.14159ConstMaxAsInteger=1000PublicConstCountry$=“China”,Fax_Num&=1234567890類型示例數(shù)值常量123、-9.876E-5(單精度)、3.14159265D8(雙精度)、&O137(八進制)、&H2AB8(十六進制)字符常量"VisualBasic"、"中國北京2008奧運會"(注:字符常量一定要放在西文雙引號內(nèi))邏輯常量True(真)、False(假)、非0值轉(zhuǎn)換為True、0轉(zhuǎn)換為False日期常量#12:35:48#、#7/12/2004#回車與換行符Chr(13)+Chr(10)或vbCrLf符號常量自定義語句格式:Const常量名[類型說明符]As數(shù)據(jù)類型=表達式ConstPi!=3.1415926ConstOlympicAsString="中國北京2008奧運會"顏色常量紅色vbRed青色vbCyan綠色vbGreen洋紅色vbMagenta藍色vbBlue黑色vbBlack黃色vbYellow白色vbWhite變量的說明Dim
<變量名>As<類型>[,<變量名>As<類型>]…
——用于說明窗體變量或局部變量。Public
<變量名>As<類型>[,<變量名>As<類型>]…
——用于說明全局變量。Private
<變量名>As<類型>[,<變量名>As<類型>]…
——用于說明窗體/模塊級變量。Static
<變量名>As<類型>[,<變量名>As<類型>]…
——用于說明靜態(tài)變量。變長字符串:
Dim<字符串變量名>AsString定
長字符串:
Dim<字符串變量名>AsString*
字符數(shù)變量的作用域局部變量在過程中說明,僅在說明它的過程中使用。窗體/模塊變量在窗體或標準模塊中說明,在定義該變量的模塊或窗體的所有過程內(nèi)均有效。全局變量在模塊或窗體中說明,在工程內(nèi)的所有過程中都有效。
局部變量窗體/模塊變量全局變量窗體模塊標準模塊內(nèi)聲明方式DimStaticDimPrivatePublic聲明位置過程中通用聲明通用聲明作用域僅在說明它的過程中使用在定義該變量的模塊或窗體的所有過程內(nèi)均有效在工程內(nèi)的所有過程中都有效OptionExplicit
語句——要求變量聲明可以通過“工具”菜單中的“選項”進行設置。數(shù)據(jù)定義時注意事項Integer類型數(shù)據(jù)的表示范圍;-32768~32767使用不同的關鍵字聲明變量時,變量作用域有何不同;(Dim、Private、Public、Static)變量聲明后的初始值;字符串型為空串數(shù)值型為0布爾型為False日期時間型為#0:00:00#聲明變量時,必須對每個變量逐個加AsType;過程中不能用Public、Private聲明變量;用Static聲明變量時只能出現(xiàn)在過程中;常數(shù)、定長字符串、數(shù)組在窗體模塊中不能用Public定義
運算符算術運算符^、
-(負號)
、*、/
、\
(整除)、Mod(求模)、+
、-字符串運算符
&
和
+關系運算符
=、>、>=、<
、<=、<>邏輯運算符
運算符意義說明舉例結(jié)果Not取反當操作數(shù)為假時,結(jié)果為真NotFTAnd與操作數(shù)均為真時,結(jié)果才為真TAndFTAndTFTOr或操作數(shù)中有一個為真時,結(jié)果為真TOrFFOrFTFXor異或操作數(shù)相反時,結(jié)果才為真注:數(shù)值型數(shù)據(jù)的異或運算用補碼進行運算TXorFTXorTTF表達式表達式——由變量、常量和運算符按一定的規(guī)則組成的一個字符序列。算術運算符
>
字符運算符>
關系運算符
>
邏輯運算符運算規(guī)則乘方(^)、除法(/)運算結(jié)果為雙精度求余(MOD)、整除(\)運算要求數(shù)據(jù)必須為整型,且運算結(jié)果的符號與第一個操作數(shù)相同其他運算符運算時,若兩個運算對象類型相同,則結(jié)果類型也與之相同,否則結(jié)果類型為存儲長度相對較長的那個類型非整數(shù)轉(zhuǎn)換成整數(shù)的原則:四舍六入五成雙;(Format函數(shù)中除外)標準函數(shù)算術函數(shù)字符串函數(shù)日期函數(shù)轉(zhuǎn)換函數(shù)其它常用函數(shù)算術函數(shù)函數(shù)功能函數(shù)值類型Sqr(x)求x的平方根值,x≥0數(shù)值型Log(x)求x的自然對數(shù),x>0Exp(x)求以e為底的冪值,即求exAbs(x)求x的絕對值Hex(x)求x的十六進制數(shù)值,結(jié)果為一字符串字符型Oct(x)求x的八進制數(shù)值,結(jié)果為一字符串Sgn(x)求x的符號,x>0為1,x=0為0,x<0為-1數(shù)值型Rnd(x)產(chǎn)生一個在[0,1]區(qū)間均勻分布的隨機數(shù)若產(chǎn)生m~n之間的隨機整數(shù)其通式為:Int(Rnd*(n-m)+1)+mSin(x)求x的正弦值,x單位為弧度Cos(x)求x的余弦值,x單位為弧度Tan(x)求x的正切值,x單位為弧度Atn(x)求x的反正切值,x單位為弧度字符串函數(shù)函數(shù)功能函數(shù)值類型Len(St)求字符串St的長度(字符個數(shù))數(shù)值型Left(St,n)從字符串St左邊起取n個字符字符型Right(St,n)從字符串St右邊起取n個字符Mid(St,n1,n2)從字符串St左邊第n1個位置開始向右起取n2個字符,若n2省略則取從n1到結(jié)尾的所有字符Ucase(St)將字符串St中所有小寫字符改為大寫Lcase(St)將字符串St中所有大寫字符改為小寫Ltrim(St)去掉字符串St的前導空格Rtrim(St)去掉字符串St的尾隨空格Trim(St)去掉字符串St的前導和尾隨空格Instr([n,]St1,St2)從St1的第n個位置起查找給定的字符St2,返回該字符在St1中最先出現(xiàn)的位置,n的缺省值為1,若沒有找到St2,則函數(shù)值為0數(shù)值型String(n,St)得到由n個給定字符St組成的一個字符串字符型Space(n)得到n個空格日期函數(shù)函數(shù)功能函數(shù)值類型Date[$]返回系統(tǒng)當前的日期日期型Time[$]返回系統(tǒng)當前的時間Now返回系統(tǒng)當前的日期和時間Year(x)返回一個表示x的年號的整數(shù),x為一有效的日期變量、常量或字符表達式數(shù)值型Month(x)返回一個表示x的月份的整數(shù),x為一有效的日期變量、常量或字符表達式Day(x)返回1-31之間的整型數(shù),x為一有效的日期變量、常量或字符表達式Weekday(x[,c])返回x是星期幾,x為一有效的日期變量、常量或字符表達式,c是用于指定星期幾為一個星期第一天的常數(shù),缺省時表示一周的星期天為第一天轉(zhuǎn)換函數(shù)函數(shù)功能函數(shù)值類型Str(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成字符串(含符號位)字符型CStr(x)將x轉(zhuǎn)換成字符串型,若x為數(shù)值型,則轉(zhuǎn)為數(shù)字字符串(對于正數(shù)符號位不予保留)Val(x)將字符串x中的數(shù)字轉(zhuǎn)換成數(shù)值數(shù)值型Chr(x)返回以x為ASCII代碼值的字符字符型Asc(x)給出字符x的ASCII代碼值(十進制數(shù))數(shù)值型CInt(x)將數(shù)值型數(shù)據(jù)x的小數(shù)部分四舍五入取整Fix(x)將數(shù)值型數(shù)據(jù)x的小數(shù)部分舍去Int(x)取小于等于x的最大整數(shù)其它常用函數(shù)函數(shù)格式和功能InputBox格式X=InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])功能在一對話框中顯示提示,等待用戶輸入正文或按下按鈕,并返回包含文本框內(nèi)容的字符串。MsgBox格式MsgBox(prompt[,buttons][,title][,helpfile,context])功能在對話框中顯示消息,等待用戶單擊按鈕,并返回一個整數(shù)告訴用戶單擊哪一個按鈕。Format格式Format(expression[,format[,firstdayofweek[,firstweekofyear]]])功能返回
Variant(String),根據(jù)格式表達式中的指令來格式化的IsNumeric格式IsNumeric(expression)功能返回Boolean值,指出表達式的運算結(jié)果是否為數(shù)。如果為數(shù)字,則IsNumeric返回True;否則返回False,若是日期表達式,則IsNumeric
返回False。LoadPicture格式LoadPicture([filename],[size],[colordepth],[x,y])功能將圖形載入到窗體、PictureBox
控件或Image
控件的Picture
屬性RGB格式RGB(red,green,blue)功能返回一個Long整數(shù),用來表示一個RGB顏色值Format函數(shù)Format(<算術表達式>,fmt$)fmt$是用于格式控制的字符串,其中可包括以下的控制字符:#0.,%$-+()E+E-InputBox函數(shù)V=InputBox(提示[,標題][,缺省][,x坐標位置][,y坐標位置])提示:為一字符串表達式,在對話框中作為信息顯示,若要在多行顯示,必須在每行行末加回車Chr(13)和換行Chr(10)控制符,不能省略該項。標題:在對話框的標題欄中顯示的字符串表達式,若省略,則把應用程序名放入標題欄中。缺?。鹤址磉_式,當輸入對話框中無輸入時,則該缺省值作為輸入的內(nèi)容;若省略,則為空。x\、y坐標位置:整型表達式,確定對話框左上角在屏幕上的位置MsgBox函數(shù)格式一
n=MsgBox(提示[,按鈕][,標題])
n—
返回按下的按鈕值格式二
MsgBox提示[,按鈕][,標題]
沒有返回值
求三角形的面積輸入a,b,c計算p=(a+b+c)/2計算輸出S開始輸入a,b,c求p求s輸出s結(jié)束開始輸入a,b,c求p求s輸出s結(jié)束三角形是否成立?錯誤信息清空a,b,cTF基本算法結(jié)構結(jié)構化程序設計方法的核心順序結(jié)構分支結(jié)構循環(huán)結(jié)構ABeABTFeAAeTFTF順序結(jié)構分支結(jié)構當型循環(huán)直到型循環(huán)IfeThen
[A組語句] EndIfIfeThen[A組語句]分支結(jié)構
單分支結(jié)構語句eATFIfeThen
[A組語句] Else
[B組語句] EndIfIfeThen語句1Else語句2eABTF
雙分支結(jié)構語句Ife1Then
[A1組語句]ElseIfe2Then
[A2組語句]
……[Else
An+1組語句]EndIf
多分支結(jié)構語句A1TFe2e1enA2AnFAn
+1TTF……綜合練習輸入x、y、z三個數(shù),按從大到小的次序顯示。要求: 對輸入的數(shù)應有測試手段,可以通過IsNumeric函數(shù)對文本框中的數(shù)進行測試。若輸入的數(shù)有非數(shù)字字符,顯示“不能轉(zhuǎn)換成數(shù)值”,提示再輸入。x<yy>zTFx>zTFFTy,z,xz,x,yx,z,yz,y,xy>zx,y,zx>zy,x,zTTFF輸入x,y,zx<y交換x,yx<zy<z交換x,z交換y,z輸出x,y,zTFTTFF
SelectCasee
Casec1
A組語句
Casec2
B組語句
……
Case
Else
n組語句
End
Select
SelectCase結(jié)構語句個人所得稅計算方法所得稅額=(稅前收入-2000)*納稅率-速算扣除數(shù)循環(huán)結(jié)構
For
循環(huán)語句For
v=e1Toe2[Stepe3]
…… [ExitFor]
……
Next
vAV超過e2?v=e1計算e1,e2,e3V=v+e3TF循環(huán)舉例將可打印的ASSCII碼制成表格輸出,使每個字符與它的編碼值對應起來,每行打印7個字符。分析:
在ASCII碼中,從“空格”到“~”是可以打印的字符,其編碼值從32~126,可通過Chr()函數(shù)將編碼值轉(zhuǎn)換成對應的字符。打印九九乘法表求100以內(nèi)的素數(shù)打印圖形循環(huán)舉例DoWhile
e
… [ExitDo]
…LoopDo-Loop循環(huán)語句eATFExitDoADo
… [ExitDo]
…LoopWhile
eAeTFExitDoADoUntil
e
… [ExitDo]
…LoopeAFTExitDoADo
… [ExitDo]
…LoopUntil
eAeFTExitDoADo
循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構For
循環(huán)用于控制循環(huán)次數(shù)預知的循環(huán)結(jié)構[循環(huán)次數(shù)=Int((e2-e1)/e3)+1][退出循環(huán)時v?]不一定?For循環(huán)Do循環(huán)循環(huán)的嵌套內(nèi)循環(huán)變量與外循環(huán)變量不能同名。外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉?!痢獭痢萄h(huán)體內(nèi)循環(huán)體外外循環(huán)內(nèi)循環(huán)(用ExitFor語句和ExitDo語句退出循環(huán))用輾轉(zhuǎn)相除法求兩自然數(shù)m、n的最大公約數(shù)和最小公倍數(shù)。分析:輸入m、nr=mModn若r=0,則n為最大公約數(shù)若r≠0,則m←n,n←r,再重復執(zhí)行第(2)步循環(huán)舉例輸入m,nr=mModnr<>0m=nn=rr=mModn輸出nFT用牛頓迭代法求方程xex-1=0在x0=0.5附近的一個根,要求精確到10-7。xn+1=xn-f(xn)/f’(xn) n=0,1,2,3,…x0=0.5x1=x0-f(x0)/f’(x0)x2=x1-f(x1)/f’(x1)x3=x2-f(x2)/f’(x2)其中:f'(x)=ex(x+1)Dox=x1x1=x-(x*exp(x)-1)/(exp(x)*(x+1))LoopuntilAbs(x-x1)<=1e-7循環(huán)舉例求下列表達式的值,計算到第n項的值小于等于10-6為止。二分法求方程的根a=0:b=1c=(a+b)/2求f(a)和f(c)f(a)*f(c)>0a=cb=ca-b<10-5輸出aTFTF不同對象的輸出、換行和清空窗體圖片框文本框列表框輸出Print
表達式P1.Print表達式Text1=表達式Text1=Text1&表達式List1.AddItem表達式換行PrintP1.PrintText1=Text1+vbCrLf清空ClsP1.ClsText1=“”List1.Clear示例1求二個數(shù)的最大公約數(shù)和最小公倍數(shù)素數(shù)、回文數(shù)數(shù)制轉(zhuǎn)換求降序數(shù)、升序數(shù)二分法生成一組隨機數(shù),求其中的最大數(shù)和最小數(shù)示例2求出1000以內(nèi)的所有完全數(shù),并按要求顯示在列表框中。所謂完全數(shù)是指一個數(shù)的所有因子之和(不包括其本身)仍然等于這個數(shù)。示例3加密/解密程序。算法:將原文中的每個字符的ASCII碼加上該字符的在原文中的位置數(shù)(每個字符在原文中是第n個字符,其位置數(shù)是被10除的余數(shù),當余數(shù)為0時,其位置數(shù)為10,)作為密文字符的代碼,再將密碼字符逆序排列。解密算法是加密的逆運算。(2006-2)示例4給定一個十進制正整數(shù),找出小于它并與其互質(zhì)的所有正整數(shù)(所謂互質(zhì)數(shù)是指最大公約數(shù)為1的兩個整數(shù),程序運行時的畫面如圖)示例5從鍵盤上輸入一個正整數(shù),找出大于或等于該數(shù)的第一個素數(shù)。PrivateSubForm_Click()DimpAsInteger,xAsInteger,flagAsBooleanflag=Falsex=InputBox("請輸入一個正整數(shù)")DoWhileNotflagp=2:flag=(16)DoWhileflagAnd(p<=(x/2))IfxModp=0Thenflag=FalseElse
(17)EndIfLoopIfNotflagThen(18)LoopPrintxEndSub數(shù)組的應用產(chǎn)生10個100~200之間的隨機整數(shù),并按從小到大的順序輸出。數(shù)組數(shù)組
——是一組相同類型變量的的一個有序的集合。數(shù)組在使用前必須先說明! 數(shù)組名(s1,s2…)下標
下標:表示該元素在數(shù)組中的排列位置。有一個下標為一維數(shù)組,有二個下標為二維數(shù)組。下標的取值為整型數(shù),取值范圍可表示如下:
[下界To]上界省略為0數(shù)組說明語句Public|Private|Static|Dim
<數(shù)組名>([維界定義])[As數(shù)據(jù)類型]語句適用范圍Public用于標準模塊的聲明段,定義公用(全局數(shù)組)Private和Dim用于模塊的聲明段,定義窗體/模塊級數(shù)組Dim用在過程中,定義局部數(shù)組Static用在過程中,定義靜態(tài)數(shù)組固定大小數(shù)組在聲明時已確定了大小的數(shù)組為固定大小數(shù)組。形式:
Dim
數(shù)組名(下標)[As數(shù)據(jù)類型]例:Dimmark(1to100)AsInteger DimA(5)AsInteger,B(3to5,7to8)AsSingleDimA(4,4)AsInteger
5*5=25個元素A(0,0)A(0,1)A(0,2)A(0,3)A(0,4)A(1,0)A(1,1)A(1,2)A(1,3)A(1,4)A(2,0)A(2,1)A(2,2)A(2,3)A(2,4)A(3,0)A(3,1)A(3,2)A(3,3)A(3,4)A(4,0)A(4,1)A(4,2)A(4,3)A(4,4)動態(tài)數(shù)組在聲明時未確定大小的數(shù)組為動態(tài)數(shù)組。形式:
Dim
數(shù)組名()[As數(shù)據(jù)類型]使用時,隨時用ReDim語句重新指出數(shù)組的大小
ReDim
[preserve]
數(shù)組名(下標)例:DimA()AsInteger
……
ReDimA(5)
…… ReDimPreserveA(10)
……保留原數(shù)組中的元素的內(nèi)容可以是有確定值的變量OptionBase語句
OptionBase1
——將數(shù)組下標的缺省下界設置為1可以使用ReDim語句反復地改變數(shù)組的元素以及維數(shù)的數(shù)目,但是不能在將一個數(shù)組定義為某種數(shù)據(jù)類型之后,再使用ReDim將該數(shù)組改為其它數(shù)據(jù)類型。如果使用了Preserve關鍵字,就只能重定義數(shù)組最末維的大小,且根本不能改變維數(shù)的數(shù)目。例如,如果數(shù)組就是一維的,則可以重定義該維的大小,因為它是最末維,也是僅有的一維。不過,如果數(shù)組是二維或更多維時,則只有改變其最末維才能同時仍保留數(shù)組中的內(nèi)容。ReDim語句的使用數(shù)組函數(shù)與數(shù)組語句Ubound()函數(shù)——可用的最大下標Lbound()函數(shù)——可用的最小下標若為二維數(shù)組,可用Ubound(A,1)或Ubound(A,2)得到其第一維或第二維的最大下標Array()函數(shù)IsArray()函數(shù)Erase
——重新初始化固定大小數(shù)組的元素,或者釋放動態(tài)數(shù)組的存儲空間。 格式:Erasea1[,a2,……]ForEach-Next語句
ForEachElementIn<array>
語句組
[ExitFor]
語句組
Next[Element]
Element------表示數(shù)組中的每一個元素,必須是Variant變量
array------表示要處理的數(shù)組名篩選排序、冒泡排序、插入排序、順序查找、二分查找A(2)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(1)<A(j)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(2)<A(j)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(3)<A(j)Then交換數(shù)第1個i=1第2個i=2第3個i=3A(2)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(4)<A(j)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(5)<A(j)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(6)<A(j)Then交換數(shù)第5個i=5第6個i=6第4個i=4A(2)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(7)<A(n)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(8)<A(n)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)IfA(6)<A(n)Then交換數(shù)A(1)A(2)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)第8個i=8第7個i=7第9個i=9第10個Fori=1to9Forj=i+1to10IfA(i)<A(j)ThenTemp=A(i)A(i)=A(j)A(j)=TempEndIfNextjNextiA(2)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)A(2)A(1)A(2)A(4)A(6)A(5)A(8)A(7)A(10)A(9)A(3)第1個第2個i=2第3個i=311插入排序A(1)A(2)A(3)A(6)A(5)A(8)A(7)A(10)A(9)A(4)第4個i=4A(1)A(2)A(3)A(6)A(4)A(8)A(7)A(10)A(9)A(5)第5個i=5123123A(2)A(1)A(4)A(3)A(6)A(5)A(8)A(7)A(10)A(9)A(6)A(8)A(7)A(10)A(9)TopBotMidA(6)A(7)TopMidBotTopBotX=inputbox()Mid=(top+bot)\2Ifa(mid)=xthen
找到了ElseIfa(mid)>xthenbot=mid-1Elsetop=mid+1Endif結(jié)束條件:top>=bot二分查找報數(shù)過程模擬12345101111110101010111111111111111167238451011110001000101967210384510110100000001011112967210384500100100000001011113129672103845000001000000010求矩陣相乘a(3,2)*b(2,3)=c(3,3)c(1,1)=a(1,1)*b(1,1)+a(1,2)*b(2,1)c(1,2)=a(1,1)*b(1,2)+a(1,2)*b(2,2)c(1,3)=a(1,1)*b(1,3)+a(1,2)*b(2,3)c(2,1)=a(2,1)*b(1,1)+a(2,2)*b(2,1)c(2,2)=a(2,1)*b(1,2)+a(2,2)*b(2,2)c(2,3)=a(2,1)*b(1,3)+a(2,2)*b(2,3)c(3,1)=a(3,1)*b(1,1)+a(3,2)*b(2,1)c(3,2)=a(3,1)*b(1,2)+a(3,2)*b(2,2)c(3,3)=a(3,1)*b(1,3)+a(3,2)*b(2,3)C(i,j)=a(i,1)*a(1,j)+a(i,2)*b(2,j)作業(yè)課堂練習P8012課后作業(yè)P8013、14、15實驗五、實驗六、實驗八、實驗九程序調(diào)試概述錯誤類型語法錯誤——違反語法規(guī)則的錯誤運行錯誤——試圖執(zhí)行不可進行的操作或使用不存在的操作邏輯錯誤——編寫的代碼不能實現(xiàn)預定的功能VB調(diào)試工具設置自動語法檢查“工具”——“選項”調(diào)試工具欄對象不存在下標越界數(shù)據(jù)溢出變量未定義程序調(diào)試中斷狀態(tài)程序在執(zhí)行的中途被停止,稱為“中斷”進入中斷的方式發(fā)生運行錯誤時中斷命令(Ctrl+Break、”運行”—“中斷”)設置斷點單步調(diào)試斷點設置“調(diào)試”—“切換斷點”點擊“調(diào)試”—“清除所有斷點”單步調(diào)試“調(diào)試”—“逐語句”F8對變量和對象的監(jiān)視調(diào)試窗口“本地”窗口監(jiān)視所有局部變量和控件的屬性值“監(jiān)視”窗口用于查看制定表達式的值“立即”窗口立即執(zhí)行代碼及顯示表達式和變量的值Debug.print?過程Sub過程Vb使用三種過程子程序過程(SubProcedure)Sub過程不返回值函數(shù)過程(FunctionProcedure)Function過程返回一個值屬性過程(PropertyProcedure)Property過程設置和返回對象、類等的屬性值Sub過程事件過程事件是能被對象識別的動作當VB認定某事件發(fā)生時,自動引導特定的事件過程事件過程是窗體和控件的附屬物分為窗體事件過程和控件事件過程PrivateSubForm_事件名[(參數(shù)列表)][局部變量和常數(shù)聲明]
語句塊EndSub
注意 過程名由“Form”、下劃線和事件名組成 過程名前的“Private”,用于限定其使用范圍是模塊級的事件過程有無參數(shù),由VB決定窗體事件過程的語法PrivateSub控件名_事件名[(參數(shù)列表)][局部變量和常數(shù)聲明]
語句塊EndSub
注意:過程名由控件名、下劃線和事件名組成控件事件過程的語法建立事件過程雙擊窗體或控件單擊“查看代碼”按鈕,打開“代碼”窗口,在“對象”框中選擇相應的對象,在“過程”框中選擇相應的事件通用過程通用過程是一個必須從另一個過程顯式調(diào)用的程序段,使用它可使復雜程序分解成易于管理的邏輯單元。通用過程分為公有過程和私有過程兩種。定義Sub過程Sub過程不能嵌套定義建立Sub過程[Private|Public][Static]Sub
過程名([參數(shù)列表])[局部變量和常數(shù)聲明]
語句塊
[ExitSub]
語句塊EndSub 前綴Private、Public、Static形式參數(shù)格式:(“傳值”和“傳址”方式)[ByVal][Byref]變量名[()]As數(shù)據(jù)類型]Sub過程定義Sub過程調(diào)用事件過程由系統(tǒng)自行調(diào)用Sub過程調(diào)用Call語句Call過程名(實在參數(shù)表)直接用過程名過程名[實參1[,實參2...]]參數(shù)的傳遞方式有“傳值”和“傳址”參數(shù)的傳遞形參定義過程(Sub)或函數(shù)(Function)時,出現(xiàn)在形參表中的變量名、數(shù)組名稱之為形式參數(shù)形參給出傳遞到過程(函數(shù))中的值在過程(函數(shù))中的表現(xiàn)形式形參的類型(1).除定長字符串變量之外的合法變量名;(2).后面跟有左右圓括號的數(shù)組名實參在調(diào)用Sub或Function過程時,傳送給相應過程的變量名、數(shù)組名、常數(shù)或表達式傳遞參數(shù)的兩種方式
“形實結(jié)合”要求在傳遞參數(shù)時,“形實對應”,要求形參和實參數(shù)據(jù)類型相互兼容按值傳遞按地址傳遞(“引用”)形參前加關鍵字“ByVal”過程調(diào)用時,VB給按值傳遞參數(shù)分配一個臨時存儲單元按值傳遞參數(shù),傳遞的只是實參變量的副本過程中改變形參值,只影響副本按值傳遞參數(shù)形參前加關鍵字“ByRef”,或省略關鍵字形參和實參共用內(nèi)存的同一“地址”若實參是變量、數(shù)組元素或數(shù)組,則形參和實參類型必須一致過程中改變形參值,將同時改變形參和實參中的值若實參為一個常量或者表達式,VB將按傳值方式處理若實參是與形參類型不一致的常數(shù)或表達式,VB會按要求進行數(shù)據(jù)轉(zhuǎn)換,再將轉(zhuǎn)換后的值傳遞給形參。按地址傳遞參數(shù)數(shù)組參數(shù)聲明數(shù)組參數(shù)的格式:
形參數(shù)組名()[As數(shù)據(jù)類型]數(shù)組形參的下標和維數(shù)由數(shù)組實參決定對象參數(shù)形參的類型可聲明為Control——向過程傳遞控件形參的類型可聲明為Form——向窗體傳遞控件VB可以將對象賦給某一變量Function過程定義(自定義函數(shù))語法:[Private|Public][Static]Function
函數(shù)名([參數(shù)列表])[As數(shù)據(jù)類型][局部變量和常數(shù)聲明][語句塊]
[函數(shù)名=表達式]
[ExitFunction]
[語句塊]
[函數(shù)名=表達式]EndFunctionFunction過程調(diào)用函數(shù)過程名([實在參數(shù)表])注意:1.
函數(shù)返回的值往往需要使用,則參數(shù)必須加上括號
2.
但也可以按Sub來使用,只是此時將放棄返回值調(diào)用其他模塊中的公用過程窗體中的公用過程
Call<窗體模塊名>.<過程名>標準模塊中的公用過程無同名過程
Call<過程名>有同名過程
Call<標準模塊名>.<過程名>遞歸過程在函數(shù)(或過程)定義中調(diào)用了函數(shù)(或過程)本身,即遞歸為定義的函數(shù)(或過程)遞歸過程中必須有結(jié)束遞歸語句調(diào)用遞歸過程時,程序的執(zhí)行過程:Fact(3)3*Fact(2)Fact(2)2*Fact(1)Fact(1)1Fact(2)=2Fact(3)=6逐層調(diào)用逐層返回5!=5*4*3*2*15!=5*4! 4!=4*3! 3!=3*2! 2!=2*1! 1!=1Fact(n)AsLongIfn=0orn=1then fact=1Else fact=n*fact(n-1)EndifFact(3)=63*Fact(2)=3*2=62*Fact(1)=2*1=2Fact(1)=1逐層調(diào)用逐層返回應用程序的組成應用程序(.vbp文件)一個或若干個窗體模塊(.frm)文件一個或若干個標準模塊(.Bas)文件事件過程(Sub)用戶自定義過程(Sub)用戶自定義函數(shù)過程(Function)用戶自定義過程(Sub)用戶自定義函數(shù)過程(Function)過程的作用域根據(jù)過程的作用域,過程分為窗體/模塊級和全局級。不同作用范圍的二種過程定義及調(diào)用規(guī)則能但過程名必須唯一,否則要加標準模塊名能但必須在過程名前加窗體名不能不能能否被本應用程序其他模塊調(diào)用能能能能能否被本模塊其他過程調(diào)用Public缺省Private定義方式標準模塊窗體標準模塊窗體全局級模塊級作用范圍變量的作用域根據(jù)變量的作用域,變量分為局部(過程級)變量、窗體/模塊變量和全局變量局部變量在過程中用Dim語句定義,只存在于過程中窗體/模塊變量Dim語句或Private語句定義,模塊中的所有過程都可使用全局變量Public語句定義,可以在所有模塊中使用能能變量名前加窗體名不能不能被其他模塊存取能能不能被本模塊的其他過程存取通用聲明通用聲明過程中聲明位置PublicDimPrivateDimStatic聲明方式標準模塊窗體全局變量窗體/
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西農(nóng)業(yè)大學南昌商學院《電視欄目創(chuàng)意與策劃》2023-2024學年第一學期期末試卷
- 公共交通行業(yè)服務質(zhì)量評價制度
- 公共交通車輛維修質(zhì)量管理制度
- 工作責任追究制度
- 新疆魚類制品種類及食用情況調(diào)查問卷
- 關于聯(lián)耕聯(lián)種生產(chǎn)方式推行的民意調(diào)查
- 農(nóng)村暗室改造方案范本
- 2025年農(nóng)林牧漁行業(yè)現(xiàn)狀分析:國家對農(nóng)林牧漁行業(yè)政策支持力度不斷加大
- 無機墻體保溫施工方案
- 廣東省深圳實驗學校高中園2024-2025學年高二上學期第三階段考試數(shù)學試題(解析版)
- 農(nóng)民田間學校規(guī)章制度
- 《電力建設施工技術規(guī)范 第2部分:鍋爐機組》DLT 5190.2
- 供水管網(wǎng)搶修管理課件
- 微信公眾號總結(jié)報告
- 制定售后服務績效考評標準與方法
- 正確認識人的本質(zhì) (修改版)
- 2023年北京師范大學珠海分校招聘考試真題
- 2016-2023年江蘇經(jīng)貿(mào)職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年考點試題甄選合集含答案解析
- 高原健康呼吸用氧 通用技術指南
- 中醫(yī)內(nèi)科學-咳嗽課件
- 2022管理學試題庫(馬工程)
評論
0/150
提交評論