Visual Basic程序設計教程(第4版)實驗答案_第1頁
Visual Basic程序設計教程(第4版)實驗答案_第2頁
Visual Basic程序設計教程(第4版)實驗答案_第3頁
Visual Basic程序設計教程(第4版)實驗答案_第4頁
Visual Basic程序設計教程(第4版)實驗答案_第5頁
已閱讀5頁,還剩124頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、聲明:1. 實驗所屬課本原件為visual basic程序設計教程(第4版) (主編 龔沛曾 編者 楊志強 陸慰民 謝步瀛) ;2. 實驗答案代碼采用紅色字體突出 ;3. 僅提供課本前七個實驗的代碼,之后的實驗上課考試均不涉及故不作 ;4. 教學平臺上機實驗、課本篇后實驗,兩者題目操作略有差異,作業以前者要求為準,故以下答案代碼為前者代碼,如對后者代碼有所需求請私信 ;5. 本文為作者原創,復制轉載請注明出處 ;6. 如果對代碼有所疑問,或者略感繁瑣想直接要已完成實驗,請私信 ;7. 瀏覽、復制、下載后請給作者一個合理的評價,感激不盡 。實驗1-1編制簡單的歡迎界面程序。 要求:在屏幕上顯示“

2、歡迎學習visual basic”;在文本框text1中輸入姓名;單擊命令按鈕“你輸入的姓名是”,在label3標簽顯示在文本框中輸入的姓名。 程序運行效果如圖2.1.1所示。程序以“學號-1-1.frm”和“學號-1-1.vbp”文件名保存。以后每個實驗項目的命名規則都是如此,即“學號-實驗號-實驗題目”。(如某同學的學號為a10414001,所完成的是實驗2的第3題,那么程序文件名為“a10414001-2-3.frm”和“a10414001-2-3.vbp”) 圖2.1.1 實驗1.1運行界面提示: (1) 實驗所用到的控件及屬性設置見表2.1.1。表2.1.1 屬 性 設 置控件名屬

3、性label1caption="歡迎學習visual basic";font屬性:字號為二號,字體為隸書,aligment=2(居中)label2caption="請輸入你的姓名";font屬性:字體為楷體,有下劃線label3caption="",borderstyle=1text1text=""command1caption="你輸入的姓名是"(2) “歡迎學習visual basic”要在兩行顯示,只要將label1控件的寬度縮小一些。private sub command1_click(

4、)label3.caption = text1.textend sub實驗1-2模仿教學篇例1.1,將事件過程中的自上而下移動改為自右向左移動,同時考慮文字超出窗體邊界的情況。各個控件及屬性窗口的設置見表2.1.2,背景圖形文件可以選擇自己喜歡的,按鈕上的圖標可通過windows搜索功能查找。以“學號-1-2”為項目名保存。表2.1.2 屬 性 設 置控件名屬 性form1caption="實驗1.2";picture:選擇自己喜歡的圖片label1caption="我開始學習程序設計";fontsize=36;backstyle=0command1ca

5、ption="";style=1;picture="clock02.ico";tooltiptext"自動"command2caption="";style=1;picture="key04.ico";tooltiptext"手動"timer1interval=0注:因為印刷錯誤,例題1.1中兩個命令按鈕的圖形與事件過程代碼不一致,需要調整。提示: 自定義事件過程mymove代碼應調整為,可實現文字移動方向的改變sub mymove()label1.move label1.l

6、eft - 50, label1.topif label1.left < 0 then label1.left = form1.widthend subsub mymove()label1.move label1.left - 50, label1.topif label1.left < 0 then label1.left = form1.widthend subprivate sub command1_click()timer1.interval = 200end subprivate sub command2_click()timer1.interval = 0call my

7、moveend subprivate sub form_load()timer1.interval = 0end subprivate sub timer1_timer()call mymoveend sub實驗1-3編一個程序,在文本框中統計在該窗口上鼠標單擊的次數,效果如圖2.1.2所示。以“學號-1-3”為項目名保存。圖2.1.2 實驗1.3運行界面提示:(1) 對窗體編寫兩個事件:form_load 事件中對文本框置初值為空;form_click事件對鼠標單擊文本框計數。(2) 對鼠標單擊文本框計數計算為:text1.text=val(text1.text)+1private sub

8、form_click()text1.text = val(text1.text) + 1end subprivate sub form_load()text1.text = ""end sub實驗1-4按照教學篇例2.2對窗體三個事件過程(load、click、dblclick)編程,在3個事件中裝入不同的圖片(自己選擇);在屬性窗口練習鼠標指針改變:mousepointer(值為99,用戶自定義)、mouseicon為key04.ico圖標文件,練習窗體圖標(icon)、邊框線類型(borderstyle)、最大化按鈕和最小化按鈕的改變,運行觀察其效果。以“學號-1-4”

9、為項目名保存。提示:例題中form_resize事件可以不考慮,picture屬性設置中注意圖片文件有后綴名,運行測試前需要先保存項目名,保證圖片文件和程序文件在同一個文件夾下,否則會出現圖片找不到的錯誤提示。private sub form_click()caption = "單擊窗體"picture = loadpicture(app.path + "p2.jpg")print "歡迎使用vb"end subprivate sub form_dblclick()clscaption = "雙擊窗體"pictur

10、e = loadpicture(app.path + "p3.jpg")print "結束使用vb"end subprivate sub form_load()caption = "裝入窗體"picture = loadpicture(app.path + "p1.jpg")print "裝入圖片"end sub實驗1-5命令按鈕、字號、內容和格式的復制練習,效果如下圖所示。有關控件及屬性參見下表。以“學號-1-5”為項目名保存。圖2.1.3 實驗1.5運行界面表2.1.3 屬 性 設 置控件名

11、屬 性form1caption="實驗1.5"label1caption="輸入文本 復制文本"text1text="vb功能強大,但要下功夫學習才能學好";multiline=true;scrollbar=2text2text="";multiline=truecommand1caption="隸書25磅"command2caption="復制=>"要求:(1) command1:使得text1的字體和字號根據命令按鈕顯示的要求改變(2) command2:要求將te

12、xt1選中的內容及其格式復制到text2。選中的內容通過text1的seltext屬性獲得提示:為使text2文本框保持text1中的字符格式,通過text2.fontsize=text1.fontsize和text2.fontname=text1.fontname實現private sub command1_click()text1.fontname = "隸書"text1.fontsize = 25end subprivate sub command2_click()text2 = text1.seltexttext2.fontname = text1.fontname

13、text2.fontsize = text1.fontsizeend sub實驗1-6圖片縮小、還原的設置。窗體上放置一個image圖像控件和兩個命令按鈕。image圖像控件裝入自己喜歡的圖片,設置stretch屬性為true,使得圖片隨著圖像控件的大小而變,如圖2.1.4所示。以“學號-1-6”為項目名保存。圖2.1.4 實驗1.6運行界面要求:(1)單擊“縮小一半”按鈕,圖片縱、橫均縮小一半。(2)單擊“還原”按鈕,圖片與初始裝入時同大。提示:為了實現還原效果,要做以下3件事。(1)必須在事件過程外,即程序代碼最上方聲明窗體級變量:dim h%,w% 用戶輸入的變量聲明語句(2)在form

14、1_load事件中保存圖像控件的初始值:w=image1.widthh=image1.height(3)在command2_click事件中還原為初始值:image1.width=wimage1.height=h縮小一半command1_click事件請讀者自行完成。思考:若要設置圖片放大效果,如何修改代碼?dim h%, w%private sub command1_click()image1.width = image1.width * 0.5image1.height = image1.height * 0.5end subprivate sub command2_click()imag

15、e1.width = wimage1.height = hend subprivate sub form_load()w = image1.widthh = image1.heightend sub實驗2-1隨機生成3個正整數,其中一個1位數,1個2位數,1個3位數,計算它們的平均值,保留兩位小數,運行界面如圖2.2.1所示。圖2.2.1 實驗2.1運行界面提示:(1)隨機數生成某范圍內的正整數公式為int(rnd*范圍+基數)其中范圍=數的上限-下限+1,基數=數的下限。例如,要生成2位數,語句為int(rnd*(99-10+1)+10)=int(rnd*90+10)(2)保留兩位小數,利用

16、format函數,形式為format(要顯示的數值, "0.00 ")。private sub command1_click()text1.text = int(rnd * 9 + 1)text2.text = int(rnd * 90 + 10)text3.text = int(rnd * 900 + 100)end subprivate sub command2_click()text4.text = format(val(text1.text) + val(text2.text) + val(text3.text) / 3, "0.00")end

17、subprivate sub command3_click()text1.text = ""text2.text = ""text3.text = ""text4.text = ""end sub實驗2-2我國有13億人口,假定按人口年增長0.8%計算,多少年后我國人口超過26億。提示:(1)已知年增長率r=0.8%,求人數超過26億的年數n公式為:其中:log(x)為對數函數,log(2)緣由log(13/26),0.8%需寫成0.008(2)該題目的界面設計 由讀者自行設計。private sub comman

18、d1_click()n = int(log(2) / log(1 + 0.008) + 1)text1 = n & "年后人口超過26億"end sub實驗2-3輸入一個合法的3位正整數,測試其數值合法性后,逆序輸出并顯示。例如,輸入“734”,輸出是“437”,如圖2.2.2所示。提示:(1)利用text1_lostfocus事件,輸入數據合法性檢查調用isnumeric函數,參閱教學篇例2.5;若有錯利用msgbox顯示出錯信息,如圖2.2.3所示;清除文本框內輸入的非法數據,通過setfocus定位于文本框處,重新輸入。(2)利用“mod”和“”運算符將一個3

19、位數分離出3個1位數,然后利用乘法和加法運算將3個1位數連接成一個逆序的3位數。圖2.2.2 實驗2.3運行界面 圖2.2.3 出錯信息private sub command1_click()dim x%, x1%, x2%, x3%x = val(text1)x1 = x mod 10x2 = (x mod 100) 10x3 = x 100label2 = x1 * 100 + x2 * 10 + x3end subprivate sub text1_keypress(keyascii as integer)if keyascii = 13 thenif not isnumeric(tex

20、t1.text) thentext1.text = ""end ifend ifend subprivate sub text1_lostfocus()if not isnumeric(text1.text) thenmsgbox "輸入非數值數據,請重新輸入", , "數據檢驗"text1.text = ""text1.setfocusend ifend sub實驗2-4輸入一個字符串,分別調用ucase、len、mid、left、right函數,顯示如圖2.2.4所示的效果。圖2.2.4 實驗2.4運行界面提示

21、:事件過程可以在form_click中編碼,輸出控件可以使用標簽控件。private sub form_click()label1 = ucase(text1.text)label2 = len(text1.text)label3 = left(text1, 11)label4 = mid(text1, 12, 6)label5 = right(text1, 5)end sub實驗2-5效仿實驗2.4,驗證轉換函數的使用,text1文本框輸入字符串,text2文本框顯示調用所選函數的結果,4個命令按鈕為轉換函數,label2顯示對應的函數名,運行效果如圖2.2.5所示。圖2.2.5 實驗2.5

22、運行界面private sub command1_click()label2 = "val函數的結果"text2 = val(text1.text)end subprivate sub command2_click()label2 = "str函數的結果"text2 = str(text1.text)end subprivate sub command3_click()label2 = "chr函數的結果"text2 = chr(text1.text)end subprivate sub command4_click()label2

23、= "asc函數的結果"text2 = asc(text1.text)end sub實驗2-6print方法練習,顯示字符圖形。參考教學篇例4.4輸出簡單圖形,如圖2.2.6所示。要求窗體不可改變大小,當單擊“清屏”按鈕后,清除窗體所顯示的圖形。提示:利用循環語句和string函數。讀者也可以發揮自己的想像力,設計更美觀的圖形。進一步要求:若要顯示如圖2.2.7所示的圖形,程序要如何修改?圖2.2.6 實驗2.6運行界面 圖2.2.7 進一步要求運行界面private sub command1_click()printfor i = 1 to 5print tab(15 -

24、 i * 2); string(2 * i - 1, ""); string(10 - (2 * i - 1), ""); string(2 * i - 1, "")next iend subprivate sub command2_click()clsend sub實驗2-7用inputbox輸入一個正實數,用print方法在一行上顯示出它的平方和平方根、立方和立方根,每個數保留三位小數,其間有間隔。private sub command1_click()x = val(inputbox("輸入一個正實數", &

25、quot;計算", 0)pf = format(x * x, "0.000")pfg = format(sqr(x), "0.000")lf = format(x * x * x, "0.000")lfg = format(x (1 / 3), "0.000")print "平方為:" pf; space(3); "平方根為:" pfg; space(3); "立方為:" lf; space(3); "立方根為:" lfgen

26、d sub實驗3-1在購買某物品時,若所標明的價錢x在下述范圍內,所付錢y按對應折扣支付:提示:此例用多分支結構實現,注意計算公式和條件表達式的正確書寫。private sub form_click()dim x!, y!x = val(inputbox("輸入x的值")if x < 1000 theny = xelseif x < 2000 theny = 0.9 * xelseif x < 3000 theny = 0.8 * xelsey = 0.7 * xend ifprint yend sub實驗3-2編一個程序輸入上網的時間并計算上網費用,計算

27、方法如下:同時為了鼓勵多上網,每月收費最多不超過150元。提示:首先利用多分支if語句根據3個時間段算出費用,然后再用單分支if語句對超過150元的費用設置為150元。private sub form_click()dim x!, y!x = val(inputbox("輸入上網時間")if x < 10 theny = 30elseif x < 50 theny = 30 + 2.5 * (x - 10)elsey = 30 + 2.5 * 40 + 2 * (x - 50)end ifif y > 150 theny = 150end ifprint

28、yend sub實驗3-3輸入x,y,z三個數,按從大到小的次序顯示,如圖2.3.1所示。圖2.3.1 實驗3.3運行界面提示:利用inputbox函數輸入3個數,存放到數值型變量中,然后對其進行比較;若放在字符串變量中,有時會得到不正確的結果(因為字符串是從左到右的規則比較,例如會出現“34”>“2345”>“126789”的情況)。對三個數進行排序,只能通過兩兩比較,一般可用三條單分支if語句來實現。方法如下:先將x與y比較,使得x>y;然后將x與z比較,使得x>z,此時x最大;最后將y與z比較,使得y>z。要顯示多個數據,可以用“;”逐一顯示,也可利用“&a

29、mp;”字符串連接符將多個變量連接顯示。例如要輸出x、y、z:print ”排序后”;x;” ”;y;” ”;z 用分號將多個變量顯示也可print ”排序后”& x &” ” & y &” ” &z 用”&”字符串連接符思考:若要按從小到大的次序顯示,程序將如何修改?private sub command1_click()dim x!, y!, z!x = inputbox("input x")y = inputbox("input y")z = inputbox("input z")

30、print " x y z"print " 排序前" x; " " y; " " zif x < y then t = x: x = y: y = tif x < z then t = x: x = z: z = tif y < z then t = y: y = z: z = tprint " 排序后" x; " " y; " " zend sub實驗3-4編一模擬袖珍計算器的完整程序,界面如圖2.3.2所示。要求:輸入兩個操作數和一個

31、操作符,根據操作符決定所做的運算。圖2.3.2 實驗3.4運行界面提示:對于存放操作符的文本框text3,利用select case語句實現相應的運算。private sub command2_click()text1.text = ""text2.text = ""text3.text = ""text4.text = ""end subprivate sub text3_lostfocus()select case trim(text3)case "+"text4 = val(text1)

32、+ val(text2)case "-"text4 = val(text1) - val(text2)case "*"text4 = val(text1) * val(text2)case "/"if val(text2) = 0 thenmsgbox "分母為零,重新輸入"text2 = ""text2.setfocuselsetext4 = val(text1) / val(text2)end ifend selectend sub實驗3-5利用計算機解決古代數學問題”雞兔同籠問題”。即已知

33、在同一個籠子里有總數為m只雞和兔,雞和兔的總腳數為n只,求雞和兔各有多少只?提示:雞、兔的只數通過已知輸入的m,n列出方程可解, 設雞為x只,兔為y只,則計算公式為:但不要求出荒唐的解(如3.5只雞、4.5只兔,或者求得的只數為負數)。因此,在text2_lostfocus事件中要考慮下面兩個條件:輸入的總腳數n必須是偶數,否則提示數據錯誤的原因,要求重新輸入數據。(使用求余方法判斷,即n mod 2<>0)圖2.3.3 實驗3.5運行界面 若求出的只數為負數,提示數據錯誤的原因,如圖2.3.3所示,重新輸入數據。(使用總只數和總腳數的關系,即n>4*m or n<2*

34、m )private sub text2_lostfocus()dim m%, n%, y%m = val(text1)n = val(text2)if n mod 2 <> 0 thenmsgbox ("腳數必須是偶數")text2 = ""text2.setfocuselsey = n / 2 - mif n > 4 * m or n < 2 * m thenmsgbox ("出現荒唐解,請重新輸入")text2 = ""text2.setfocuselsey = n / 2 - mla

35、bel2 = m - ylabel3 = yend ifend ifend sub實驗3-6輸入一元二次方程的ax2+bx+c=0的系數a,b,c,計算并輸出一元二次方程的兩個根x1,x2。界面如圖2.3.4所示。圖2.3.4 實驗3.6運行界面提示:要考慮實根,要求判斷b2-4*a*c>=0。private sub command1_click()dim a!, b!, c!, x1!, x2!, de!a = text1b = text2c = text3de = b * b - 4 * a * ct = 2 * aif de = 0 thentext4 = format(-b /

36、t, "0.00")text5 = format(-b / t, "0.00")elseif de > 0 thentext4 = format(-b + sqr(de) / t, "0.00")text5 = format(-b - sqr(de) / t, "0.00")elsetext4 = format(-b / t, "0.00") & "+" & format(sqr(abs(de) / t, "0.00") &

37、"i"text5 = format(-b / t, "0.00") & "-" & format(sqr(abs(de) / t, "0.00") & "i"end ifend subprivate sub command2_click()text1 = ""text2 = ""text3 = ""text4 = ""text5 = ""end sub實驗3-7檢查表達式輸

38、入中圓括號配對問題。要求對文本框輸入的算術表達式,檢驗其圓括號配對情況,并給出相應信息,如圖2.3.5所示。當單擊“重置”按鈕,清除文本框輸入的內容、窗體顯示的信息和計算,并對窗體級變量賦初值零,便于再次輸入和統計。提示:在過程外最上方聲明一個窗體級變量n,存放統計括號配對的情況;在text1_keypress(keyascii as integer)事件過程中進行如下處理:if chr(keyascii)不是等號 then若是左括號”(”則n=n+1;若是右括號”)”則n=n-1;else結束表達式輸入,對n的3種情況:=n、>0、<0用print方法顯示相應的信息end if用

39、一個嵌套的雙分支和內嵌兩個多分支結構來實現。dim n!private sub command1_click()text1.text = ""n = 0clsend subprivate sub text1_keypress(keyascii as integer)if chr(keyascii) <> "=" thenif chr(keyascii) = "(" thenn = n + 1end ifif chr(keyascii) = ")" thenn = n - 1end ifelseif n

40、= 0 thenprint "括號配對成功"elseif n > 0 thenprint "左括號多于右括號" & n & "個,按“重置”按鈕,重新輸入"end ifif n < 0 thenprint "右括號多于左括號" & -n & "個,按“重置”按鈕,重新輸入"end ifend ifend ifend sub實驗3-8輸入一個數字(17),分別通過select語句和choose函數兩種方法用英文顯示對應的星期一星期日,效果如圖所示:pri

41、vate sub command1_click()select case trim(text1)case 1label2 = "monday"case 2label2 = "tuesday"case 3label2 = "wednesday"case 4label2 = "thursday"case 5label2 = "friday"case 6label2 = "saturday"case 7label2 = "sunday"case is >

42、7, is < 1msgbox "數字為17,重新輸入"text1 = ""text1.setfocusend selectend subprivate sub command2_click()if text1 > 7 or text1 < 1 thenmsgbox "數字為17,重新輸入"text1 = ""text1.setfocuselselabel3 = choose(text1, "monday", "tuesday", "wednesd

43、ay", "thursday", "friday", "saturday", "sunday")end ifend sub實驗3-9設計如圖2.3.6所示的計算程序。當輸入參數,選擇“函數”和“字形”后單擊“計算”按鈕,在label3以選擇的字形顯示計算的結果。提示:關于“字形”復選框的選用采用逐個判斷選擇,進行屬性值的對應設置。字形的屬性見表2.3.1,設置屬性值為true時其屬性起作用。字 形 屬 性意義fontbold粗體fontitalic斜體fontstrikethru刪除線fontunderl

44、ine下劃線圖2.3.6 實驗3.9運行界面private sub command1_click()if option1.value thenlabel3.caption = "sin(" & text1.text & ")=" & sin(val(text1.text)elseif option2.value thenlabel3.caption = "exp(" & text1.text & ")=" & exp(val(text1.text)elselabel3

45、.caption = "sqr(" & text1.text & ")=" & sqr(val(text1.text)end ifif check1.value thenlabel3.fontbold = trueelselabel3.fontbold = falseend ifif check2.value thenlabel3.fontitalic = trueelselabel3.fontitalic = falseend ifif check3.value thenlabel3.fontunderline = trueel

46、selabel3.fontunderline = falseend ifend sub實驗3-10利用單選按鈕,選擇目的地和車速類型,顯示從上海出發到目的地座票的票價,如圖2.3.7所示。從上海到南京、北京乘火車有3種車速類型:高鐵(二等)、動車、快車,座位票的票價見表2.3.2。當選擇了目的地、車速類型單選按鈕后,在label1控件顯示選擇的相關信息和車票價格。表2.3.2 票 價目 的 地高 鐵動 車快 車南京1409347北京555410179圖2.3.7 實驗3.10運行界面提示:command1_click事件采用一個雙分支(目的地)結構分別嵌套一個多分支(車速類型)來實現;顯示的內

47、容通過各單選按鈕的caption屬性來獲得。private sub command1_click()if option1.value = true thenif option3.value = true thenlabel1.caption = "從上海到南京 高鐵價格 140元"elseif option4.value = true thenlabel1.caption = "從上海到南京 動車價格 93元"elselabel1.caption = "從上海到南京 快車價格 47元"end ifelseif option3.valu

48、e = true thenlabel1.caption = "從上海到北京 高鐵價格 555元"elseif option4.value = true thenlabel1.caption = "從上海到北京 動車價格 410元"elselabel1.caption = "從上海到北京 快車價格 179元"end ifend ifend sub實驗3-11編寫一個“個人簡歷表”程序。該程序運行后,用戶在文本框中輸入姓名和年齡,選擇性別、職業、學歷和個人興趣等個人信息。單擊“遞交”按鈕運行后,在右側label1控件顯示具體個人信息;單擊

49、“重置”按鈕則清除輸入的信息和所做的選擇。運行界面如圖2.3.8所示。圖2.3.8 個人簡歷表提示:利用xb,xl,zy,ah字符串變量分別保存性別、學歷、職業和愛好的選擇信息。dim xm, xb, xl, zy, ah as stringprivate sub command1_click()if text1.text = "" thentext1.setfocusmsgbox "姓名未填", , "提示"elsexm = text1.textend ifif not isnumeric(text2.text) or val(te

50、xt2.text) < 18 or val(text2.text) >= 60 thentext2.text = ""text2.setfocusmsgbox "年齡輸入錯誤", , "提示"elsenl = val(text2.text)end ifif option1.value thenxb = label4.captionelseif option2.value thenxb = label5.captionelsemsgbox "性別未選", , "提示"end ifif

51、option3.value thenxl = label6.captionelseif option4.value thenxl = label7.captionelseif option5.value thenxl = label8.captionelsemsgbox "學歷未選", , "提示"end ifif option6.value thenzy = label9.captionelseif option7.value thenzy = label10.captionelseif option8.value thenzy = label11.c

52、aptionelsemsgbox "職業未選", , "提示"end ifif check1.value thenah = label12.captionelseah = ""end ifif check2.value thenah = label13.caption + " " + ahelseah = ah + " "end ifif check3.value thenah = label14.caption + " " + ahelseah = ah + "

53、"end ifif check4.value thenah = label15.caption + " " + ahelseah = ah + " "end iflabel3.caption = "簡歷" & vbcrlf & "姓名:" & xm & vbcrlf & "年齡:" & nl & vbcrlf & "性別:" & xb & vbcrlf & "學歷:&q

54、uot; & xl & vbcrlf & "職業:" & zy & vbcrlf & "愛好:" & ahend subprivate sub command2_click()text1.text = ""text2.text = ""label3.caption = ""option1.value = falseoption2.value = falseoption3.value = falseoption4.value = falseo

55、ption5.value = falseoption6.value = falseoption7.value = falseoption8.value = falsecheck1.value = falsecheck2.value = falsecheck3.value = falsecheck4.value = falseend sub實驗4-1用單循環和print方法顯示有規律的圖形,可通過form_click事件實現,如圖2.4.1所示。 提示: (1)對于特殊字符""、""通過漢字標準輸入的軟鍵盤菜單中的"特殊符號"命令來實現

56、。(2)用string(n, "")函數產生重復字符串,如:string(5, "")將產生""。(3)通過循環結構確定顯示的起始位tab(20-2*i),顯示有規律的子串,"" 的列寬約為2。圖2.4.1 實驗4 .1運行界面private sub form_click()for i = 1 to 9print tab(20 - 2 * i); string(2 * i - 1, "")next iend sub實驗4-2用單循環實現如圖2.4.2所示的界面。 圖2.4.2 實驗4.2運行界面

57、提示:利用chr函數將字母編碼值轉換成字母。private sub form_click()for i = 1 to 10 step 1print tab(i); string(20 - 2 * i), chr(64 + i)next iend sub實驗4-3求s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+n)。要求:用for單循環求前30項和。用until求多項式和,直到和大于5000為止。運行效果如圖2.4.3所示。圖2.4.3 實驗4.3運行界面private sub command1_click()dim s as double, x as double,

58、 i as integer, j as integers = 0for i = 1 to 30x = 0for j = 1 to ix = x + 1s = s + xnext jnext ilabel1.caption = "前30項的和=" & send subprivate sub command2_click()dim i as long, s as double, x as doublei = 1s = 1x = 1doi = i + 1x = x + is = s + xloop until (s > 5000)label2.caption = &

59、quot;前" & i & "項的和=" & send sub實驗4-4篩選在text1文本框輸入的字母字符,并反序在text2中存放,界面如圖2.4.4所示。圖2.4.4 實驗4.4運行界面提示: 要考慮字母的大寫和小寫。 首先利用len函數求text1.text字符串長度,然后利用for循環結構和mid函數逐一取字符進行判斷是否為字母,若是字母,則利用語句“text2.text=字母 & text2.text”將字母連接到text文本框前面,實現反序。思考:若連接表達式為“text2.text & =字母”,效果如何?p

60、rivate sub command1_click()text2.text = ""for i = 1 to len(text1.text)text2.text = mid(text1.text, i, 1) & text2.textnext iend subprivate sub command2_click()text1.text = ""text2.text = ""end subprivate sub command3_click()endend sub實驗4-5計算當第i項的值<10-4時結束提示:本題的關鍵是找規律寫通項。本題規律為:第i項的分母是前一項的分母加i,即分母通項為:ti=ti-1+i。因為事先不知循環次數,應使用do while循環結構;當然也可利用for循環結構,設置循環的終值為一個較大的值,當滿足精度后退出循環。運行結果如圖2.4.5所示。圖2.4.5 實驗4.5運行界面dim s!, t!,

溫馨提示

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

評論

0/150

提交評論