VB上機DEF復(fù)習課程_第1頁
VB上機DEF復(fù)習課程_第2頁
VB上機DEF復(fù)習課程_第3頁
VB上機DEF復(fù)習課程_第4頁
VB上機DEF復(fù)習課程_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。VB上機DEF-實驗D循環(huán)結(jié)構(gòu)實驗?zāi)康?.掌握For語句的使用。2.掌握Do語句的各種形式的使用。3.掌握如何控制循環(huán)條件,防止死循環(huán)或不循環(huán)。二、實驗內(nèi)容1.利用單循環(huán)結(jié)構(gòu)顯示如圖D.1所示的界面。提示:循環(huán)體內(nèi)的顯示用String函數(shù)來實現(xiàn),找出循環(huán)控制變量與String函數(shù)內(nèi)字符個數(shù)的關(guān)系:即String(2*i-1,Trim(Str(i)。其中Str(i)表示將數(shù)值型i轉(zhuǎn)換成字符串,Trim函數(shù)表示去除字符串兩邊的空格,因為將數(shù)值轉(zhuǎn)換成字符串后,系統(tǒng)自動在數(shù)字前面符號位,正數(shù)為空格,負數(shù)為“”,

2、而String函數(shù)只取字符串中的第一個字符,本例為空格,因此需要用Trim函數(shù)。2.用單循環(huán)實現(xiàn)如圖D.2所示的界面。圖D.1實驗D.1運行界面圖D.2實驗D.2運行界面3.計算當?shù)趇項的值0s1=sMod10s=s10Prints1;從右邊開始顯示分離出的每一位Loop7.參閱教材例4.20,用迭代法求。求立方根的迭代公式為:迭代到為止,為方程的近似解。顯示a=3,27的值,并通過求的表達式加以驗證。提示:假定的初始值為a,根據(jù)迭代公式求得,若,迭代結(jié)束;否則用代替繼續(xù)迭代。迭代的流程圖如圖D.3所示。圖D.3迭代法求根流程圖8.一個富翁試圖與陌生人做一筆生意,換錢規(guī)則為:陌生人每天給富翁1

3、0萬元錢,直到滿一個月(30天);而富翁第一天給陌生人1分錢,第二天2分錢,第天4分錢,富翁每天給陌生人的錢是前一天的兩倍,直到滿一個月。分別顯示富翁給陌生人的錢和陌生人給富翁的錢為多少?提示:設(shè)富翁第一天給出的錢為是0.01,第二天給出的錢為前一天的兩倍,即=2*,如此重復(fù)到30天,累計求得富翁給出的錢數(shù)遠遠超過陌生人給出的錢數(shù)10萬*30=300萬元。9.用計算機按排考試日程。期末某專業(yè)在周一周六的6天時間內(nèi)要考X,Y,Z三門課程,考試順序為X,Y,Z,規(guī)定一天只能考一門,且Z只能安排在周五或周六考。編寫程序安排考試日程(即三門課各在哪天考),要求列出滿足條件的所有方案。實驗E數(shù)組和自定義

4、類型實驗?zāi)康恼莆諗?shù)組的聲明,數(shù)組元素的引用。掌握固定長度數(shù)組和動態(tài)數(shù)組的使用差別。掌握數(shù)組常用的操作和常用算法。掌握列表框和組和框的使用。掌握自定義類型和數(shù)組的使用。二,實驗內(nèi)容1隨機產(chǎn)生30100(包括30和100)的10個正整數(shù),求最大值,最小值,平均值,并顯示整個數(shù)組的值和結(jié)果,如圖E.1所示。圖E.1實驗E.1運行界面2已知6個學生的成績,通過對數(shù)組賦初值的方法,利用String函數(shù),以每5分為一個“”顯示,并顯示學生的成績,如圖E.2所示:圖E.2實驗E.2運行界面3.隨機產(chǎn)生20個學生成績,統(tǒng)計各分數(shù)段人數(shù)。即059,6069,7079,8089,90100,并顯示結(jié)果。產(chǎn)生的數(shù)據(jù)

5、在Picture1顯示,統(tǒng)計結(jié)果在Picture2顯示,如圖E.3所示:圖E.3實驗E.3運行界面提示:eqoac(,1)本程序有兩個事件過程,都要用到存放20個學生的數(shù)組,因此在通用聲明段聲明一個數(shù)組,例,Dimmark%(19);在Command2事件過程中聲明一個數(shù)組s(9),分別存放分數(shù)段的人數(shù)。eqoac(,2)統(tǒng)計時的關(guān)鍵在于:確定每個人的分數(shù)mark(i)與數(shù)組下標s之間的關(guān)系,即:Fori=0To19k=mark(i)10SelectCasekCase0To5s(5)=s(5)+1Case9To10s(9)=s(9)+1Case6To8s(k)=s(k)+1EndSelectN

6、exti4.隨機產(chǎn)生10個2位數(shù),按從大到小遞減的順序排列,并顯示排序結(jié)果。5.參照教材例5.3,在通用聲明段聲明2個數(shù)組,利用隨機函數(shù)形成如下兩個數(shù)組:12111113113113311613213911110313112412310911313360675250643666396669534151574464A=B=要求:eqoac(,1)以下三角形式顯示A數(shù)組,上三角形式顯示B數(shù)組。eqoac(,2)求A數(shù)組主對角線之和和B數(shù)組副對角線之和。圖E.4實驗E.5運行界面輸入整數(shù)n,顯示出具有n行的揚輝三角形。如下圖顯示n=8的效果。圖E.5實驗E.6楊輝三角形運行界面提示:eqoac(,1

7、)定義一個二維數(shù)組(若用定義數(shù)組實現(xiàn),則數(shù)組大一些;若用動態(tài)數(shù)組,則數(shù)組大小用ReDim函數(shù)重新定義)。eqoac(,2)對下三角各元素進行設(shè)置:第一列及對角線上均為1,其余每一個元素正好等于它上面一行的同一列和前一列的兩個元素之和。即a(i,j)=a(i-1,j-1)+a(i-1,j)。eqoac(,3)利用TAB函數(shù)確定每列的寬度,使得列對齊。7設(shè)計一個選課的運行界面如圖E.6所示。它包含兩個列表框,左邊為已開設(shè)的課程名稱,通過Form_Load事件加入,并按拼音字母排序;當單擊某課程名稱后,將該課加入到右邊列表框,并在左邊列表框中刪除該課程。當右邊課程數(shù)已5門時,不允許再加入,出現(xiàn)如圖E

8、.7所示的界面。圖E.6實驗E.7運行界面圖E.7超過5門課程的顯示8窗體上建立一個簡單的組合框,在組合框的文本框輸入數(shù)字字符,按回車后加入到組合框的列表框中,如圖E.8所示;單擊“交換”按鈕,將列表框中最小值項目和第0個項目交換;最大值項目和最后項目交換,如圖E.9所示。圖E.8輸入數(shù)字數(shù)據(jù)圖E.9交換后結(jié)果提示:eqoac(,1)只能輸入數(shù)字,Combo1_KeyPress事件通過如下代碼實現(xiàn):SelectCaseKeyAsciiCase48To57,1309數(shù)字和回車鍵為合法數(shù)據(jù)CaseElse否則為非法數(shù)據(jù),去除非法字符KeyAscii=0EndSelecteqoac(,2)求最大值和

9、最小值必須聲明4個變量:如Min,iMin,Max和iMax分別存放最小值,最小值下標,最大值和最大值下標,并將列表框中第0個項目作為上述4個變量的初值。eqoac(,3)按照求最大值和最小值的方法,在組合框中找最大值和最小值,并獲得最大值下標和最小值下標;注意比較時項目要用Val函數(shù),否則作為字符串比較。eqoac(,4)將組合框中第0項目與最小值交換,最大值與最后項交換。例,最大值與最后項交換的代碼如下:t=Combo1.List(Combo1.ListCount-1)Combo1.List(Combo1.ListCount-1)=Combo1.List(iMax)Combo1.List(

10、iMax)=t9.提供在窗體上顯示的以漢字開頭的字體名稱,并顯示該名稱所對應(yīng)的字體樣式,程序運行效果如圖E.10所示。圖E.10實驗E.9運行界面提示:eqoac(,1)界面設(shè)計:窗體有兩個Label和兩個列表ListBox分別用來顯示字體名稱和字體樣式。eqoac(,2)屏幕對象Screen有一系列的屬性,參見教材例6.3的方法,漢字的機內(nèi)碼最高位為1,若利用Asc函數(shù)求其碼值為小于0(數(shù)據(jù)以補碼表示),因此可用如下算法:Fori=0ToScreenCount-1判斷若Asc(left(Screen.Fonts(i),1)0為漢字字體則在List1顯示字體名稱在List2設(shè)置該控件的字體,并

11、顯示特定的漢字Next10自定義類型數(shù)組的應(yīng)用。要求:eqoac(,1)自定義一個職工數(shù)據(jù)類型,包含職工號,姓名,工資三項內(nèi)容。在通過聲明段聲明一個職工類型的數(shù)組,可以存放5個職工的數(shù)據(jù)。eqoac(,2)窗體中設(shè)計3個標簽,3個文本框,2個命令按鈕和1個圖形框,文本框分別輸入職工號,姓名,工資;當單擊“新增”按鈕時,將文本框輸入的內(nèi)容添加到數(shù)組的當前元素中;當單擊“排序”按鈕時,將輸入的內(nèi)容按工資遞減的順序排列,并在圖形框顯示。程序運行界面如圖E.11所示。圖E.11實驗E.10運行界面提示:eqoac(,1)自定義的職工類型只能在標準模塊內(nèi)定義,若在窗體通用聲明段定義,必須為Private

12、.eqoac(,2)為了保存放當前輸入職工元素的個數(shù),該變量應(yīng)在通用聲明段聲明,若在事件過程中聲明,每次運行時該計數(shù)變量將被初始化為0。eqoac(,3)相關(guān)程序代碼可參照教材例5.13。實驗F過程實驗?zāi)康恼莆兆远x函數(shù)過程和子過程的定義和調(diào)用方法掌握形參和實參之間的對應(yīng)關(guān)系掌握值傳遞和地址傳遞的傳遞的方式掌握變量、函數(shù)和過程的作用域掌握遞歸的概念和使用方法熟悉程序設(shè)計中的常用方法實驗內(nèi)容編一子過程ProcMin(a(),amin),求一維數(shù)組a中的最小值。主調(diào)程序隨機產(chǎn)生10個-300-400之間的數(shù),顯示所產(chǎn)生的數(shù)組中的各元素;調(diào)用ProcMin子過程,顯示數(shù)組中的最小值。進一步思考:若將

13、上面ProcMin過程的amin形參由地址傳遞(ByRef)改為值傳遞(ByRal),調(diào)用后的效果如何?應(yīng)該用何種形式傳遞才能得到正確的結(jié)果?參見教材例6.2,編一求兩數(shù)m,n最大公約數(shù)的函數(shù)過程f(m,n);主調(diào)程序在兩個文本框接受輸入數(shù)據(jù),在圖形框顯示結(jié)果,如圖F.1所示。圖F.1實驗F.2運行界面編一個函數(shù)過程MySin(x),求MySin(x)=。當?shù)趎項的值小于時結(jié)束,x為弧度。主調(diào)程序同時調(diào)用MySin和內(nèi)部函數(shù)sin,進行驗證。主調(diào)程序同時調(diào)用函數(shù)過程MySin和標準函數(shù)Sin,進行驗證。提示:關(guān)鍵是找部分級數(shù)和的通項,如下所示:i=1,3,5,7,編一函數(shù)過程IsH(n),對于

14、已知正整數(shù)n,判斷該數(shù)是否是回文數(shù),函數(shù)的返回值類型為布爾型。主調(diào)程序每輸入一個數(shù),調(diào)用IsN函數(shù)過程,然后在圖形框顯示輸入的數(shù),對于回文數(shù)顯示一個“”,如圖F.2。提示:所謂回文數(shù)是指順讀與倒讀數(shù)字相同,即最高位與最低位相同,次高位與次低位相同,以此類推。當只有一位數(shù)時,也認為是回文數(shù)。回文數(shù)的求法,只要對輸入的數(shù)(按字符串類型處理),利用MID函數(shù)從兩邊往中間逐位比較,若不相同,就不是回文數(shù)。驗證哥德巴赫猜想:任意一個大于2的偶數(shù)都可以表示成兩個素數(shù)之和。編程將6100之間的全部偶數(shù)表示為兩個素數(shù)之和,在列表框顯示結(jié)果,最后Label1顯示共有多少對素數(shù)之和,效果如圖F.3所示。圖F.2實

15、驗F.4回文數(shù)據(jù)程序運行界面圖F.3實驗F.5驗證哥德巴赫猜想運行界面提示:編一求素數(shù)的函數(shù)prime(m),若m是素數(shù),則函數(shù)的返回值為True,否則為False。主調(diào)程序?qū)σ阎?100之間全部偶數(shù)Even,把它分解成兩個奇數(shù)Odd1和Odd2(Even-Odd1),先調(diào)用prime函數(shù),判斷Odd1是否是素數(shù),若不是素數(shù),則不必再對Odd2進行判斷;否則再判斷Odd2,若都是素數(shù),則添加到列表框。利用兩重循環(huán)來實現(xiàn),外循環(huán)變量Even(6100的偶數(shù)),內(nèi)循環(huán)將Odd1(3Even/2之間的奇數(shù))和(Odd2(Even/2之間的奇數(shù))和Odd2(Even-Odd1)進行判斷。如果一個整數(shù)的

16、所有因子(包括1,但不包括本身)之和與該數(shù)相等,則這個數(shù)為完數(shù)。例如6=1+2+3,所以6是一個完數(shù)。編寫一個函數(shù)IsWs(m)判斷m是否為完數(shù),函數(shù)的返回值是邏輯型。主調(diào)程序在列表框顯示1001以內(nèi)的完數(shù),如圖F.4所示。提示:判斷一個數(shù)m是否是完數(shù),算法思路是:將m依次除以1m/2,如果能整除,就是m的一個因子,進行累加;循環(huán)結(jié)束,若m與累加因子之和相等,m就是完數(shù)。圖F.4實驗F.6完數(shù)運行界面編一個子過程DeleStr(s1,s2),將字符串s1中出現(xiàn)的s2字符串刪去,結(jié)果存放在s1中。例如:s1=”12345678AAABBDFG12345”s2=”234”結(jié)果:s1=”15678AAABBDFG15”提示:為了刪除子串,首先利用InStr函數(shù)查找子串;若找到則通過Left、Mid(或Right)函數(shù)實現(xiàn)子字符串的刪除;同時要利用循環(huán)考慮到刪除多個子串的情況。編一子過程MaxLength(s,MaxWord),在已知的字符串s中,找出最長的單詞Max

溫馨提示

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

評論

0/150

提交評論