程序設(shè)計與計算ppt課件(完整版)_第1頁
程序設(shè)計與計算ppt課件(完整版)_第2頁
程序設(shè)計與計算ppt課件(完整版)_第3頁
程序設(shè)計與計算ppt課件(完整版)_第4頁
程序設(shè)計與計算ppt課件(完整版)_第5頁
已閱讀5頁,還剩358頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第0章 緒論 程序與程序設(shè)計語言程序設(shè)計方法算法計算思維0.1 程序與程序設(shè)計語言程序程序設(shè)計語言機器語言匯編語言高級語言 0.1 程序與程序設(shè)計語言機器語言 10111000000000010000010000000010匯編語言 MOV AL,1ADD AL,2 高級語言 x=1+2 0.2 程序設(shè)計方法結(jié)構(gòu)化的程序設(shè)計 3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 面向?qū)ο蟮某绦蛟O(shè)計 類、對象屬性、事件、方法0-2 程序設(shè)計方法 結(jié)構(gòu)化的程序設(shè)計思想面向?qū)ο蟮某绦蛟O(shè)計思想 0.2.1 結(jié)構(gòu)化的程序設(shè)計程序設(shè)計劃分為3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 順序結(jié)構(gòu)當(dāng)需要按照語句的先后

2、次序從上到下依次執(zhí)行每條語句時,采用順序結(jié)構(gòu)選擇結(jié)構(gòu)當(dāng)需要根據(jù)某個條件選擇執(zhí)行程序的不同部分時,采用選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)當(dāng)需要根據(jù)某個條件是否成立決定是否反復(fù)執(zhí)行某段程序時,采用循環(huán)結(jié)構(gòu)0.2.2 面向?qū)ο蟮某绦蛟O(shè)計類:同類事物抽象“車”可以抽象成一個類 可以劃分為“跑車”、“轎車”、“越野車”、“貨車”等子類 對象:類中的每個具體事物“轎車”類中某個具體車牌為“京A123456”則為一個具體的對象0.2.2 面向?qū)ο蟮某绦蛟O(shè)計對象的屬性:靜態(tài)特征“轎車”類有“車牌”、“品牌”“、“型號”、“顏色”、“是否四輪驅(qū)動”等屬性 對象的事件:動態(tài)特征,外界觸發(fā)“踩剎車” 對象的方法:動態(tài)特征,本身執(zhí)行“

3、停止”0. 3 算法算法:描述解決問題的步驟算法的描述:標(biāo)準(zhǔn)流程圖 0. 3 算法算法策略 窮舉法貪心法分治法回溯法 0.4 計算思維是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、以及人類行為理解等涵蓋計算機科學(xué)之廣度的一系列思維活動。 一種基本思考方式與技能。 0.4 計算思維對于程序設(shè)計語言來說,其中包含著如下計算思維的概念:數(shù)據(jù)的組織結(jié)構(gòu)的模塊化數(shù)據(jù)的傳遞數(shù)據(jù)的處理 第1章 Visual Basic 6.0簡介Visual Basic 6.0概述。Visual Basic 6.0的集成開發(fā)環(huán)境。Visual Basic程序組成與特點。1.1 Visual Basic 6.0概述特點面

4、向?qū)ο罂梢暬录?qū)動版本學(xué)習(xí)版專業(yè)版企業(yè)版Visual Basic 6.0中文企業(yè)版1.1.1 Visual Basic 6.0的啟動和退出1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境1. 標(biāo)題欄三種工作狀態(tài)2. 菜單欄 Visual Basic提供的所有命令3. 工具欄 工具欄為常用菜單命令提供了快捷方式工具欄1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境4. 工程資源管理器窗口:查看工程結(jié)構(gòu)1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境5窗體設(shè)計器窗口:查看對象,設(shè)計界面1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境6窗體布局窗口:設(shè)定窗體

5、在屏幕初始位置 1-3 VB6.0的集成開發(fā)環(huán)境7工具箱:管理控件標(biāo)準(zhǔn)exe工程所帶有的控件1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境8屬性窗口:設(shè)定對象的屬性值name屬性對象的名字每個對象name不同caption屬性對象的標(biāo)題 1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境9代碼編輯器窗口 :編寫代碼1.1.2 Visual Basic 6.0的集成開發(fā)環(huán)境自動列出對象的屬性和方法: 1.2 Visual Basic程序概述1.2.2 面向?qū)ο笏枷雽傩詫ο竺?屬性名 = 屬性值事件Private Sub對象名_事件名(參數(shù))End Sub方法對象名.方法名 參

6、數(shù)第2章 VB程序設(shè)計步驟 Visual Basic 6.0的程序設(shè)計步驟窗體常用控件2.1 一個簡單的VB6.0程序 新建工程。 設(shè)計程序界面。 設(shè)置對象屬性。 編寫程序代碼。 運行程序。 保存程序。 生成可執(zhí)行文件。2.1 一個簡單的VB6.0程序2.2 窗 體 在代碼編寫階段,每個窗體對應(yīng)著一個代碼窗口當(dāng)程序運行階段,每個窗體就對應(yīng)著一個窗口 2.2 窗 體屬性Name:窗體的唯一標(biāo)識 Caption:標(biāo)題Picture:窗體中顯示的圖片 2.2 窗 體事件單擊(Click):單擊一個窗體的空白區(qū)域時觸發(fā)裝入(Load):當(dāng)窗體裝入內(nèi)存時觸發(fā)該事件,通常在該事件發(fā)生時進行控件、變量的初始

7、化工作問題:窗體顯示時,窗體的背景顏色設(shè)置為紅色2.2 窗 體方法Print:用于在窗體上輸出數(shù)據(jù) Print Hello World 在當(dāng)前窗體上輸出“Hello World” a = 10Print a + 20 計算結(jié)果并輸出30 2.2 窗 體方法分號,緊湊格式 逗號,松散格式Private Sub Form_Click() a = 10 Print a+20的值為:; 緊湊格式 Print a + 20 Print a+20的值為:, 松散格式 Print a + 20End Suba+20的值為:30a+20的值為: 302.2 窗 體方法Cls:清除在窗體上輸出的數(shù)據(jù)或圖形,Pr

8、ivate Sub Form_Click() Cls Print Hello WorldEnd Sub 2.3 常用控件按鈕CommandButton控件標(biāo)簽Label控件文本框TextBox控件 2.3.1 CommandButton控件Caption屬性:命令按鈕上顯示的文字。Click事件:單擊時發(fā)生2.3.2 Label控件顯示用戶不能直接修改的靜態(tài)文本時使用的 Caption屬性:顯示在標(biāo)簽中的文本AutoSize屬性:控件是否能夠自動改變尺寸以適應(yīng)內(nèi)容2.3.3 TextBox控件文本框TextBox控件:用來獲取用戶輸入的文本,比如用戶名、口令等Text屬性:文本框中的文本Loc

9、ked屬性:文本框是否能輸入MultiLine屬性:文本框是否能夠輸入多行文本2.3.3 TextBox控件SelLength屬性:選中文本的長度SelStart屬性:選中文本的起始位置SelText屬性:選中的文本GotFocus事件:文本框得到焦點時觸發(fā)LostFocus事件文本框得到焦點時觸發(fā)SetFocus方法使文本框獲得焦點,可以直接接收鍵盤輸入2.3.3 TextBox控件 第3章 Visual Basic程序設(shè)計基礎(chǔ) 數(shù)據(jù)類型運算符和表達(dá)式常用內(nèi)部函數(shù) 3.1 數(shù)據(jù)類型 3.1.1基本數(shù)據(jù)類型 Integer (整型) %Long (長整型) &Single (單精度實型) !D

10、ouble (雙精度實型) #String (字符串類型) $Boolean (布爾型) Date (日期型)Variant (變體類型)3.1 數(shù)據(jù)類型3.1.2 常量 :程序運行時值不改變 整型: 12,3 ,1 長整型:-2147483640 , 1& 單精度實型: 1.2, -3.4, -1.0! 雙精度實型:-3.5e55 , -1.0# 字符串: “hello world” , “” 布爾型: Ture真 ,False 假 日期型: #10/12/2005 10:10:10#3.1 數(shù)據(jù)類型3.1.3變量 1變量的定義:Dim 變量名1 As 類型1, 變量名2 As 類型2 Di

11、m a As Integer, b As Integer 定義兩個整型變量a和b省略數(shù)據(jù)類型則變量為Variant類型Dim a, b As Integer 定義變量a為Variant類型,變量b為Integer類型 3.1 數(shù)據(jù)類型Private Sub Command1_Click() Dim a As Integer, b As Integer Print a a = 1 b = 2 Print a + bEnd Sub整型變量a,b初始值默認(rèn)為0033.1 數(shù)據(jù)類型Private Sub Command1_Click() Dim a As Single, b As Single a =

12、 1.2 b = 2.3 Print a + bEnd Sub浮點型變量a,b初始值默認(rèn)為0.03.53.1 數(shù)據(jù)類型Private Sub Command1_Click() Dim s As String s = hello world Print sEnd Sub字符串變量s初始值默認(rèn)為“”空串hello world3.1 數(shù)據(jù)類型Private Sub Command1_Click() Dim f As Boolean Print f f = True frmInfo.Visible = f 窗體可見End Sub布爾變量f初始值默認(rèn)為FalseFalse3.1 數(shù)據(jù)類型練習(xí)Privat

13、e Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Dim delta As Single Dim root1 As Single, root2 As SingleEnd Sub求二元一次方程的兩個根,系數(shù)保存在變量a,b,c中,根保存在變量root1,root2中,判別式保存在變量delta中怎樣定義變量?3.1 數(shù)據(jù)類型*通用|聲明 Dim 變量名1 As 類型1, 變量名2 As 類型2 3.1 數(shù)據(jù)類型*Dim a As IntegerPrivate Sub Command1_Click() a = a + 1

14、 Print aEnd SubPrivate Sub Command2_Click() a = a + 1 Print aEnd Sub3.1 數(shù)據(jù)類型*Private Sub Command1_Click() Dim a As Integer a = a + 1 Print aEnd SubPrivate Sub Command2_Click() Dim a As Integer a = a + 1 Print aEnd Sub3.2 運算符和表達(dá)式算數(shù)算術(shù)運算符 運算符名稱+加-減*乘/除乘方整除Mod 求余(取模)-取負(fù)32323 mod 29113.2 運算符和表達(dá)式算數(shù)寫出表達(dá)式:b

15、2-4ac寫出表達(dá)式 -b+delt 2ab*b-4*a*c(-b+delt)/(2*a)3.2 運算符和表達(dá)式關(guān)系關(guān)系運算符和關(guān)系表達(dá)式 (a=2,b=3)=等于或大于=大于或等于=小于或等于運算結(jié)果:True或Falsea=bababa=ba=bFalseTrueFalseTrueFalseTrue3.2 運算符和表達(dá)式關(guān)系可以通過 表達(dá)式判斷x是奇偶數(shù)當(dāng)表達(dá)式為真表示 整型變量x可以被2整除 不能被3整除的表達(dá)式(x Mod 2)=0(x Mod 3)03.2 運算符和表達(dá)式邏輯邏輯運算符和邏輯表達(dá)式 Not非對單個表達(dá)式的邏輯值取反,即由真變假或由假變真And與兩個表達(dá)式都為True時

16、,整個表達(dá)式的值為True,否則為FalseOr或兩個表達(dá)式有一個為True時,整個表達(dá)式的值為True,否則為FalseSARS: 高燒 肺部陰影Texi: 下雨 趕時間OrAnd3.2 運算符和表達(dá)式邏輯與數(shù)學(xué)表達(dá)式axb對應(yīng)的Visual Basic表達(dá)式是_。 a=2,b=3,x=4 a=x=b 1=b True(a=x)And (x3Int(a) Int(b)復(fù)習(xí)當(dāng)表達(dá)式為真,表示變量x是小于100的非負(fù)數(shù)當(dāng)表達(dá)式為真,x不可以被3或5整除(0 x)And(x100)(x Mod 3)Or(x Mod 5)注意:算數(shù)非0邏輯True 算數(shù)0 邏輯False復(fù)習(xí)Print “hello

17、” & chr(10) & “world”Dim s As String s = ZhangHua Print Len(Trim(s)helloworld8復(fù)習(xí)Month(Now)Dim s As String s = 3.2“ 定義變量保存s的值的平方10Dim result As Singleresult = Val(s) 23.3 常用內(nèi)部函數(shù)InputBox函數(shù)emailAdd= InputBox(“請按照下面的默認(rèn)格式,輸入郵件地址”, 郵件地址, aa) InputBox函數(shù)可以產(chǎn)生一個輸入對話框3.3 常用內(nèi)部函數(shù)InputBox函數(shù)InputBox函數(shù)可以產(chǎn)生一個輸入對話框 e

18、mailAdd=InputBox( , , ) “請按照下面的默認(rèn)格式”輸入郵件地址郵件地址aaChr(10)&InputBox的返回值,即InputBox函數(shù)執(zhí)行的結(jié)果值,是一個字符串單擊 “確定” ,輸入的內(nèi)容單擊 “取消” ,一個空字符串“”Dim emailAddr As StringemailAddr = InputBox(“請按照下面的默認(rèn)格式” & Chr(10) & “輸入郵件地址”, 郵件地址, aa) 3.3 常用內(nèi)部函數(shù)InputBox函數(shù)3.3 常用內(nèi)部函數(shù)InputBox函數(shù)確定: emailAddr = “”取消: emailAddr = “”3.3 常用內(nèi)部函數(shù)I

19、nputBox函數(shù)練習(xí)P56-6 Dim account As String accountInputBox(“輸入帳號” , “存款”, “123.123456789) 3.3 常用內(nèi)部函數(shù)InputBox函數(shù)利用輸入框提示輸入一個正整數(shù),在窗體上輸出其平方根例如:輸入4,輸出 4的平方根是:23.3 常用內(nèi)部函數(shù)InputBox函數(shù)3.3 常用內(nèi)部函數(shù)InputBox函數(shù)Private Sub Form_Click() Dim number As String Dim result As Double number = InputBox(輸入正整數(shù), 求平方根) result = Sqr(

20、Val(number) Print number & 的平方根是: & resultEnd Sub3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)作用:用于產(chǎn)生一個消息對話框 3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)對話框結(jié)構(gòu)3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)常用格式1:MsgBox 提示文本用處:只做簡單提示例如:MsgBox 除數(shù)不能為0 3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)常用格式2:MsgBox 提示文本,圖標(biāo)用處:只做簡單提示例如:MsgBox 除數(shù)不能為0, vbCritical3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)常用格式3:MsgBox 提示文本,圖標(biāo),標(biāo)題用處:只做簡單提示例如:MsgBox

21、 除數(shù)不能為0, vbCritical, 錯誤提示3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)MsgBox , , 內(nèi)存不足vbCritical“系統(tǒng)提示3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)常用格式4:dim answer as integeranswer=MsgBox(提示文本,圖標(biāo)+按鈕組合,標(biāo)題)用處:MsgBox函數(shù)的返回值就是用戶按下按鈕,保存在answer中例如:Dim answer As Integeranswer = MsgBox( , + , )確實想退出么?vbQuestionvbYesNo退出提示vbYesvbNo3.3 常用內(nèi)部函數(shù)MsgBox函數(shù)Private Sub cmd

22、Exit_Click() Dim answer As Integer answer = MsgBox(“確實想退出么?”, vbYesNo + vbQuestion, 退出提示) If answer = vbYes Then End End IfEnd Sub第4章 Visual Basic程序設(shè)計結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu) 4.1 概述在順序結(jié)構(gòu)中:程序由上到下依次執(zhí)行每一條語句。在選擇結(jié)構(gòu)中:程序判斷某個條件是否成立,以決定執(zhí)行哪部分代碼。在循環(huán)結(jié)構(gòu)中:程序判斷某個條件是否成立,以決定是否重復(fù)執(zhí)行某部分代碼。4.2 順序結(jié)構(gòu) 程序由上到下依次執(zhí)行每一條語句 Private Sub For

23、m_Click() Dim i As Integer i = i + 1 Print iEnd Sub 4.2 順序結(jié)構(gòu)賦值語句:將數(shù)據(jù)保存在一個變量或?qū)ο蟮膶傩灾校◤挠蚁蜃螅└袷剑鹤兞棵?表達(dá)式Dim a As IntegerDim b As Integera = 1b = 2 * aa = a + 1 對象名.屬性名=表達(dá)式Dim cap As String cap = “窗體標(biāo)題”Caption = capForm1.Caption=cap4.2 順序結(jié)構(gòu)注釋:開頭,會自動變成綠色不被執(zhí)行起到說明作用4.3 選擇結(jié)構(gòu) 根據(jù)某個條件來決定執(zhí)行哪部分程序 選擇結(jié)構(gòu)if語句select語句單行

24、if語句多行if語句If x Mod 2 Then Print 奇數(shù) If answer = vbYes Then End End If Select Case opt Case +“ result = a + b Case - result = a - b Case * result = a * b End Select 4.3 選擇結(jié)構(gòu)如果x是偶數(shù),則輸出“偶數(shù)”如果ageXageY,則salaryX=1500如果text2內(nèi)容為空,提示“輸入數(shù)據(jù)”If 條件 Then 語句塊End If4.3 選擇結(jié)構(gòu)2If 條件 Then 語句塊1 當(dāng)條件為真,執(zhí)行這里Else 語句塊2 當(dāng)條件為假,

25、執(zhí)行這里End If4.3 選擇結(jié)構(gòu) salary=If 條件 Then 語句塊1 當(dāng)條件為真,執(zhí)行這里Else 語句塊2 當(dāng)條件為假,執(zhí)行這里End If10001500year3year= playerFplayerM = playerFplayerM = playerF Then MsgBox 輸了, , 5555 Else MsgBox !我又贏了, , ye ye End IfEnd Sub4.3 選擇結(jié)構(gòu)3 分段函數(shù) y = 0If 條件1 Then 語句塊1 當(dāng)條件1為真,執(zhí)行ElseIf 條件2 Then 語句塊2 當(dāng)條件1為假,條件2為真Else 語句塊3 當(dāng)條件1為假,條件

26、2為假End If1-1x0 x0y=1y=-1x=0 x=0y=04.3 選擇結(jié)構(gòu)3If 條件1 Then 語句塊1 當(dāng)條件1為真,執(zhí)行ElseIf 條件2 Then 語句塊2 當(dāng)條件1為假,條件2為真,執(zhí)行Else 語句塊3 當(dāng)條件1為假,條件2為假,執(zhí)行End If4.3 選擇結(jié)構(gòu)4If 條件1 Then 語句塊1 當(dāng)條件1成立ElseIf 條件2 Then 語句塊2 當(dāng)條件1不成里,條件2成立ElseIf 條件n Then 語句塊n 當(dāng)前面n-1個條件不成立,條件n成立Else 語句塊n+1 當(dāng)前面n個條件都不成立 End If 4.3 選擇結(jié)構(gòu)4score變量保存0100間的整數(shù)作為

27、百分制成績,If score 90 Then 當(dāng)成績90, Print AElseIf score 80 Then 當(dāng)成績80 Print BElseIf score 70 Then 當(dāng)成績70 Print CElseIf score 60 Then 當(dāng)成績60 Print DElse Print E 當(dāng)成績=60 End If 4.3 選擇結(jié)構(gòu)使用什么格式的if語句?If 條件 Then .End If對1種情況進行處理對2種情況處理If 條件 Then 語句塊1 Else 語句塊2End If對3種情況處理If 條件1 Then 語句塊1 ElseIf 條件2 Then 語句塊2Else

28、語句塊3End If對3種以上情況處理If 條件1 Then 語句塊1 ElseIf 條件2 Then 語句塊2ElseIf 條件n Then 語句塊nElse 語句塊n+1 End If 4.3 選擇結(jié)構(gòu) 分段如果x15,則a=15;否則a=-15 0 x0 x+1 0 x1y= 2x 1 x2 x-1 2 x3 1 x 3if x0 then y=0elseif x1 then y= x+1 elseif x2 then y=2*xelseif x3 then y= x-1else y=1endif4.3 選擇結(jié)構(gòu)4Select Case 條件表達(dá)式 Case 表達(dá)式結(jié)果列表1 語句塊1

29、Case 表達(dá)式結(jié)果列表2 語句塊2 Case Else 可以省略 語句塊n+1 End Select 4.3 選擇結(jié)構(gòu)4Select Case opt 根據(jù)運算符不同,進行運算不同 Case + result = opt1 + opt2 Case - result = opt1 - opt2 Case * result = opt1 * opt2 Case / result = opt1 / opt2End Select 4.5 循環(huán)結(jié)構(gòu)程序設(shè)計 循環(huán)結(jié)構(gòu)依據(jù)某一條件(即循環(huán)條件)反復(fù)執(zhí)行某段程序(即循環(huán)體) 執(zhí)行循環(huán)體的次數(shù),稱為循環(huán)次數(shù)WhileWendForNext不知道循環(huán)次數(shù),宜用

30、 while 循環(huán)知道循環(huán)次數(shù),宜用 For.Next 循環(huán)4.5.1 WhileWend語句 While 循環(huán)條件 循環(huán)體Wend 4.5.1 WhileWend語句在窗體上打印輸出4個“*” i = 1 While i = 4 print “*” i=i+1 Wend1. i=1*1. i=22. i=2*2. i=33. i=3*3. i=44. i=4*4. i=55. i=5循環(huán)執(zhí)行結(jié)束4.5.1 WhileWend語句程序功能是什么?執(zhí)行結(jié)果是什么? sum = 0: i = 1 While i = 3 sum = sum + i i = i + 1 Wend Print sum,

31、i 14所有整數(shù)的和1.sum=0 i=11.sum=1 i=11.sum=1 i=22.sum=1 i=22.sum=12 i=22.sum=12 i=33.sum=1+2 i=33.sum=1+2+3 i=33.sum=1+2+3 i=44.sum=1+2+3 i=46 44.5.1 WhileWend語句練習(xí)求100之內(nèi)所有偶數(shù)的和? While Wendsum = 0: i = 2i = 100sum = sum + ii = i + 24.5.1 WhileWend語句cmdComputetxtInputtxtOutput在txtInput中輸入整數(shù)單擊cmdCompute將1輸入數(shù)

32、據(jù)間所有奇數(shù)的和計算出來結(jié)果顯示在txtOutput中4.5.1 WhileWend語句Private Sub cmdCompute_Click()Dim i As Integer, sum As IntegerDim n As Integern = Val(txtInput.Text)sum = 0: i = 1While i = n sum = sum + i i = i + 2WendtxtOutput.Text = sumEnd Sub4.5.1 WhileWend語句單擊命令按鈕cmdCompute,計算1/1+1/2+1/3+1/4直到最后一項= 0.0001sum = sum +

33、 1 / ii = i + 1lblResult.Caption = sum4.5.1 WhileWend語句求100!Dim i As Integer, result As Doubleresult = 1: i = 1While i = 100 result = result * i i = i + 1Wend4.5.2 ForNext語句For 循環(huán)變量 = 初值 To 終值 Step 步長 循環(huán)體 Next 循環(huán)變量 “Step 步長” 省略時,表示步長為1循環(huán)次數(shù)(終值初值)步長1 sum = 0 For i = 1 To 10 sum = sum + i Next i4.5.2 F

34、orNext語句For 循環(huán)變量 = 初值 To 終值 Step 步長 循環(huán)體 Next 循環(huán)變量 sum = 0 For i = 1 To 10 sum = sum + i Next i4.5.2 ForNext語句求100之內(nèi)偶數(shù)的總和求100!求1!+2!+100!4.5.2 ForNext語句求100之內(nèi)偶數(shù)的總和Dim I As Integer, Sum As IntegerSum = 0For I = 2 To 100 Step 2 Sum = Sum + INext I4.5.2 ForNext語句求100!Dim I As Integer, S AsS =For ToNextI

35、 = 1 100 S = S * II1Double4.5.2 ForNext語句求100!Dim I As Integer, S As DoubleS = 1For I = 1 To 100 S = S * INext I求1!+2!+100!Dim I As Integer, S As Double, Sum As DoubleS =Sum =For I = 1 To 100 Next I10S = S * ISum = Sum + S4.5.2 ForNext語句用循環(huán)結(jié)構(gòu)編程,需要問幾個問題:反復(fù)執(zhí)行某個操作?循環(huán)次數(shù)已知?循環(huán)變量 初值 中值 步長?循環(huán)體?能否使用循環(huán)變量?4.5.

36、2 For語句和While語句的對比 For-Next循環(huán)While-Wend循環(huán)不知道循環(huán)次數(shù),宜用 while 循環(huán)知道循環(huán)次數(shù),宜用 For.Next 循環(huán)4.5.2 For語句和While語句的對比輸入5個學(xué)生成績,計算平均分循環(huán)體,5次: 輸入成績 score = Val(InputBox(輸入成績) 累加 sum = sum + score求平均分 avg = sum / 5用什么循環(huán)?4.5.2 For語句和While語句的對比Private Sub Form_Click()Dim i As Integer ,score As IntegerDim sum As SingleDi

37、m avg As SingleFor i = 1 To 5 score = Val(InputBox(輸入成績) sum = sum + scoreNext iavg = sum / 5End Sub4.5.2 For語句和While語句的對比輸入若干學(xué)生成績,計算平均分,直到某次輸入=0: 累加 sum = sum + score 輸入成績 score = Val(InputBox(輸入成績)求平均分 avg = sum / 54.5.2 For語句和While語句的對比Private Sub Form_Click()Dim i As Integer, score As IntegerDim

38、 sum As SingleDim avg As Singlescore = Val(InputBox(輸入成績)While score = 0 sum = sum + score score = Val(InputBox(輸入成績)Wendavg = sum / 5End Sub4.5.3 DoLoop語句語法格式1:Do 循環(huán)體 Loop While 循環(huán)條件語法格式2:Do While循環(huán)條件 循環(huán)體 Loop4.5.3 DoLoop語句語法格式1:Do 循環(huán)體 Loop Until 循環(huán)結(jié)束條件語法格式2:Do Until循環(huán)結(jié)束條件 循環(huán)體Loop4.5.4 循環(huán)結(jié)構(gòu)的嵌套一個循環(huán)結(jié)

39、構(gòu)的循環(huán)體內(nèi)出現(xiàn)了另一個循環(huán)結(jié)構(gòu) For i = 1 To 2 For j = 1 To 3 Print i= & i, j= & j Next jNext i常見錯誤1text2是不存在的對象在屬性窗口中看(名稱)屬性常見錯誤2屬性的引用方式不對對象名.屬性名常見錯誤3對象名正確屬性名或方法名不正確常見錯誤4程序運行沒反映事件過程是否正確單擊command1代碼編寫在command2_Click()中輸出結(jié)果的語句是否正確在text2中顯示result變量值text2.text=result常見錯誤5結(jié)果運行不正確:單擊設(shè)置斷點 ,F(xiàn)8單步執(zhí)行While score = 0 score =

40、Val(InputBox(輸入成績) sum = sum + score i = i + 1 Wendavg = sum / iscore=0score=90sum=90sum=90,score=90score=-1sum=90-1第5章 數(shù)組一維靜態(tài)數(shù)組一維動態(tài)數(shù)組二維數(shù)組控件數(shù)組5.1.1 引例Dim score1 As IntegerDim score2 As IntegerDim score25 As Integerscore1 = Val(InputBox(輸入第1號學(xué)生成績 )score2 = Val(InputBox(輸入第2號學(xué)生成績 )score25 = Val(InputB

41、ox(輸入第25號學(xué)生成績 )Dim i As IntegerFor i = 1 To 25score(i) = Val(InputBox(輸入第 & i & 號學(xué)生成績 )Next iDim score(1 To 25) As Integer5.1.2 一維靜態(tài)數(shù)組用處:批量處理數(shù)據(jù),一次性定義多個變量概念:是一組具有相同名字、不同下標(biāo)的 相同類型變量的集合 每個變量稱為一個數(shù)組元素數(shù)組元素個數(shù)稱為數(shù)組長度Dim score(1 to 6) As Integer 下界 to 上界score(1), score(2) ,score(3), score(4), score(5), score(6

42、),每個元素下標(biāo)為1個,稱為一維數(shù)組score在定義時就確定數(shù)組長度,稱為靜態(tài)數(shù)組 5.1.2 一維靜態(tài)數(shù)組Dim Num(10) As Integer 下標(biāo)默認(rèn)從0開始Num(0) 、Num(1) 、Num(2) 、Num(10) 數(shù)組下標(biāo)下界默認(rèn)從1開始, “通用|聲明”O(jiān)ption Base 1Dim Num(10) As Integer Num(1) 、Num(2) 、Num(10) 5.1.2 一維靜態(tài)數(shù)組(局部)Private Sub Form_Click() Dim score(1 To 6) As Integer score(1) = 80 score(2) = 70 scor

43、e(3) = 60 score(4) = 40 score(5) = 60 score(6) = 90 print score(1)End Sub數(shù)組定義在事件過程內(nèi)部,在當(dāng)前過程中有效5.1.2 一維靜態(tài)數(shù)組(局部)數(shù)組與For循環(huán)結(jié)合使用,循環(huán)變量范圍是數(shù)組下標(biāo)范圍Private Sub Form_Click() Dim score(1 To 6) As Integer Dim i As Integer For i = 1 To 6 score(i) = Val(InputBox(輸入一個成績) Next iEnd Sub5.1.2 一維靜態(tài)數(shù)組(局部)Private Sub Form_C

44、lick() Dim score(1 To 6) As Integer Dim i As Integer For i = 1 To 6 輸入數(shù)據(jù) score(i) = Val(InputBox(輸入一個成績) Next i For i = 1 To 6 輸出數(shù)據(jù) Print score(i) Next iEnd Sub5.1.2 一維靜態(tài)數(shù)組(全局)Dim score(1 To 6) As IntegerPrivate Sub cmdInput_Click() Dim i As Integer For i = 1 To 6 輸入數(shù)據(jù) score(i) = Val(InputBox(輸入一個成績

45、) Next iEnd Sub定義在“通用|聲明”,當(dāng)前窗體中有效5.1.2 一維靜態(tài)數(shù)組(全局)Private Sub cmdOutput_Click() Dim i As Integer For i = 1 To 6 輸出數(shù)據(jù) Print score(i) Next iEnd Sub5.1.2 一維靜態(tài)數(shù)組用數(shù)組求和:1+2+3+100 Option Base 1 設(shè)置數(shù)組下界默認(rèn)為1Private Sub Command1_Click() Dim a(100) As Integer , s As Integer For i = 1 To 100 a(i) = i 給數(shù)組賦初值 Next

46、i5.1.2 一維靜態(tài)數(shù)組 s = 0 累加器清零 For i = 1 To 100 s = s + a(i) Next i Print 1+2+3+100=; sEnd Sub 5.1.3 二維數(shù)組1二維靜態(tài)數(shù)組的定義二維靜態(tài)數(shù)組的定義格式如下:Dim 數(shù)組名(下界 To 上界, 下界 To 上界) As 類型2二維靜態(tài)數(shù)組的使用(1) 單個數(shù)組元素的使用每個數(shù)組元素兩個下標(biāo),格式如下:數(shù)組名(第一維下標(biāo),第二維下標(biāo))5.1.3 二維數(shù)組(2) For循環(huán)在數(shù)組中的使用 Dim score(1 To 3, 1 To 20) As Integer Dim i As Integer 控制行的循環(huán)

47、 Dim j As Integer 控制列的循環(huán) For i = 1 To 3 共3行 For j = 1 To 20 共20列 score(i, j) = Val(InputBox(輸入數(shù)據(jù)) Next j Next i5.2 一維動態(tài)數(shù)組靜態(tài)數(shù)組:定義時數(shù)組長度已知動態(tài)數(shù)組:定義時數(shù)組長度未知計算學(xué)生平均分,將學(xué)生成績保存在數(shù)組中 用戶先輸入學(xué)生人數(shù),再輸入成績第一步:Dim Score() As Integer 第二步:事件過程內(nèi)部n = Val(InputBox(“請輸入總?cè)藬?shù)”) ReDim Score(n) 5.2 一維動態(tài)數(shù)組應(yīng)用輸入學(xué)生的總?cè)藬?shù)和每個學(xué)生的成績,然后根據(jù)輸入的成

48、績計算所有學(xué)生成績的平均值Option Base 1Private Sub Form_Load()Dim Score() As IntegerDim n As Integer, Average As SingleDim i As Integern = Val(InputBox(請輸入總?cè)藬?shù), , ) ReDim Score(n) 5.2 一維動態(tài)數(shù)組應(yīng)用For i = 1 To n Score(i) = Val(InputBox(請輸入第 & Str(i) & 個學(xué)生的成績, 成績統(tǒng)計, )Next iTotal = 0For i = 1 To n Total = Total + Score(

49、i) Next i 5.2 一維動態(tài)數(shù)組應(yīng)用Average = Total / nText1.Text = Format(Average, 0.00)End Sub 5.3 控件數(shù)組 由一組名稱相同、類型相同的控件組成控件數(shù)組中的控件:具有相同的名稱(Name)屬性以下標(biāo)索引值(Index)屬性來識別各個控件 Option1(0), Option1(1) ,Option1(2)程序設(shè)計階段創(chuàng)建 使用“復(fù)制”、“粘貼”命令5.3 控件數(shù)組控件數(shù)組的每個成員控件享有同一個事件過程 Option1(0), Option1(1) ,Option1(2)無論單擊哪個,都會觸發(fā)Option1_Click(

50、)Private Sub Option1_Click (Index As Integer) End Sub5.3 控件數(shù)組Private Sub Option1_Click (Index As Integer) Text1.FontName = Option1(Index).CaptionEnd Sub5.3 控件數(shù)組使用控件數(shù)組改變文本框的鼠標(biāo)指針 Option(0)Option(1)Option(2)Option(3)Option(4)5.3 控件數(shù)組Private Sub cmdExit_Click() Unload Me 卸載當(dāng)前窗體End Sub Me當(dāng)前窗體(當(dāng)前工程只一個窗體,相

51、當(dāng)于)Private Sub cmdExit_Click() End 卸載當(dāng)前窗體End Sub5.3 控件數(shù)組Private Sub Option_Click(Index As Integer) Text1.MousePointer = IndexEnd SubOption(0)Option(1)Option(2)Option(5)Option(11)第6章 過程Function過程的定義和調(diào)用。Sub過程的定義和調(diào)用。Function過程與Sub過程的區(qū)別。過程的參數(shù)及其傳遞方式。6.1 概述6.1 概述定義過程的意義在于:節(jié)省大量的重復(fù)性工作。將復(fù)雜問題分為若干子問題,也被稱為“模塊化”

52、過程分為Sub過程和Function過程。6.2 Function過程定義Function過程的語法格式如下: Private|Public Function 過程名(形式參數(shù)列表)As 返回值類型 過程名 = 返回值End Function6.2 Function過程Private Function f(x As Integer) As Long Dim i As Integer Dim result As Long result = 1 For i = 1 To x result = result * i Next i f = resultEnd Function6.2 Function過

53、程調(diào)用Function過程與調(diào)用Sub過程不同,F(xiàn)unction過程調(diào)用后代表一個值,用戶可通過表達(dá)式將過程名賦給一個變量來調(diào)用Function過程。例如: Text1.Text = f (3)Print f (4)6.3 Sub過程Sub過程(子過程)事件過程:系統(tǒng)定義過程名通用過程:用戶定義過程名6.3.1 事件過程事件過程是系統(tǒng)預(yù)先定義的,當(dāng)事件發(fā)生,事件過程的代碼得到執(zhí)行Private Sub Command1_Click() Dim i As Integer For i = 1 To 10 Print Rnd Next iEnd Sub6.3.1 事件過程事件過程除了由系統(tǒng)調(diào)用,也可

54、以用戶使用Call語句調(diào)用,Call語句格式如下:Call 事件過程名例如,Private Sub Command2_Click() Call Command1_ClickEnd Sub6-1 子過程(通用過程) 通用過程:用戶定義(完成特定功能)定義 形參調(diào)用(過程的使用)實參參數(shù)傳遞6.3.2 Sub過程的定義在代碼窗口中任意位置定義定義Sub過程的語法格式如下: Private|Public Sub 過程名(形式參數(shù)) End Sub根據(jù)程序需要,決定有參數(shù)或無參數(shù)列表設(shè)置形式參數(shù)列表, a As Integer, b As Integer 有:有參數(shù)沒有:無參數(shù)有無需要靈活變化的部分?

55、6.3.2 Sub過程的定義過程名: showInfo功 能:在窗體表面顯示 * Welcome to BJFU *Private Sub showInfo() 無參數(shù) Print * Welcome to BJFU *End Sub6.3.2 Sub過程的定義過程名: showInfo功 能:在窗體表面顯示任意字符串str變量的內(nèi)容 Private Sub showInfo(str As String) 有參數(shù) Print strEnd Sub6.3.2 Sub過程的定義Private Sub sum(n As Integer)End Sub For i = 1 To n result =

56、result + i Next i Print result Dim i As Integer, result As Integer求1n之間所有整數(shù)的和,并顯示在窗體上有:有參數(shù)有無需要靈活變化的部分?6.3.3 Sub過程的調(diào)用無參情況Private Sub showInfo() 無參數(shù) Print * Welcome to BJFU *End SubCall showInfoshowInfoCall 過程名 過程名6-1-1 Sub過程的調(diào)用(無參)Private Sub Command1_Click() Call showInfoEnd SubPrivate Sub Form_Clic

57、k() showInfoEnd Sub單擊窗體和command1時在窗體表面顯示 * Welcome to BJFU *6.3.3 Sub過程的調(diào)用有參情況Private Sub sum(n As Integer) Dim i As Integer, result As Integer For i = 1 To n result = result + i Next i Print resultEnd SubCall 過程名 (實參表)過程名 實參表 Call sum(22)sum 22 Function過程與Sub過程區(qū)別Function過程與Sub過程一樣,都是一段可以重用的代碼,它們之間的

58、區(qū)別是:(1)Function過程可以有返回值,而Sub過程則沒有。過程的返回值是指當(dāng)Function過程結(jié)束時,此過程返回給調(diào)用程序的結(jié)果值。(2)Function過程調(diào)用在表達(dá)式中的地位與變量一樣。(3)Function過程需要在返回前把一個值賦給過程名作為返回值。6.4 參數(shù)傳遞形參名字前有傳參方式:ByRef 按照地址傳參(可省略)形參的改變影響實參ByVal 按照值傳參形參的改變不影響實參6.4 參數(shù)傳遞(ByRef)Private Sub Form_Click() Dim a As Integer a=2 Call add(a) Print aEnd SubPrivate Sub

59、add(ByRef n As Integer) n = n + 1End Suba的值跟n值變化相同形參的改變影響實參36.4 參數(shù)傳遞(ByVal)Private Sub Form_Click() Dim a As Integer a=2 Call add(a) Print aEnd SubPrivate Sub add(ByVal n As Integer) n = n + 1End Suba的值跟n值變化無關(guān)形參的改變不影響實參26.4 參數(shù)傳遞Private Sub sum( ByRef n As Integer) Dim i As Integer, result As Integer

60、 For i = 1 To n result = result + i Next i Print resultEnd SubPrivate Sub Form_Click() Dim number As Integer number = Val(Text1.Text) sum numberEnd Subnumber的值跟n值變化相同最好采用那種方式傳參?ByVal6.4 參數(shù)傳遞Private Sub Form_Click() Dim a As Integer, b As Integer a = 1: b = 2 Call add(a, b)End SubPrivate Sub add(n As

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論