第一篇:VB上機(jī)實(shí)驗(yàn)報(bào)告 詳細(xì)易懂
實(shí)驗(yàn)五
數(shù)組的應(yīng)用
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握一維數(shù)組的概念、定義、數(shù)組元素的引用和初始化。
2.學(xué)會(huì)用數(shù)組和程序基本控制結(jié)構(gòu)實(shí)現(xiàn)數(shù)據(jù)的求和、求平均、求極值和排序等算法程序的設(shè)計(jì)
3.加深對(duì)循環(huán)控制結(jié)構(gòu)的理解和使用
二、實(shí)驗(yàn)環(huán)境
1.計(jì)算機(jī)
2.Visual Basic 6.0開發(fā)環(huán)境
三、實(shí)驗(yàn)說明
1.熟練運(yùn)用Visual Basic 6.0開發(fā)環(huán)境 2.熟悉建立VB應(yīng)用程序的步驟
3.學(xué)會(huì)使用一維數(shù)組實(shí)現(xiàn)簡單的應(yīng)用程序
四、實(shí)驗(yàn)內(nèi)容和步驟
1.實(shí)驗(yàn)內(nèi)容
隨機(jī)產(chǎn)生10個(gè)兩位整數(shù),找出其中的最大值、最小值和平均值。2.實(shí)驗(yàn)步驟
(1)打開計(jì)算機(jī),在Visual Basic 6.0系統(tǒng)環(huán)境下,選擇“文件”菜單中的“新建工程”菜單選項(xiàng),打開“新建工程”窗口;
(2)在“新建工程”窗口按下“確定”按鈕打開“工程設(shè)計(jì)”窗口;(3)在“工程設(shè)計(jì)”窗口,首先設(shè)計(jì)窗口的屬性,然后打開“工具箱”窗口添加所需控件,設(shè)計(jì)該實(shí)驗(yàn)的界面;(4)選擇“視圖”菜單中的“代碼窗口”菜單選項(xiàng),打開“代碼窗口”窗口,設(shè)計(jì)命令按鈕控件的事件代碼;
考慮到要在不同的過程中使用數(shù)組,所以首先在模塊的通用段中聲明數(shù)組:
Dim a(1 To 10)As Integer 隨機(jī)整數(shù)的生成由窗體的Load事件代碼完成:
Private Sub Form_Load()
Dim p As String
Randomize
p = “"
For i = 1 To 10
a(i)= Int(Rnd * 90)+ 10
p = p & Str(a(i))& ”,“
Next
Label1.Caption = LTrim(Left(p, Len(p)– 1))End Sub 求最大、最小以及平均值由“確定”按鈕Command2的Click事件代碼完成:
Private Sub Command2_Click()
Dim n As Integer, m As Integer, s As Single
min = 100: max = 10: s = 0
For i = 1 To 10
If a(i)> n Then max = a(i)
If a(i)< m Then min = a(i)
s = s + a(i)
Next
Text1.Text = max
Text2.Text = min
Text3.Text = s / 10 End Sub “重置”按鈕Command1的Click事件代碼:
Private Sub Command1_Click()
Form_Load
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”" End Sub 最后是“關(guān)閉”按鈕Command3的Click事件代碼:
Private Sub Command3_Click()
Unload Me End Sub
(5)運(yùn)行程序,觀察結(jié)果;(6)保存窗體,保存工程。五、小結(jié)實(shí)驗(yàn)心得體會(huì)
第二篇:vb上機(jī)心得體會(huì)
心得體會(huì):
剛開始學(xué)習(xí)vb的時(shí)候,我就覺得大一的計(jì)算機(jī)基礎(chǔ)根本不值一提,難度相去甚遠(yuǎn)。我問過很多以前的同學(xué),他們都說vb是編程語言中最簡單的,但是在這次上機(jī)實(shí)習(xí)過程中,我發(fā)現(xiàn)要完成學(xué)生成績管理系統(tǒng)實(shí)在有很大難度。平時(shí)看課本的時(shí)候,覺得還能夠理解,看得懂,然而“紙上得來終覺淺”,一旦自己調(diào)試程序,總會(huì)犯很多錯(cuò)誤,如前面說的“文件未找到”“下標(biāo)越界”等等,都是平時(shí)沒有機(jī)會(huì)解決和一些曾經(jīng)被自己忽視的問題。有時(shí)候,為了找到代碼中錯(cuò)誤或不符合要求的地方,我不得不一遍又一遍地仔細(xì)檢查程序,甚至標(biāo)點(diǎn)符號(hào)都不能放過。細(xì)節(jié)決定成敗,一個(gè)小小的分號(hào)也會(huì)起著扭轉(zhuǎn)乾坤的作用。
在實(shí)習(xí)之前,我妄想從網(wǎng)站上下載一個(gè)或者請(qǐng)論壇上的好友幫忙,后來我發(fā)現(xiàn)這條路走不通,他們從來都不給別人提供實(shí)質(zhì)性的幫助,只是象征性地說:“不會(huì)問老師?!庇谑俏掖蛳诉@個(gè)念頭,開始自己動(dòng)手做。
當(dāng)我無數(shù)次調(diào)試總算讀出文件的時(shí)候,那種高興勁可想而知。我慢慢覺得,其實(shí)自己調(diào)試程序蠻有意思的。既彌補(bǔ)了在vb學(xué)習(xí)中的漏洞,還學(xué)到了新內(nèi)容,積累了一定的實(shí)戰(zhàn)經(jīng)驗(yàn),對(duì)以后的期末考試和等級(jí)考試起到了相當(dāng)大的促進(jìn)作用。
實(shí)習(xí)過程中,多虧指導(dǎo)老師幫助我找出錯(cuò)誤的地方。如果不是他們的細(xì)心講解,我很難完成這次實(shí)習(xí)任務(wù)。當(dāng)然,我在編程方面還有很大不足,今后我定會(huì)加倍努力,為等級(jí)考試的順利通過打下牢固的基礎(chǔ)。
第三篇:上機(jī)實(shí)驗(yàn)報(bào)告格式
請(qǐng)各位同學(xué)按照下列格式寫:否則按照0分記
上機(jī)實(shí)驗(yàn)報(bào)告格式
Matlab學(xué)習(xí)第?次上機(jī)實(shí)驗(yàn)報(bào)告(第?次)
姓名:???班級(jí):???上機(jī)時(shí)間:??????
1.上機(jī)內(nèi)容
2.建模及算法分析
3.程序
4.小結(jié)
5.參考文獻(xiàn)
將文檔發(fā)到我的郵箱里面
learn_matlab@163.com
第四篇:上機(jī)實(shí)驗(yàn)報(bào)告
一. 題目1. 建立一個(gè)學(xué)生檔案,內(nèi)容包括學(xué)號(hào),姓名,年齡,性別,數(shù)學(xué),物理和英語3門功課成績。要求實(shí)現(xiàn)以下功能:1)數(shù)據(jù)輸入;2)查詢某個(gè)學(xué)生的成績;3)按平均排列輸出;4)統(tǒng)計(jì)某門課各分?jǐn)?shù)段人數(shù);5)刪除某個(gè)學(xué)生記錄;2. 編程實(shí)現(xiàn)對(duì)二位數(shù)進(jìn)行加,減,乘運(yùn)算,每運(yùn)行一次程序做10道題,完成后給出成績(每題10分)。二. 設(shè)計(jì)思想和模塊劃分1.1.先定義所需要的條件,例如,姓名,學(xué)號(hào),性別,三門功課的成績,平均分等。2.輸入姓名,學(xué)號(hào),性別,年齡,三門功課的成績后,就輸出相應(yīng)的姓名,學(xué)號(hào),性別,年齡,三門功課的成績。3.打印表頭;4.在求出平均分,并打印出平均分。5.在查找學(xué)生,并打印出學(xué)生的相關(guān)資料;并按照平均分的高低排列;6.在統(tǒng)計(jì)學(xué)生各科成績是否》=60分,如果是就是通過,否就是沒通過,最后打印出最后的結(jié)果。7.刪除學(xué)生,選中刪除的學(xué)生,如果確定要,那么該學(xué)生的一切記錄就變?yōu)?;2.1.隨機(jī)調(diào)用函數(shù),產(chǎn)生兩個(gè)其值為10到99的隨機(jī)整數(shù)分別放在c,d中用作運(yùn)算時(shí)的運(yùn)算數(shù)。2.隨機(jī)調(diào)用函數(shù),產(chǎn)生一個(gè)值為1到3 的隨機(jī)整數(shù)放入b中,用來選擇不同的運(yùn)算。根據(jù)b的值選擇不同的運(yùn)算。當(dāng)b=1時(shí),去進(jìn)行c+d的運(yùn)算練習(xí);當(dāng)b=2 時(shí),去進(jìn)行c-d的運(yùn)算練習(xí);當(dāng)b=3時(shí),去進(jìn)行c×d的運(yùn)算練習(xí)。每完成一個(gè)算題就給出是否正確的信息。3.根據(jù)答案正確與否統(tǒng)計(jì)。正確時(shí),顯示’right’;錯(cuò)誤時(shí),顯示’wrong’。4.步驟1.2.3.4.重復(fù)10次。5.輸出學(xué)生成績。三. 運(yùn)行結(jié)果1.Input the 1 student :num:03name:wfage:18sex:fmath:98phy:75eng:65Input the 2 student :num:06name:scage:17sex:fmath:78phy:45eng:65Input the 3 student :num:09name:ytage:17sex:mmath:69phy:75eng:501.readin 2.finds 3.del 4.tj 5.exit1-----------------------------table----num name age sex math phy eng ave------3 wf 18 f 98.0 75.0 65.0 79.3------9 yt 17 m 69.0 75.0 50.0 64.7-------6 sc 17 f 78.0 45.0 65.0 62.7-------1.readin 2.finds 3.del 4.tj 5.exit2Into number:3---num name age sex math phy eng ave---3 wf 18 f 98.0 75.0 65.0 79.3----1.readin 2.finds 3.del 4.tj 5.exit3Into number:6---num name age sex math phy eng ave---6 sc 17 f 78.0 45.0 65.0 62.6---true? Y/Ny1----------------table------------------num name age sex math phy eng ave----3 wf 18 f 98.0 75.0 65.0 79.3-----9 yt 17 m 69.0 75.0 50.0 64.7-----0 0 0 f 0.0 0.0 0.0 0.0-----1.readin 2.finds 3.del 4.tj 5.exit4 1.input the math 2.input the phy 3.input the eng 1math: pass num is :3 no pass num is :02.32+82=114right!97*15=1455right!99-58=41right!76-66=10right!58+13=71right!37+49=86right!99+52=151right!49*69=5462wrong!73-38=31wrong!86+34=120right!mark is 80四. 主要錯(cuò)誤改正方法1.在本題的編寫過程中常出現(xiàn)begin 和end 不配對(duì),只要始它們的個(gè)數(shù)相同就可以了,就可以了。在程序中常出現(xiàn)的’unknown identifier’沒有定義的錯(cuò)誤,只要在程序前加上定義,就可以了。還有就是type mismatch’的類型不匹配,只要根據(jù)前后內(nèi)容,重新定義,就可以了。2.在本題編寫中,題目要求是兩個(gè)兩位數(shù)運(yùn)算,如果寫成c:=random(100)在運(yùn)行過程中,就會(huì)出現(xiàn)一位數(shù)運(yùn)算,只要把它寫成c:=random(90)+10,就可以了。五. 實(shí)習(xí)小結(jié)1.第一題的程序編寫比較復(fù)雜,需要較多的定義,因而在后面的程序部分,就常出現(xiàn)標(biāo)識(shí)符重復(fù),而導(dǎo)致的類型不匹配。還有就是每個(gè)部分編好后,上下不能連接,而無法調(diào)用。2.第二題較第一題簡單,和書上的例題類似,所以,比較簡單,但從中也出現(xiàn)一些不問題。以上兩大題中出現(xiàn)的問題,要在同學(xué)的幫助下,才能完成??偟膩碚f兩題程序比較困難六. 程序清單1.program twins;const m=3;n=3;typestudent=recordnum:integer;name:string[3];age:integer;sex:char;s:array[1..n] of real;math,eng,phy:real;ave:real;end;sarr=array[1..m] of student;ta=array [1..m] of student;f=string[6];varstu:sarr;ct:ta;k,d:integer;procedure readin(var stu:sarr);const wrong='0<=data<=100 ,again!';var j,i:integer;a:student;beginwriteln;writeln('Input ',m,' num name sex math phy eng',' of student.');for j:=1 to m dobeginwriteln;writeln('Input the ',j,' student :');with a dobeginwrite('num:');readln(num);write('name:');readln(name);write('age:');readln(age);write('sex:');readln(sex);while(sex<>'m')and(sex<>'f')dobeginwrite('sex:');readln(sex)end;for i:=1 to n do begincase i of1:begin write('math:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('math:');readln(s[i]);end;end;2:begin write('phy:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('phy:');readln(s[i]);end;end;3:begin write('eng:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('eng:');readln(s[i]);end;end;end;end;stu[j]:=a;end;writeln;end;end;procedure ave(var stu:sarr);var j,i:integer;k:real;beginfor j:=1 to m dobegink:=0;with stu[j] dobeginfor i:=1 to n do k:=k+s[i];ave:=k/nend;end;end;procedure px(var stu:sarr);var tm:ta;j,i,p:integer;beginfor j:=1 to m dobeginp:=j;for i:=j+1 to m doif stu[i].ave>stu[p].ave then p:=i;tm[1]:=stu[p];stu[p]:=stu[j];stu[j]:=tm[1];end;end;procedure head(ct:ta);var i:integer;beginwrite(' ');for i:=1 to 72 do write('-');writeln;write('',' num':4,' ','name':9,' ','age':8,' ','sex':5,' ','math':6,' ','phy':9,' ','eng':8,' ');writeln('ave':6,' ');write(' ');for i:=1 to 72 do write('-');writeln;with ct[1] dobeginwrite('',num:7,' ',name:8,' ',age:8,' ',sex:5,' ');for i:=1 to n do write(s[i]:7,' ');write(ave:10,' ');writeln;end;write(' ');for i:=1 to 72 do write('-');writeln;end;procedure find(var stu:sarr);var n,i:integer;u:boolean;beginu:=true;while u dobeginwrite('Into number:');readln(n);for i:=1 to m dobeginif stu[i].num=n then beginct[1]:=stu[i];u:=false;d:=iend;end;end;end;procedure del(var stu:sarr);var i:integer;b:char;beginhead(ct);write('true? Y/N');readln(b);if b='y' then begin write('1');with stu[d] dobeginnum:=0;name:='0';age:=0;sex:='f';for i:=1 to n do s[i]:=0;ave:=0end;endelseend;procedure tj(var stu:sarr);var w1,q1,q2,num,j:integer;h1,h2,h3:boolean;beginh1:=false;h2:=false;h3:=false;q1:=0;q2:=0;writeln(' ':30,'1.input the math 2.input the phy 3.input the eng ');readln(w1);case w1 of1:h1:=true;2:h2:=true;3:h3:=true;end;if h1 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].math>=60 thenq1:=q1+1elseq2:=q2+1;writeln('math:');end;if h2 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].phy>=60 thenq1:=q1+1elseq2:=q2+1;writeln('phy:');end;if h3 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].eng>=60 thenq1:=q1+1elseq2:=q2+1;writeln('eng:');end;end;end;end;writeln(' ':5,'pass num is :',q1);writeln(' ':5,'no pass num is :',q2);end;procedure head1(var stu:sarr);var j,i:integer;beginwriteln('----------------table--------------':60);writeln;write(' ');for i:=1 to 72 do write('-');writeln;write('',' num':4,' ','name':9,' ','age':8,' ','sex':5,' ','math':6,' ','phy':9,' ','eng':8,' ');writeln('ave':6,' ');write(' ');for i:=1 to 72 do write('-');writeln;for j:=1 to m do beginwith stu[j] dobeginwrite('',num:7,' ',name:8,' ',age:8,' ',sex:5,' ');for i:=1 to n do write(s[i]:7:1,' ');write(ave:10:1,' ');writeln;end;write(' ');for i:=1 to 72 do write('-');writeln;end;end;beginreadin(stu);ave(stu);k:=0;while k<>5 dobeginwriteln('1.readin 2.finds 3.del 4.tj 5.exit');read(k);readln;while(k<>1)and(k<>2)and(k<>3)and(k<>4)and(k<>5)dobeginwriteln(' mistake,please again');read(k)end;case k of1: begin px(stu);head1(stu)end;2: begin find(stu);head(ct)end;3: begin find(stu);del(stu);px(stu);head1(stu)end;4: begin tj(stu);end;5: writeln('exit!');end;end;end..2.program shadow;var a,b,c,d,e:integer;right:boolean;procedure s1;beginwriteln('right!');right:=trueend;procedure s2;beginwriteln('wrong!');right:=falseend;procedure s3(x,y:integer);var h:integer;beginwrite(x,'+',y,'=');readln(h);if h=x+y then s1else s2 end;procedure s4(x,y:integer);var h,w:integer;beginif x 上機(jī)操作練習(xí)題 1.某數(shù)組有20個(gè)元素,其值為隨機(jī)產(chǎn)生的兩位整數(shù)?,F(xiàn)要求將前10個(gè)元素與后10個(gè)元素對(duì)換。即第1個(gè)元素與第20個(gè)元素互換,第2個(gè)數(shù)與第19個(gè)元素互換,…,第10個(gè)元素與第11個(gè)元素互換。在窗體上輸出數(shù)組原來各元素的值與對(duì)換后各元素的值。 Option explicit Dim a(1 to 20)as integer, I as integer, j as integer, t as integer Private Sub Form_Load()Show Print “原始數(shù)組是:” Randomize For i = 1 To 20 a(i)= Int(Rnd * 90)+ 10 Print a(i);If i Mod 10 = 0 Then Print Next i Print Print “現(xiàn)在數(shù)組是:” For i = 1 To 10 j = 211 a(k)= a(k + 1) Next k ReDim Preserve a(UBound(a)1 End If i = i + 1 Loop While(i <= UBound(a))If flag = False Then MsgBox n & “不在該數(shù)組中” Else Print “刪除” & n & “后的數(shù)組是:” For i = 0 To UBound(a)Print a(i);Next i End If End Sub 3.?dāng)?shù)組a中存放著升序排列的數(shù)據(jù),使用array賦值,將inputbox輸入的新數(shù)插入到數(shù)組中,插入后數(shù)組仍有序。 注意:要求利用動(dòng)態(tài)數(shù)組,能夠?qū)崿F(xiàn)多次插入 Private Sub Form_Load()Show n = 8: ReDim a(n)a = Array(5, 15, 23, 52, 68, 88, 90, 99)n = n + 1: ReDim Preserve a(n)m = InputBox(“請(qǐng)輸入要插入的數(shù)據(jù):”)For i = 1 To n1)Next k a(k)= m For i = 1 To n Print a(i);Next i Print End Sub 4.6個(gè)評(píng)委為4位歌手打分,分?jǐn)?shù)介于1-100之間。去掉一個(gè)最高分,一個(gè)最低分,求出每位選手的最后得分。將4位歌手得分從高到低排列輸出,同時(shí)輸出該選手的編號(hào)。 如: 歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分 / 19 Option Base 1 Private Type geshou xuhao As String fenshu(6)As Integer score As Integer pingjun As Integer End Type Dim singer(1 To 4)As geshou Private Sub Command1_Click()For i = 1 To 4 For j = 1 To 6 singer(i).fenshu(j)= Int(Rnd * 100) singer(i).xuhao = “歌手” & i Next Next Call paixu End Sub Private Sub paixu()Dim p As geshou For i = 1 To 4 For j = 1 To 5 For k = j To 6 If singer(i).fenshu(j)> singer(i).fenshu(k)Then t = singer(i).fenshu(j) singer(i).fenshu(j)= singer(i).fenshu(k) singer(i).fenshu(k)= t End If Next Next Next For i = 1 To 4 For j = 2 To 5 singer(i).score = singer(i).score + singer(i).fenshu(j)Next singer(i).pingjun = singer(i).score / 4 Next For i = 1 To 3 For j = i To 4 If singer(i).score < singer(j).score Then p = singer(i): singer(i)= singer(j): singer(j)= p End If Next / 19 Next For i = 1 To 4 Print singer(i).xuhao & “得分:” & singer(i).pingjun Next End Sub Private Sub Form_Load()End Sub 10個(gè)評(píng)委給10個(gè)選手打分 Private Sub Form_Load()Show n = UBound(b)For i = 1 To 10 For j = 1 To 10 a(i, j)= Val(InputBox(“請(qǐng)第” & j & “位評(píng)委給第” & i & “位選手打分:”))Next j Next i For i = 1 To 10 max = a(i, 1): sum = 0 min = a(i, 1): ave = 0 For j = 1 To 10 If a(i, j)> max Then max = a(i, j) If a(i, j)< min Then min = a(i, j) sum = sum + a(i, j) Next j ave =(summin)/(n1 For j = i + 1 To n If b(i)< b(j)Then t = b(i): b(i)= b(j): b(j)= t End If Next j Next i Print “選手的得分由高到低為:” For i = 1 To 10 Print b(i);Next i End Sub 5.編寫函數(shù)求一元二次方程ax2+bx+c=0的解。 注意:要求考慮方程有兩相等實(shí)根、兩不等實(shí)根和兩個(gè)虛根的情況。Dim a As Single, b As Single, c As Single Dim s As Single a = InputBox(“請(qǐng)輸入a”) / 19 b = InputBox(“請(qǐng)輸入b”)c = InputBox(“請(qǐng)輸入c”)s = b ^ 2Sqr(s))/ 2 * a End If End Sub 6.任意輸入一組字符,統(tǒng)計(jì)出大寫字母多少個(gè),小寫字母多少個(gè),數(shù)字多少個(gè)?要求用過程實(shí)現(xiàn)。 Call tongji(a, n, m, o)Print “數(shù)字:” & n & Chr(13)& “小寫:” & m & Chr(13)& “大寫:” & o End Sub Private Sub tongji(a As String, n As Integer, m As Integer, p As Integer)For i = 1 To Len(a)If Asc(Mid(a, i, 1))> 47 And Asc(Mid(a, i, 1))< 58 Then n = n + 1 ElseIf Asc(Mid(a, i, 1))> 96 And Asc(Mid(a, i, 1))< 123 Then m = m + 1 ElseIf Asc(Mid(a, i, 1))> 64 And Asc(Mid(a, i, 1))< 91 Then p = p + 1 End If Next End Sub 7.隨機(jī)產(chǎn)生一個(gè)5*5的矩陣,將主對(duì)角線和次對(duì)角線元素都置為1,并求出矩陣的四周元素之和,顯示在列表框中。 Option Base 1 Private Sub Form_Load()Dim a(5, 5)As Integer Dim s As Integer For i = 1 To 5 For j = 1 To 5 If i = j Or i = 6Asc(Mid(s1, i, 1))+ 64)ElseIf Asc(Mid(s1, i, 1))< 123 And Asc(Mid(s1, i, 1))> 96 Then convert = convert & Chr(1235: g = e For j = 1 To n If j > i Then a(i, j)= 0 Else If i = j Then a(i, j)= 1 Else a(i, j)= a(i1, ji + 1);String(2 *(i1)/ 2 To 1 Step(-1) c = c + 1 s = Chr(64 + ii + c + 1);String(2 *(j1)/ 2 Else x = x / 2 End If i = i + 1 Loop ReDim Preserve a(UBound(a))If y < 0 Then For i = 1 To UBound(a)convert = convert & a(i)Next convert = “-” & convert Else For i = 1 To UBound(a) / 19 convert = convert & a(i)Next End If End Function Private Sub Command1_Click()Dim y As Integer Text1.Text = “" y = InputBox(”請(qǐng)輸入十進(jìn)制數(shù)字“)Text1.Text = convert(y) End Sub Private Sub Form_Load() End Sub 14.輸入一個(gè)整數(shù)N,產(chǎn)生N個(gè)隨機(jī)數(shù)(范圍1—10*N),然后采用任何2種算法實(shí)現(xiàn)由小到大的排序。將排序前后的數(shù)據(jù)顯示出來。 Option Base 1 Private Sub Command1_Click()Dim a()As Integer, n As Integer n = InputBox(”請(qǐng)輸入數(shù)列項(xiàng)數(shù)“)ReDim a(n)For i = 1 To n a(i)= Int(Rnd * 10 * n + 1) Print a(i);Next Print ReDim Preserve a(n)For i = 1 To n1 For j = 1 To n2)+ fact(n2 s = s1 + s2: t = s2: s2 = s: s1 = t Next End Function Private Sub Command2_Click()n = InputBox(”請(qǐng)輸入n“)Print s(n)End Sub 17.編寫2個(gè)函數(shù),分別采用遞歸法和遞推法求斐波納契數(shù)列的第n個(gè)月的兔子數(shù),n使用inputbox輸入,調(diào)用函數(shù)的結(jié)果在窗體上顯示。Private Sub Command1_Click()List1.Clear Dim i As Integer For i = Val(Text1.Text)To Val(Text2.Text)If isprime(i)= True Then List1.AddItem(i) c = c + 1 If i Mod 10 = 9 Then / 19 List1.Selected(c1 If n Mod i = 0 Then isprime = False Exit For End If Next End Function 18 Dim sum As Long Private Sub Command1_Click() Dim i As Integer, j As Integer, a(40)As Long a(1)= 1 a(2)= 1 For i = 3 To 40 a(i)= a(i2) Next i sum = 0 For j = 1 To 40 sum = sum + a(j) Next j End Sub Private Sub Command2_Click() Open ”out18.txt“ For Output As #1 Print #1, ”數(shù)列1,1,2,3,5,8…的前四十項(xiàng)的之和是:“ Print #1, sum Close #1 End Sub 1.百錢買百雞 Option Explicit Private Sub Command1_Click()Dim a As Integer, b As Integer For a = 1 To 34 For b = 1 To 20 If 3 * a + 5 * b +(100b)/ 3 = 100 Then / 19 Print a; Print b; Print 100b End If Next b Next a End Sub 2.分錢作業(yè) Private Sub Command1_Click()Dim a As Single,b as single,c as single a = Text1.Text b = Fix(a / 100)Print ”100元:“;Print b c = ab * 50 b = Fix(c / 20)Print ”20元:“;Print b c = c0.05 * b b = Fix((c + 0.005)/ 0.02)Print ”0.02元:“;Print b c = c1 If a(i)= a(j)Then GoTo aaa End If Next j Next i For i = 1 To 10 Print a(i);Next i Print End Sub Private Sub Command2_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9 For j = 1 + i To 10 If a(i)> a(j)Then t = a(j) a(j)= a(i) a(i)= t End If Next j Next i For i = 1 To 10 Print a(i);Next i Print End Sub Private Sub Command3_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9 For j = 1 To 10c)> 10 ^(-5)i =(a + b)/ 2 If i ^ 2c = 0 Then Exit Do Else a = i End If Loop MsgBox(i)End Sub 7.閏年 Option Explicit Private Sub 計(jì)算_Click()Dim i As Integer i = InputBox(”請(qǐng)輸入一個(gè)年份“)If i Mod 4 = 0 And i Mod 400 = 0 Then If i Mod 100 <> 0 Then MsgBox ”NOT“ Else MsgBox ”YES“ End If Else MsgBox ”NOT“ End If End Sub 8.三角 Option Explicit Private Sub Command1_Click() / 19 Dim a As Single Dim b As Single Dim c As Single Dim p As Single Dim s As Single a = Text1.Text b = Text2.Text c = Text3.Text p =(a + b + c)/ 2 s = Sqr((pb)* p +(p1 If n Mod i = 0 Then MsgBox ”NOT“ Exit For End If Next i If i = n Then MsgBox ”YES“ End If End Sub Private Sub Command2_Click() Dim a As Boolean, n As Double, i As Double a = False n = InputBox(”請(qǐng)輸入一個(gè)數(shù):“)For i = 2 To n-1 If n Mod i = 0 Then a = True Exit For End If Next i If a = True Then / 19 MsgBox ”NOT“ Else MsgBox ”YES“ End If End Sub Private Sub Command3_Click()Dim n As Double, i As Double n = InputBox(”請(qǐng)輸入一個(gè)數(shù):“)i = 2 Do While i < n If n Mod i = 0 Then MsgBox ”NOT“ Exit Do End If i = i + 1 Loop If i = n Then MsgBox ”YES“ End If End Sub Private Sub Command4_Click()Dim n As Double, i As Double, sushu As Boolean n = InputBox(”請(qǐng)輸入一個(gè)數(shù):“)i = 2 sushu = True Do While i < n And sushu = True If n Mod i = 0 Then sushu = False End If i = i + 1 Loop If sushu = True Then MsgBox ”YES“ Else MsgBox ”NOT" End If End Sub / 19第五篇:VB上機(jī)試題及答案