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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論