程序設(shè)計簡明教程學(xué)習(xí)教案_第1頁
程序設(shè)計簡明教程學(xué)習(xí)教案_第2頁
程序設(shè)計簡明教程學(xué)習(xí)教案_第3頁
程序設(shè)計簡明教程學(xué)習(xí)教案_第4頁
程序設(shè)計簡明教程學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩290頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學(xué)1程序設(shè)計程序設(shè)計(chn x sh j)簡明教程簡明教程第一頁,共295頁。1.1 引例引例1.1 一行內(nèi)容在窗體左、右移動;一行內(nèi)容在窗體左、右移動; 移動兩種方法移動兩種方法:手動和自動,當(dāng)自動時,文字閃手動和自動,當(dāng)自動時,文字閃爍顯示;爍顯示; 當(dāng)內(nèi)容超出當(dāng)內(nèi)容超出(choch)窗體窗體,進行反彈。進行反彈。 第1頁/共294頁第二頁,共295頁。1.1 引例引例 2.1 對輸入對輸入(shr)的字符進行轉(zhuǎn)換的程序。的字符進行轉(zhuǎn)換的程序。 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 大寫字母轉(zhuǎn)換成小寫字母,大寫字母轉(zhuǎn)換成小寫字母, 小寫字母轉(zhuǎn)換成大寫字母小寫字母轉(zhuǎn)換成大寫字母 空格不轉(zhuǎn)換空格不轉(zhuǎn)換

2、其余轉(zhuǎn)換成其余轉(zhuǎn)換成“*”。要求:每輸入要求:每輸入(shr)一個字符,馬上就進行一個字符,馬上就進行判斷和轉(zhuǎn)換。判斷和轉(zhuǎn)換。通過上述兩例說明通過上述兩例說明VB面向?qū)ο?、可視化、事面向?qū)ο?、可視化、事件?qū)動的特點。件驅(qū)動的特點。第2頁/共294頁第三頁,共295頁。第3頁/共294頁第四頁,共295頁。工具箱工程窗口屬性窗口窗體布局立即窗口窗體窗口第4頁/共294頁第五頁,共295頁。第5頁/共294頁第六頁,共295頁。 2.8 第6頁/共294頁第七頁,共295頁。計計第7頁/共294頁第八頁,共295頁。第8頁/共294頁第九頁,共295頁。第9頁/共294頁第十頁,共295頁。第10

3、頁/共294頁第十一頁,共295頁。 L e ft T o p H e igW id t h 第11頁/共294頁第十二頁,共295頁。第12頁/共294頁第十三頁,共295頁。第13頁/共294頁第十四頁,共295頁。14.TabIndex14.TabIndex屬性屬性 決定了按決定了按TabTab鍵時,焦點在各個鍵時,焦點在各個(gg)(gg)控件移動的順序。各個控件移動的順序。各個(gg)(gg)控件默認控件默認 TabIndex TabIndex值就是以控件建立時值就是以控件建立時 的順序的順序, ,第一個為第一個為0.0.15.15.控件默認屬性控件默認屬性 反映該控件最重要的屬性,

4、使用時可省略屬性名。反映該控件最重要的屬性,使用時可省略屬性名。. . 注意:注意:CommandCommand的默認屬性為的默認屬性為Default,Default,當(dāng)該屬性為當(dāng)該屬性為TrueTrue,當(dāng)按,當(dāng)按EnterEnter鍵,該控件起作用。鍵,該控件起作用。例例2.32.3 控件設(shè)置控件設(shè)置 效果效果默認控件名Name 標題 Caption 有關(guān)屬性設(shè)置 Form1 顏色、對齊、鼠標屬性例 MousePointer=99,MouseIcon=Key04.ico Label1 左對齊 Alignment=0, BorderStyle =1 Label2 居中 Alignment=1

5、,BorderStyle =1 Label3 自動 AutoSize=True, WordWarp=False, BorderStyle =1 Label4 背景白 BackColor= &H00FFFFFF&, BorderStyle =0 Label5 前景紅 ForeColor= &H000000FF&, BorderStyle =0 第14頁/共294頁第十五頁,共295頁。標題圖標控制菜單框最小化按鈕最小化按鈕邊框樣式二二.窗體窗體1.屬性屬性(shxng) Caption標題標題 MaxButton、MinButton Icon、ControlBox

6、 Picture、AutoRedraw BorderStyle (0 1 2 3 4 5 ) WindowsState (0-正常、正常、1-最小化、最小化、2-最大化)最大化)2.事件事件 Click、DblClick和和Load Load 當(dāng)裝入窗體時激發(fā),通常用于對屬性當(dāng)裝入窗體時激發(fā),通常用于對屬性(shxng)和變和變量初始化量初始化3.方法方法 Print、Cls和和Move等等 例例2.4 上述屬性上述屬性(shxng)、Click、DblClick和和Load 事件事件演示。演示。第15頁/共294頁第十六頁,共295頁。三三. 標簽標簽 Label 用于顯示文本用于顯示文本(

7、wnbn)(輸出輸出)信息,不能作為輸入信息的界面。信息,不能作為輸入信息的界面。 例例2.5. 顯示浮雕效果的文字,實現(xiàn)方法:字顏色、標簽位置顯示浮雕效果的文字,實現(xiàn)方法:字顏色、標簽位置四四.文本文本(wnbn)框框 TextBox 是一個文本是一個文本(wnbn)編輯區(qū)域,可在該區(qū)域輸入,編輯和顯示正文內(nèi)容。編輯區(qū)域,可在該區(qū)域輸入,編輯和顯示正文內(nèi)容。 1.其他屬性其他屬性 Text : 正文內(nèi)容正文內(nèi)容 Maxlength: 設(shè)置正文的最多字符個數(shù)設(shè)置正文的最多字符個數(shù),0任意長度值任意長度值., MultiLine: 是否為多行是否為多行,默認一行默認一行. FALSE Scrol

8、lBars: 當(dāng)當(dāng)MultiLine為為True時時,該屬性才有效該屬性才有效,表示滾動條的形式表示滾動條的形式 0-None、1-Horizontal、2-Vertical、3-Both。 Locked: 是否可被編輯屬性,是否可被編輯屬性,F(xiàn)alse,表示為可編輯。,表示為可編輯。PassWord : 口令字符口令字符. Text屬性返回輸入的數(shù)據(jù)屬性返回輸入的數(shù)據(jù),屏幕顯示該字符屏幕顯示該字符, SelStart,SelLength,SelText : 選中文本選中文本(wnbn)的起始、長度、內(nèi)容。的起始、長度、內(nèi)容。 例例2.6 復(fù)制選中的文本復(fù)制選中的文本(wnbn)第16頁/共2

9、94頁第十七頁,共295頁。2.2.常用事件常用事件 Change : Change : 當(dāng)改變文本框的當(dāng)改變文本框的TextText屬性時會引發(fā)該事件屬性時會引發(fā)該事件. . KeyPress(KeyAscii As Integer): KeyPress(KeyAscii As Integer): 同上同上, ,并可返回一個并可返回一個KeyAsciiKeyAscii參數(shù)參數(shù) KeyAscii KeyAscii 為為13,13,按回車鍵按回車鍵; ;為為0 0 去除剛輸入的字符去除剛輸入的字符. . LostFocus : LostFocus : 當(dāng)控件失去焦點時發(fā)生當(dāng)控件失去焦點時發(fā)生.

10、.GotFocus : GotFocus : 當(dāng)控件獲得焦點時發(fā)生當(dāng)控件獲得焦點時發(fā)生. .3.3.常用方法常用方法 對象對象.SetFocus: .SetFocus: 是把光標移到指定的文本框?qū)ο笾?。是把光標移到指定的文本框?qū)ο笾小?.4.文本框的應(yīng)用文本框的應(yīng)用 數(shù)據(jù)過濾數(shù)據(jù)過濾例例2.7 2.7 要求輸入合法的數(shù)字數(shù)據(jù)。當(dāng)輸入結(jié)束時(按要求輸入合法的數(shù)字數(shù)據(jù)。當(dāng)輸入結(jié)束時(按TabTab鍵),對于輸入正確的數(shù)據(jù),鍵),對于輸入正確的數(shù)據(jù),顯示顯示(xinsh)(xinsh)正確信息;對輸入的非數(shù)字數(shù)據(jù),則響鈴正確信息;對輸入的非數(shù)字數(shù)據(jù),則響鈴(Beep)(Beep)、顯示、顯示(xin

11、sh)(xinsh)錯誤信錯誤信息、清除文本框中的內(nèi)容,并使焦點重新回到文本框。息、清除文本框中的內(nèi)容,并使焦點重新回到文本框。 Text2_ LostFocus Text2_ LostFocus 當(dāng)輸入結(jié)束按當(dāng)輸入結(jié)束按TabTab鍵時鍵時, ,該事件激發(fā)該事件激發(fā) IsNumeric(Text2) : IsNumeric(Text2) : 判斷是否輸入非數(shù)字數(shù)據(jù)判斷是否輸入非數(shù)字數(shù)據(jù). . Text2.SetFocus : Text2.SetFocus : 使焦點重新回到文本框使焦點重新回到文本框 第17頁/共294頁第十八頁,共295頁。第18頁/共294頁第十九頁,共295頁。第19頁

12、/共294頁第二十頁,共295頁。六六 常用方法常用方法 方法是面向?qū)ο蟮?,故使用的形式為:方法是面向?qū)ο蟮?,故使用的形式為?對象對象.方法方法 1.Print方法方法 形式形式: 對象對象.PrintSpc(n)|Tab(n)表達式列表表達式列表;|, 作用作用(zuyng): 在對象上輸出信息在對象上輸出信息對象:窗體、圖形框或打印機對象:窗體、圖形框或打印機(Printer) ,省略對象在窗體上輸出省略對象在窗體上輸出。Spc(n)函數(shù):插入函數(shù):插入n個空格,允許重復(fù)使用。個空格,允許重復(fù)使用。Tab(n)函數(shù):左端開始右移動函數(shù):左端開始右移動n列,允許重復(fù)使用。列,允許重復(fù)使用。

13、;(分號分號):光標定位上一個顯示的字符后。:光標定位上一個顯示的字符后。,(逗號逗號):光標定位在下一個打印區(qū)的開始位置處。:光標定位在下一個打印區(qū)的開始位置處。無;,換行。無;,換行。 開始打印的位置是由對象的開始打印的位置是由對象的CurrentX和和CurrentX屬性決定,屬性決定, 缺省為打印對象的左上角缺省為打印對象的左上角0,0。 注意:注意:Print方法在方法在Form _Load事件過程中起作用事件過程中起作用(zuyng),必須設(shè)置窗體的必須設(shè)置窗體的 AutoRedraw為為True。第20頁/共294頁第二十一頁,共295頁。例例2.9 顯示圖形顯示圖形(txng)

14、 Private Sub Form_Click() For i = 1 To 5 Print Tab(i); String(6 - I, ); Spc(6); String(I, ) Next iEnd Sub考慮:若把考慮:若把Spc(6)換成換成Tab(6),效果如何?,效果如何? 第21頁/共294頁第二十二頁,共295頁。2. Cls2. Cls方法方法 形式形式 : : 對象對象.Cls.Cls 作用作用 : : 清除運行時在窗體或圖形框中顯示的文本或圖形。清除運行時在窗體或圖形框中顯示的文本或圖形。 注意注意 : : 不清除在設(shè)計時的文本和圖形。不清除在設(shè)計時的文本和圖形。3. M

15、ove3. Move方法方法 形式形式 : : 對象對象.Move .Move 左邊距離左邊距離 ,上邊距離,上邊距離 ,寬度,寬度 ,高度,高度 作用作用 : : 移動窗體或控件,并可改變其大小移動窗體或控件,并可改變其大小(dxio)(dxio)。 對象:可以是窗體及除時鐘、菜單外的所有控件對象:可以是窗體及除時鐘、菜單外的所有控件 例例2.10 2.10 圖形起始點圖形起始點( (左上角左上角) )移到窗體的中心。移到窗體的中心。 第22頁/共294頁第二十三頁,共295頁。第23頁/共294頁第二十四頁,共295頁。第24頁/共294頁第二十五頁,共295頁。窗體文件名窗體名第25頁/

16、共294頁第二十六頁,共295頁。在沒有VB6.0系統(tǒng)的環(huán)境下,執(zhí)行安裝盤中的Setup.exe文件,將發(fā) 行盤進行安裝。第26頁/共294頁第二十七頁,共295頁。第27頁/共294頁第二十八頁,共295頁。第28頁/共294頁第二十九頁,共295頁。第29頁/共294頁第三十頁,共295頁。第30頁/共294頁第三十一頁,共295頁。2 調(diào)試錯誤調(diào)試錯誤 (1) VB的三種模式的三種模式 設(shè)計模式設(shè)計模式設(shè)計設(shè)計 進行程序的界面設(shè)計、屬性設(shè)置、代碼編寫等。進行程序的界面設(shè)計、屬性設(shè)置、代碼編寫等。 運行模式運行模式運行運行 執(zhí)行執(zhí)行“運行運行/啟動啟動”命令命令(mng lng),可以查看

17、程序代碼,可以查看程序代碼,但不能修改。,但不能修改。 中斷模式中斷模式中斷中斷 當(dāng)在運行模式,按了當(dāng)在運行模式,按了“中斷中斷”命令命令(mng lng)或當(dāng)程序出或當(dāng)程序出現(xiàn)運行時錯誤時進入中斷模式??梢圆榭创a、修改代碼、現(xiàn)運行時錯誤時進入中斷模式??梢圆榭创a、修改代碼、檢查數(shù)據(jù)。檢查數(shù)據(jù)。 (2)調(diào)試窗口)調(diào)試窗口 有三個調(diào)試窗口,它們是:有三個調(diào)試窗口,它們是:“立即立即”窗口、窗口、“監(jiān)視監(jiān)視”窗口、窗口、和和“本地本地”窗口??蓡螕粢晥D菜單中的對應(yīng)命令窗口??蓡螕粢晥D菜單中的對應(yīng)命令(mng lng)打打開這些窗口。開這些窗口。第31頁/共294頁第三十二頁,共295頁。(3)

18、設(shè)置斷點和逐語句跟蹤)設(shè)置斷點和逐語句跟蹤 斷點是告訴斷點是告訴VB掛起程序掛起程序(chngx)執(zhí)行的一個標記執(zhí)行的一個標記,當(dāng)程序,當(dāng)程序(chngx)執(zhí)行到斷點處即暫停程序執(zhí)行到斷點處即暫停程序(chngx)的運行,進入中斷模式。設(shè)置或刪除斷點的步驟:的運行,進入中斷模式。設(shè)置或刪除斷點的步驟: 中斷模式下,直接查看某個變量的值,只要把鼠標指中斷模式下,直接查看某個變量的值,只要把鼠標指向所關(guān)心的變量處,稍停一下,就在鼠標下方顯示該變向所關(guān)心的變量處,稍停一下,就在鼠標下方顯示該變量的值。量的值。斷點(dun din)標記當(dāng)前(dngqin)行第32頁/共294頁第三十三頁,共295頁。

19、2.8常見錯誤常見錯誤1. 使用中文標點符號使用中文標點符號 系統(tǒng)產(chǎn)生系統(tǒng)產(chǎn)生“無效字符無效字符”,以紅色顯示以紅色顯示2. 字母和數(shù)字形狀相似字母和數(shù)字形狀相似 小寫字母小寫字母“l(fā)”和數(shù)字和數(shù)字“1”形式相同、小寫形式相同、小寫字母字母“o”與數(shù)字與數(shù)字“0”。3. 對象名稱對象名稱(Name)屬性寫錯屬性寫錯 Text1、Text2、Command1 txtInput、txtOutput、cmdOk4.對象的屬性名、方法名、標準函數(shù)名寫錯對象的屬性名、方法名、標準函數(shù)名寫錯 盡量使用自動列出成員功能。正確的系統(tǒng)盡量使用自動列出成員功能。正確的系統(tǒng)按規(guī)定的大小寫表示。按規(guī)定的大小寫表示。5

20、. 無意形成控件數(shù)組無意形成控件數(shù)組 建立控件時小心使用建立控件時小心使用“復(fù)制復(fù)制”、“粘貼粘貼”按鈕按鈕6. 打開工程時找不到打開工程時找不到(b do)對應(yīng)的文件對應(yīng)的文件 保存文件時先保存窗體保存文件時先保存窗體.frm文件、再保存文件、再保存.vbp文件,注意路徑。文件,注意路徑。第33頁/共294頁第三十四頁,共295頁。第34頁/共294頁第三十五頁,共295頁。第35頁/共294頁第三十六頁,共295頁。第36頁/共294頁第三十七頁,共295頁。第37頁/共294頁第三十八頁,共295頁。建議不使用建議不使用. .注意注意: : 在通用聲明處加在通用聲明處加 Option E

21、xplicit Option Explicit 語句來強制顯式聲明變量。語句來強制顯式聲明變量。第38頁/共294頁第三十九頁,共295頁。.例: vbNormal vbMinimized、vbbCrLf等第39頁/共294頁第四十頁,共295頁。第40頁/共294頁第四十一頁,共295頁。第41頁/共294頁第四十二頁,共295頁。 男字男字 女字女字 按漢字按漢字(Hnz)的拼音字母比較的拼音字母比較 第42頁/共294頁第四十三頁,共295頁。第43頁/共294頁第四十四頁,共295頁。第44頁/共294頁第四十五頁,共295頁。110lne45sin10yxefgabcda*b*c*d

22、/e/f/g 或 a*b *c*d/(e*f*g) 第45頁/共294頁第四十六頁,共295頁。例:用人單位招聘秘書:年齡小于40歲,女性,學(xué)歷(xul)??苹虮究?年齡40 性別=“女” (學(xué)歷(xul)=“??啤?學(xué)歷(xul)=“本科”) And And Or考慮:若分別寫成: 年齡40 And 性別=“女” And (學(xué)歷(xul)=“??啤?And 學(xué)歷(xul)=“本科”) 年齡40 Or 性別=“女” Or (學(xué)歷(xul)=“專科” Or 學(xué)歷(xul)=“本科”)例:表示算術(shù)表達式: 正確的VB表達式: 3=x And x =7 錯誤的VB表達式: 3=x=7 或 3=x O

23、r x=7 73 x比a小,比b大 用 Ora小數(shù)(xiosh)b大數(shù)(d sh)a小數(shù)b大數(shù)比a大,比b小 用 And第46頁/共294頁第四十七頁,共295頁。Time 返回返回(fnhu)系統(tǒng)時間系統(tǒng)時間 Date 返回返回(fnhu)系統(tǒng)日期系統(tǒng)日期 Now返回返回(fnhu)系統(tǒng)日期和時間系統(tǒng)日期和時間 DateAdd(要增減日期形式,增減量,要增減的日期變量)(要增減日期形式,增減量,要增減的日期變量)DateDiff(要間隔日期形式,日期(要間隔日期形式,日期1,日期,日期2)例如求離你畢業(yè)還有多少天例如求離你畢業(yè)還有多少天: DateDiff(”d”,date, #2006/0

24、7/01# )假定)假定2006年畢業(yè)年畢業(yè)第47頁/共294頁第四十八頁,共295頁。4. 字符字符(z f)串編碼和函數(shù)串編碼和函數(shù) (1)字符字符(z f)串編碼串編碼 Windows系統(tǒng)對字符系統(tǒng)對字符(z f)采用了采用了DBCS編碼編碼,中文中文2字節(jié)字節(jié),西文西文1字節(jié)字節(jié) VB中字符中字符(z f)Unicode編碼編碼,任何字符任何字符(z f)2字節(jié)字節(jié). Len(“中國中國good”)為為6 LenB(“中國中國good”)為為12 StrConv() 進行進行DBCS與與Unicode之間轉(zhuǎn)換之間轉(zhuǎn)換 . (2)字符字符(z f)串函數(shù)串函數(shù) Mid$(ABCDEFG,

25、2,3) BCD InStr(2, ABCDEFG, EF) 5 S=Split(123,56,ab,) Join(S,) 123 56 ab Replace(ABCDABCD,CD,123) “AB123AB123”S(0)=123”,S(1)=56”,S(2)=ab第48頁/共294頁第四十九頁,共295頁。第49頁/共294頁第五十頁,共295頁。第50頁/共294頁第五十一頁,共295頁。第51頁/共294頁第五十二頁,共295頁。第52頁/共294頁第五十三頁,共295頁。注意:雖然賦值號與關(guān)系運算符等于號都用注意:雖然賦值號與關(guān)系運算符等于號都用“=”“=”表示,表示,VBVB系統(tǒng)

26、會根據(jù)所處的位置自動判斷系統(tǒng)會根據(jù)所處的位置自動判斷是何種意義的符號。是何種意義的符號。第53頁/共294頁第五十四頁,共295頁。 Dim strName As String * 40, strS1 As String * 40 相應(yīng)的語句如下: strName= InputBox( “請輸入你的姓名” + vbCrLf + “然后單擊確定” , “輸入框” ) 也可以(ky): strS1 = “請輸入你的姓名” + Chr(13) + Chr(10) + “然后單擊確定” strName= InputBox(strS1, “輸入框”, , 100,100) 當(dāng)鍵盤輸入“王曉明” 后,變量

27、strName獲得鍵盤輸入的值.第54頁/共294頁第五十五頁,共295頁。第55頁/共294頁第五十六頁,共295頁。第56頁/共294頁第五十七頁,共295頁。常見常見(chn jin)錯誤錯誤數(shù)據(jù)(shj)合法性檢查中引起程序的死循環(huán)Private Sub Text1_LostFocus() If Not IsNumeric(Text1) Then Text1 = Text1.SetFocus End IfEnd SubPrivate Sub Text2_LostFocus() If Not IsNumeric(Text2) Then Text2 = Text1.SetFocus End

28、 IfEnd SubIf Text2 And Not IsNumeric(Text2)Text1Text2Text1確定第57頁/共294頁第五十八頁,共295頁?;?If xy Then t=x: x=y: y=t重要的是學(xué)會兩個數(shù)的交換,若上述語句次序變一下,結(jié)果如何?表達式 語句塊TF圖1-3-7 單分支結(jié)構(gòu)tyx圖 1-3-8 兩個數(shù)交換過程第58頁/共294頁第五十九頁,共295頁。表達式F圖1-3-9 雙分支結(jié)構(gòu) 語句塊1T 語句塊2yxxxxxxxsincos231030 單分支結(jié)構(gòu)(jigu)實現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr

29、(x*x+1) 雙分支結(jié)構(gòu)(jigu)實現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If第59頁/共294頁第六十頁,共295頁。表達式1表達式2表 達 式nTFTF圖 1-3-10 多分支結(jié)構(gòu) 語句塊 n語 句 塊n+1 語句塊 2 語句塊 1FT第60頁/共294頁第六十一頁,共295頁。例 已知百分制成績mark,顯示對應(yīng)(duyng)的五級制成績 哪些正確,哪些錯誤? 方法一 If mark = 90 Then Print 優(yōu) ElseIf mark = 80 Then Print 良 ElseIf mark =

30、 70 Then Print 中 ElseIf mark = 60 Then Print 及格 Else Print 不及格 End If 方法二 If mark 60 Then Print 不及格 ElseIf mark 70 Then Print 及格 ElseIf mark 80 Then Print 中 ElseIf mark = 60 Then Print 及格 ElseIf mark = 70 Then Print 中 ElseIf mark = 80 Then Print 良 ElseIf mark = 90 Then Print 優(yōu) Else Print 不及格 End If

31、第61頁/共294頁第六十二頁,共295頁。4 4IfIf語句語句(yj)(yj)的嵌套的嵌套 If If語句語句(yj)(yj)的嵌套是指的嵌套是指IfIf或或ElseElse后面的語句后面的語句(yj)(yj)塊中又包含塊中又包含IfIf語句語句(yj)(yj)。 形式如下:形式如下: If If Then1 Then If If Then11 Then End If End If End If End If 例:已知例:已知x,y,zx,y,z三個數(shù),使得三個數(shù),使得xyzxyz。 用一個用一個IFIF語句語句(yj)(yj)和一個嵌套的和一個嵌套的IFIF語句語句(yj)(yj)實現(xiàn):

32、實現(xiàn): If xy Then t=x: x=y: y=t If xy Then t=x: x=y: y=t If yz Then If yz Then t=y: y=z: z=t t=y: y=z: z=t If xy Then If xyT z 為最小數(shù)T 使得 x yFFF x yzx y x 與 y 交換y z y 與 z 交換x y x 與 y 交換第62頁/共294頁第六十三頁,共295頁。一組枚舉表達式一組枚舉表達式( (用逗號分隔用逗號分隔) ) 2,4,6,8 2,4,6,8 表達式表達式1 1 ToTo表達式表達式2 2 60 60 ToTo100100 Is Is 關(guān)系運算

33、符表達式關(guān)系運算符表達式 Is Is 60= A And Ucase (strC) = 0 And strC = 90 Case Is = 90 Case Is = 90 Print 優(yōu) Print 優(yōu) Print 優(yōu) Case mark = 80 Case Is = 80 Case 80 To 89 Print 良 Print 良 Print 良 Case mark = 70 Case Is = 70 Case 70 To 79 Print 中 Print 中 Print 中 Case mark = 60 Case Is = 60 Case 60 To 69 Print 及格 Print 及

34、格 Print 及格 Case Else Case Else Case Else Print 不及格 Print 不及格 Print 不及格 End Select End Select End Select哪些(nxi)能實現(xiàn),哪些(nxi)不能實現(xiàn)?第65頁/共294頁第六十六頁,共295頁。例實驗3.6對三門課程獎學(xué)金的判斷(pndun),一等獎獲得: Select Case mark1,mark2,mark3 Case (mark1 + mark2 + mark3) / 3 = 95 Print 一等獎 Case mark1 = 100 And mark2 = 100 And mark2

35、 = 80 End Select錯誤注意(zh y):Select Case 后不能出現(xiàn)多個變量;Case后不能出現(xiàn)變量及有關(guān)運算符。第66頁/共294頁第六十七頁,共295頁。例例3.3由計算機來當(dāng)一年級的算術(shù)老師,要求給出一系列的由計算機來當(dāng)一年級的算術(shù)老師,要求給出一系列的110的操作數(shù)和運算符,學(xué)生輸入的操作數(shù)和運算符,學(xué)生輸入該題的答案,計算機根據(jù)學(xué)生的答案判斷正確與否,當(dāng)結(jié)束時給出成績。該題的答案,計算機根據(jù)學(xué)生的答案判斷正確與否,當(dāng)結(jié)束時給出成績。 分析分析:產(chǎn)生產(chǎn)生110操作數(shù),可通過操作數(shù),可通過Int(10 * Rnd + 1) 實現(xiàn)實現(xiàn)(shxin) 設(shè)置的控件名設(shè)置的控

36、件名 Label1 Text1 Picture1Command1第67頁/共294頁第六十八頁,共295頁。6.條件函數(shù)條件函數(shù) (1)IIf函數(shù)形式是:函數(shù)形式是: IIf(表達式,當(dāng)表達式為(表達式,當(dāng)表達式為True時的值,當(dāng)表達式為時的值,當(dāng)表達式為False時的值)時的值) 例如例如(lr),求,求x,y中大的數(shù),放入中大的數(shù),放入Tmax變量中,語句如下:變量中,語句如下: Tmax=IIf(x y,x,y) (2)Choose函數(shù)形式是:函數(shù)形式是: Choose(數(shù)字類型變量,值為(數(shù)字類型變量,值為1的返回值,值為的返回值,值為2的返回值的返回值) 例如例如(lr),Nop是

37、是1-4的值,轉(zhuǎn)換成的值,轉(zhuǎn)換成 + 、-、運算符的語句如下:、運算符的語句如下: Op= Choose(Nop,+,-,) 當(dāng)值為當(dāng)值為1,返回字符串,返回字符串“+”,然后放入,然后放入Op變量中,值為變量中,值為2,返回字符,返回字符 串串“-”,依次類推,依次類推;當(dāng);當(dāng)Nop是是1-4的非整數(shù),系統(tǒng)自動取的非整數(shù),系統(tǒng)自動取Nop的整數(shù)辦法在判斷;若的整數(shù)辦法在判斷;若Nop不在不在1-4之間,函之間,函數(shù)返回數(shù)返回Null值。值。 (3) Switch函數(shù)形式是:函數(shù)形式是: Switch(條件表達式(條件表達式1,條件表達式,條件表達式1為為True時的值時的值,條件表達式,條件

38、表達式2,條件表達式,條件表達式2為為True時的值時的值)第68頁/共294頁第六十九頁,共295頁。常見錯誤常見錯誤1 1在選擇在選擇(xunz)(xunz)結(jié)構(gòu)中缺少配對的結(jié)束語句結(jié)構(gòu)中缺少配對的結(jié)束語句對多行式的對多行式的IfIf塊語句中,應(yīng)有配對的塊語句中,應(yīng)有配對的 End If End If語句語句結(jié)束。結(jié)束。2. 2. 多邊選擇多邊選擇(xunz)ElseIf(xunz)ElseIf關(guān)鍵字的書寫和條件關(guān)鍵字的書寫和條件表達式的表示表達式的表示 ElseIf ElseIf 不要寫成不要寫成Else IfElse If; 多個條件表達式次序問題多個條件表達式次序問題, ,見例見例3

39、. Select Case3. Select Case語句的使用語句的使用 Select Case Select Case 后不能出現(xiàn)多個變量;后不能出現(xiàn)多個變量;CaseCase子句子句后不能出現(xiàn)變量見例后不能出現(xiàn)變量見例第69頁/共294頁第七十頁,共295頁。四. 循環(huán)(xnhun)結(jié)構(gòu)1. For循環(huán)(xnhun)語句 (一般用于循環(huán)(xnhun)次數(shù)已知)形式 For 循環(huán)(xnhun)變量初值 to 終值 Step 步長 語句塊Exit For 語句塊 Next 循環(huán)(xnhun)變量 循環(huán)變量 0 情況 語句塊 Exit For 語句塊 循環(huán)變量加步長 T F 循環(huán)變量得初值 循

40、環(huán)體例4.8 計算1100的奇數(shù)(j sh)和,程序段如下: Dim i %, s% 等價于: Dim i %, s% s=0 s=0 For i = 1 To 100 step 2 i = 1 s = s + i re: If i 0 初值終值 =1 時,可省略(shngl)終值=0 死循環(huán)循環(huán)(xnhun)次數(shù)) 1(步長初值終值Int要注意: (1)出了循環(huán),循環(huán)控制變量值的問題。 例程序段: For I=2 To 13 Step 3 循環(huán)執(zhí)行次數(shù) Print I , 輸出(shch)I的值分別為: Next I 2 5 8 11 Print : Print “I=“, I 出了循環(huán)輸出

41、(shch)為: I=144) 1(3213Int步長第71頁/共294頁第七十二頁,共295頁。(2)在循環(huán)體內(nèi)對循環(huán)控制變量可多次引用(ynyng);但最好不要對其賦值,否則影響原來的循環(huán)控制規(guī)律。例4.9 Private Sub Command1_Click() j = 0 For i = 1 To 20 Step 2 i = i + 3 j = j + 1 Print 第; j; 次循環(huán)i=; iNext i Print 退出循環(huán)后i=; i End Sub正常情況:I=1,3,5,7,9,11,13,15,17,19現(xiàn)在:I=4,9,14,19第72頁/共294頁第七十三頁,共295

42、頁。2. DoLoop循環(huán)循環(huán)(xnhun)語句語句(用于控制循環(huán)用于控制循環(huán)(xnhun)次數(shù)未知次數(shù)未知)形式形式1: Do While|Until 語句塊語句塊 Exit Do 語句塊語句塊 Loop形式2:Do 語句(yj)塊 Exit Do 語句(yj)塊Loop While|Until 表達式列表 1 F T F T Exit Do 語句塊 語句塊 Exit Do 語句塊 語句塊 表達式列表 1 圖 1-3-16 Do Loop While 圖 1-3-15 Do WhileLoop 第73頁/共294頁第七十四頁,共295頁。例4.12用輾轉(zhuǎn)相除法求兩自然數(shù)m,n的最大公約數(shù)和最

43、小公倍數(shù)。分析:求最大公約數(shù)的算法思想: (1)對于(duy)已知兩數(shù)m,n,使得mn; (2) m除以n得余數(shù)r; (3)若r=0,則n為最大公約數(shù)結(jié)束;否則執(zhí)行(4); (4)mn,nr,再重復(fù)執(zhí)行(2)。 例 求 m=14 ,n=6 的最大公約數(shù). If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公約數(shù)=, n m n r 14 6 2 6 2 0m=m-n mnn=n-m nm m、n為公約數(shù) m=n輾轉(zhuǎn)輾轉(zhuǎn)(zhnzhun)相減法相減法Do While m

44、 n If m n Then m = m - n Else n = n - m End If Loop m n 14 6 8 6 2 6 2 4 2 2第74頁/共294頁第七十五頁,共295頁。3.循環(huán)的嵌套循環(huán)的嵌套 一個循環(huán)體內(nèi)一個循環(huán)體內(nèi)(t ni)又包含了一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套又包含了一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套. 例例4.13打印九九乘法表打印九九乘法表. For i = 1 To 9 For j = 1 To 9 For j = 1 To i se = i & & j & = & i * j Picture1.Print Tab(j

45、- 1) * 9 + 1); se; Next j Picture1.Print Next i思考:打印上三角或下三角程序如何思考:打印上三角或下三角程序如何(rh)改動?要打印下三角改動?要打印下三角?第75頁/共294頁第七十六頁,共295頁。對于循環(huán)的嵌套,要注意以下事項:(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉; (3)不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán), 反之則可以。 正確(zhngqu)錯誤 For ii =1 To 10 For jj=1 To 20 Next ii Next jj For ii =1 To 10 For i

46、i=1 To 20 Next ii Next ii For ii =1 To 10 For jj=1 To 20 Next jj Next ii For ii =1 To 10 Next ii For ii =1 To 10 Next ii 第76頁/共294頁第七十七頁,共295頁。四.其他輔助控制語句 1. Go To 語句 形式: Go To 標號|行號 作用:無條件地轉(zhuǎn)移到標號或行號指定的那行(n xn)語句. 標號是一個字符序列,行號是一個數(shù)字序列. 2.Exit語句 多種形式: Exit For、Exit Do、Exit Sub、Exit Function等。 作用:退出某種控制結(jié)

47、構(gòu)的執(zhí)行。 3. End語句 多種形式: End、 End If、 End Select、 End With、 End Type、 End Sub、 End Function、 作用:End結(jié)束一個程序的運行;其余表示某個結(jié)構(gòu)的結(jié)束,與對應(yīng)的結(jié)構(gòu)語句配對出現(xiàn)。第77頁/共294頁第七十八頁,共295頁。4.With 語句語句 形式如下:形式如下: With 對象對象 語句塊語句塊 End With作用:對某個對象執(zhí)行一系列的操作,而不用重復(fù)指出作用:對某個對象執(zhí)行一系列的操作,而不用重復(fù)指出(zh ch)對象的名稱。對象的名稱。 With Label1 .Height = 2000 .Widt

48、h = 2000 .FontSize=22 .Caption = This is MyLabel End With Label1.Height = 2000 Label1.Width = 2000 Label1.FontSize=22 Label1.Caption = This is MyLabel 等價(dngji)第78頁/共294頁第七十九頁,共295頁。1100的5或7的倍數(shù)(bish)的和 Sum = 0 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + i End If Next i Print Sum3

49、10的乘積 t = 1 For i =3 To 10 t = t * i Next i Print t思考:若把循環(huán)體前面置各變量初值的語句放在循環(huán)體內(nèi),程序運行時會產(chǎn)生什么情況?第79頁/共294頁第八十頁,共295頁。例例4.14求自然對數(shù)求自然對數(shù)e的近似值的近似值,要求其誤差小于要求其誤差小于0.00001,近似公式為,近似公式為: 該例題該例題(lt)涉及兩個問題:涉及兩個問題: (1)用循環(huán)結(jié)構(gòu)求級數(shù)和的問題。本例根據(jù)某項值的精度來控制循環(huán)的結(jié)束與否。)用循環(huán)結(jié)構(gòu)求級數(shù)和的問題。本例根據(jù)某項值的精度來控制循環(huán)的結(jié)束與否。 (2)累加:)累加:e=e+t 循環(huán)體外對累加和的變量清零循

50、環(huán)體外對累加和的變量清零 e=0 連乘:連乘:n=n*i 循環(huán)體外對連乘積變量置循環(huán)體外對連乘積變量置1 n=1 Private Sub Form_Click() Dim i%,n&, t!, e! e = 0 : n = 1 e存放累加和、存放累加和、n存放階乘存放階乘 i = 0 : t = 1 i計數(shù)器、計數(shù)器、t第第i項的值項的值 Do While t 0.00001 e = e + t : i = i + 1 累加、連乘累加、連乘 n = n * i : t = 1 / n Loop Print 計算了計算了 ; i; 項的和是項的和是 ; eEnd Subm1i0ii!11

51、i!1 . !1.3!1! 211!11ei第80頁/共294頁第八十一頁,共295頁。2.求素數(shù)求素數(shù) 判別某數(shù)判別某數(shù)m是否為素數(shù)最簡單的方法是是否為素數(shù)最簡單的方法是: 對于對于(duy)m 從從i=2,3,m-1判別判別m能否被能否被i整除,只要有一個能整除,整除,只要有一個能整除,m不是素數(shù),否不是素數(shù),否則則m是素數(shù)。是素數(shù)。 求求100以內(nèi)的素數(shù)以內(nèi)的素數(shù) For m = 2 To 100 For i = 2 To m - 1 If (m Mod i) = 0 Then GoTo NotNextM Next i Print m NotNextM: Next mm是否(sh fu)

52、為素數(shù)求100以內(nèi)(y ni)的素數(shù)思考: 此例用Go To語句對非素數(shù)不在判斷,若不用GoTo語句,如何修改程序? 見例4.15第81頁/共294頁第八十二頁,共295頁。3.3.窮舉法窮舉法 “ “窮舉法窮舉法”也稱為也稱為“枚舉法枚舉法”或或“試湊法試湊法”, 即將可能出現(xiàn)的各種即將可能出現(xiàn)的各種情況情況(qngkung)(qngkung)一一測試,判斷是否滿足條件,一般采用循環(huán)來實現(xiàn)。一一測試,判斷是否滿足條件,一般采用循環(huán)來實現(xiàn)。 例例4.16 4.16 百元買百雞問題。假定小雞每只百元買百雞問題。假定小雞每只5 5角角, ,公雞每只公雞每只2 2元,母雞每只元,母雞每只3 3元元。

53、現(xiàn)在有?,F(xiàn)在有100100元錢要求買元錢要求買100100只雞,編程列出所有可能的購雞方案。只雞,編程列出所有可能的購雞方案。 設(shè)母雞、公雞、小雞各為設(shè)母雞、公雞、小雞各為x x、y y、z z只,根據(jù)題目要求,列出方程為:只,根據(jù)題目要求,列出方程為: x+y+y=100 x+y+y=100 3x+2y+0.5z=100 3x+2y+0.5z=100三個未知數(shù),兩個方程,此題有若干個解。三個未知數(shù),兩個方程,此題有若干個解。解決此類問題采用解決此類問題采用“試湊法試湊法”,把每一種情況,把每一種情況(qngkung)(qngkung)都考慮到。都考慮到。 方法一:最簡單三個未知數(shù)利用三重循環(huán)

54、來實現(xiàn)。方法一:最簡單三個未知數(shù)利用三重循環(huán)來實現(xiàn)。 方法二:從三個未知數(shù)的關(guān)系,利用兩重循環(huán)來實現(xiàn)。方法二:從三個未知數(shù)的關(guān)系,利用兩重循環(huán)來實現(xiàn)。第82頁/共294頁第八十三頁,共295頁。4.4.遞推法遞推法 “ “遞推法遞推法”又稱為又稱為“迭代法迭代法”,其基本思想是把一個復(fù)雜的計,其基本思想是把一個復(fù)雜的計算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。遞推出新值,并由新值代替舊值。 例例4.17 4.17 猴子吃桃子猴子吃桃子(to zi)(to zi)。小猴在一天摘了若干個桃子。小猴在

55、一天摘了若干個桃子(to (to zi)zi),當(dāng)天吃掉一半多一個;第二天接著吃了剩下的桃子,當(dāng)天吃掉一半多一個;第二天接著吃了剩下的桃子(to (to zi)zi)的一半多一個;以后每天都吃尚存桃子的一半多一個;以后每天都吃尚存桃子(to zi)(to zi)的一半零一的一半零一個,到第個,到第7 7天早上要吃時只剩下一個了,問小猴那天共摘下了多天早上要吃時只剩下一個了,問小猴那天共摘下了多少個桃子少個桃子(to zi)(to zi)?分析:這是一個分析:這是一個“遞推遞推”問題,先從最后一天推出倒數(shù)第二天的問題,先從最后一天推出倒數(shù)第二天的桃子桃子(to zi)(to zi),再從倒數(shù)第二

56、天的桃子,再從倒數(shù)第二天的桃子(to zi)(to zi)推出倒數(shù)第三天推出倒數(shù)第三天的桃子的桃子(to zi)(to zi)。設(shè)第設(shè)第n n天的桃子天的桃子(to zi)(to zi)為為xnxn,那么它是前一天,那么它是前一天的桃子的桃子(to zi)(to zi)數(shù)。數(shù)。2) 1(12111nnnnxxxx也就是:即:第83頁/共294頁第八十四頁,共295頁。5.5.最小、最大值最小、最大值在若干個數(shù)中求最大值,一般先假設(shè)一個較小的數(shù)為最大值的初值,若無法在若干個數(shù)中求最大值,一般先假設(shè)一個較小的數(shù)為最大值的初值,若無法(wf)(wf)估計較小的值,則取第一個數(shù)為最大值的初值;然后將每

57、一個數(shù)與最大值估計較小的值,則取第一個數(shù)為最大值的初值;然后將每一個數(shù)與最大值比較,若該數(shù)大于最大值,將該數(shù)替換為最大值;依次逐一比較。比較,若該數(shù)大于最大值,將該數(shù)替換為最大值;依次逐一比較。例隨機產(chǎn)生例隨機產(chǎn)生1010個個100100200200之間的數(shù),求最大值。之間的數(shù),求最大值。 Private Sub Command1_Click() Max = 100 For i = 1 To 10 x = Int(Rnd * 101 + 100) Print x; If x Max Then Max = x Next i Print Print 最大值=; MaxEnd Sub第84頁/共29

58、4頁第八十五頁,共295頁。例4.18 實際應(yīng)用,求最短殘料。 有一根長度為321米的鋼材料,要將它截取成兩種規(guī)格a、b的長度分別為17米和27米的短料,每種至少1段,問分隔成a,b各多少段后,剩余的殘料r最少?分析,該題利用“試湊法”通過二重循環(huán)求殘料r的最小值正數(shù)(zhngsh),殘料不可能是負數(shù)。程序如下:Private Sub Command1_Click() Dim a%, b%, r!, ia%, ib% r = 321 最小值初值取鋼材料(cilio)的長度 For b = 1 To 321 27 b最多的段數(shù) For a = 1 To 321 17 - b a最多的段數(shù) t =

59、 321 - b * 27 - a * 17 當(dāng)前的殘料 If t 0 And t Max Then If iA(i)Max ThenMax=iA(i)Max=iA(i)iMax=iiMax=i End If End If Next I Next I5. 5. 將數(shù)組中各元素將數(shù)組中各元素(yun s)(yun s)交換交換 For i =1 For i =1 ToTo 102 102 t=iA(i) t=iA(i) iA(i)=iA(10-i+1) iA(i)=iA(10-i+1) iA(10-i+1)=t iA(10-i+1)=t Next I Next I第94頁/共294頁第九十五頁,

60、共295頁。五五. 控件數(shù)組控件數(shù)組 一組相同類型的控件組成。一組相同類型的控件組成。 它們共用一個控件名,它們共用一個控件名,具有相同的屬性,建立時系統(tǒng)給每個元素賦一個唯一具有相同的屬性,建立時系統(tǒng)給每個元素賦一個唯一(wi y)的索引號的索引號(Index)。 控件數(shù)組共享同樣的事件過程,通過返回的下標值控件數(shù)組共享同樣的事件過程,通過返回的下標值區(qū)分控件數(shù)組中的各個元素。區(qū)分控件數(shù)組中的各個元素。 例:例: Private Sub cmdName _Click(Index As Integer) If Index=3 then 處理第四個命令按鈕的操作處理第四個命令按鈕的操作 End If End Sub1.在設(shè)計時建立控件數(shù)組在設(shè)計時建立控件數(shù)組在

溫馨提示

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

評論

0/150

提交評論