VB循环结构程序设计答案.docx
《VB循环结构程序设计答案.docx》由会员分享,可在线阅读,更多相关《VB循环结构程序设计答案.docx(27页珍藏版)》请在冰点文库上搜索。
![VB循环结构程序设计答案.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/77709915-7617-49e9-b0d4-009b49ece234/77709915-7617-49e9-b0d4-009b49ece2341.gif)
VB循环结构程序设计答案
实验4循环结构程序设计
2014年月日
姓名:
金梦仙
学号:
136330862
班级:
法政2班
短号:
658399
一、实验目的:
1.掌握FOR语句的使用。
2.掌握DO语句各种形式的使用。
3.掌握如何控制循环条件,防止死循环或不循环。
4.掌握滚动条、进度条和定时器控件的使用。
二、实验内容:
请在每题窗体的合适位置写上你的姓名和学号(以后所有实验均有此要求)
1.完成实践教材实验4“三、实验内容”的题。
(最前面两题做在实验3中)
2.进入10.22.98.189\edu课程网站,并将此实验报告和代码文件一起打包压缩交到课程作业相应处,请务必在作业有效期内上交。
三、实验步骤及结果:
(实验结果截图,代码拷贝过来。
)
1容易题
(1)阶乘和
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,n,s,aAsInteger
n=Val(TextBox1.Text)
s=0求阶乘和!
!
!
!
a=1
Fori=1Ton
a=a*i
s=s+a
Next
Label2.Text="1!
+2!
+3!
+…+"&n&"!
="
TextBox2.Text=s
EndSub
EndClass
(2)奇数偶数之和
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimm,n,i,j,k,tAsInteger
IfIsNumeric(TextBox1.Text)AndIsNumeric(TextBox2.Text)Then
m=Val(TextBox1.Text)
n=Val(TextBox2.Text)
Ifm>nThent=m:
m=n:
n=t
Fori=mTon
IfiMod2=0Then
j=j+i
Else
k=k+i
EndIf
Next
Label3.Text="偶数的和为"&j
Label4.Text="奇数的和为"&k
Else
MsgBox("请输入合法的数据")
EndIf
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
TextBox1.Text=""
TextBox2.Text=""
Label3.Text=""
Label4.Text=""
EndSub
EndClass
3.产生66
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Randomize()
Label1.Text=""
Dimi,jAsInteger
DoWhilei<>66
j=j+15个一行
i=Int(Rnd()*(80-60+1)+60)
Label1.Text=Label1.Text&i&Space(3)
IfjMod5=0ThenLabel1.Text&=vbCrLf换行
Loop
Label1.Text&=vbCrLf&"产生"
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
End
EndSub
EndClass
(4)能被5整除的数
代码
PublicClassForm1
PrivateSubTextBox2_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox2.TextChanged
Dimm,n,i,jAsInteger
n=Val(TextBox1.Text)
m=Val(TextBox2.Text)
Fori=nTom
j=j+1
IfiMod5=0Then
TextBox3.Text=TextBox3.Text&i&Space(3)
IfjMod4=0ThenTextBox3.Text&=vbCrLf4个换一行
EndIf
Next
EndSub
EndClass
(5)计算π的近似值
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimn,t,sAsDouble
s=2
Forn=1ToVal(TextBox1.Text)
t=(2*n)^2/(2*n-1)/(2*n+1)
s*=t
Next
Label2.Text="π的近似值为"&s
EndSub
EndClass
(6)。
1
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger
Dims1AsString
Fori=1To10
s1=StrDup(2*i-1,"☆")
Label1.Text&=Space(20-2*i)&s1&vbCrLf☆占两字节
Next
EndSub
EndClass
6
(2)
代码
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
DimiAsInteger,s,bAsString
Fori=1To10
s=Chr(Asc("A")+i-1)
b=StrDup(2*i-1,s)
Label1.Text&=Space(20-i)&b&vbCrLf
Next
EndSub
EndClass
中等题
(1)
代码
PublicClassForm1
PrivateSubTextBox1_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
Dimx,iAsInteger,mAsDouble,flagAsBoolean
i=3
flag=True
x=Val(TextBox1.Text)
IfAsc(e.KeyChar)=13Then
IfxMod2=0Then
Ifx=2Then
TextBox2.Text=x&"是素数"
Else
TextBox2.Text=x&"不是素数"
EndIf
Else
m=Math.Sqrt(x)
DoWhilei<=Fix(m)
IfxModi=0Thenflag=False
i=i+2
Loop
IfflagThen
TextBox2.Text=x&"是素数"
Else
TextBox2.Text=x&"不是素数"
EndIf
EndIf
EndIf
EndSub
EndClass
中等题
(2)
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,min,max,xAsInteger,avgAsSingle
max=1
min=100
Fori=1To10
Randomize()
x=Int(Rnd()*(100-1+1)+1)
Ifx>maxThenmax=x
Ifxavg=avg+x
Label1.Text&=x&Space(3)
Next
Label2.Text="最大值"&Space(5)&"最小值"&Space(5)&"平均值"
Label3.Text=max&Space(8)&min&Space(8)&avg/10
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
End
EndSub
EndClass
中等题(3)
代码
PublicClassForm1
PrivateSubTextBox1_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
IfAsc(e.KeyChar)=13Then
Dimi,j,nAsInteger
n=Val(TextBox1.Text)
Fori=1Ton
Label2.Text&=Space(i)
Forj=1To(2*n-2*i+1)
Label2.Text&=i
Next
Label2.Text&=vbCrLf
Next
EndIf
EndSub
EndClass
中等题(4)
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,m,k,NAsInteger,tagAsBoolean
N=Val(TextBox1.Text)
TextBox2.Text="2~"&TextBox1.Text&"之间的素数有:
"&vbCrLf
Form=2ToN
tag=True
Fori=2To(m-1)
If(mModi)=0Then
tag=False
ExitFor
EndIf
Next
IftagThen
TextBox2.Text&=m&Space
(2)
k=k+1
IfkMod8=0ThenTextBox2.Text&=vbCrLf
EndIf
Next
EndSub
EndClass
中等题(5)
代码
PublicClassForm1
Dimt%
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
ProgressBar1.Value=ProgressBar1.Maximum
EndSub
PrivateSubTextBox1_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
IfAsc(e.KeyChar)=13Then
ProgressBar1.Maximum=Val(TextBox1.Text)*60
t=Val(TextBox1.Text)*60
TextBox1.ReadOnly=True
timer1.enabled=True
EndIf
EndSub
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
t=t-1
TextBox1.Text=t\60&":
"&tMod60
ProgressBar1.Value=t
Ift=0Then
Timer1.Enabled=False
TextBox1.ReadOnly=False
EndIf
EndSub
EndClass
3难题1
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Hscrollbar1.minimum=10
Hscrollbar1.maximum=PictureBox1.Width+9
Vscrollbar1.minimum=10
Vscrollbar1.maximum=PictureBox1.Height+9
EndSub
PrivateSubHScrollBar1_Scroll(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.ScrollEventArgs)HandlesHScrollBar1.Scroll
PictureBox1.Width=HScrollBar1.Value
EndSub
PrivateSubVScrollBar1_Scroll(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.ScrollEventArgs)HandlesVScrollBar1.Scroll
PictureBox1.Height=VScrollBar1.Value
EndSub
PrivateSubPictureBox1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesPictureBox1.Click
DimpicturepathAsString
StaticiAsInteger=0
i=i+1
Ifi>5Then
i=1
EndIf
picturepath="D:
\picture\p"&i&".jpg"
PictureBox1.Image=Image.FromFile(picturepath)‘路径
EndSub
EndClass
难题2。
1
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger
Dims1,s2AsString
Fori=1To11
Ifi>=1Andi<=5Then
s1=StrDup(17-3*i,"☆")
Label1.Text&=Space(3*(i-1))&"★"&s1&"★"&vbCrLf
ElseIfi=6Then
Label1.Text&=Space(15)&"☆"&vbCrLf
Else
s2=StrDup(2+(i-7)*3,"★")
Label1.Text&=Space((11-i)*3)&"☆"&s2&"☆"&vbCrLf
EndIf
Next
EndSub
EndClass
难题2.2
代码
ublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Dims1,x,jAsInteger
StaticiAsInteger
Fori=1To13
s1=Asc("A")+i-1
Label1.Text&=Space(i)
Forj=s1To77
Label1.Text&=Chr(j)
Next
Label1.Text&="*"
Forx=78To(91-i)
Label1.Text&=Chr(x)
Next
Label1.Text&=vbCrLf
Nexti
Label1.Text&=Space(14)&"*"
EndSub
EndClass
-------------------------------------------------------------------------------------------------------
四、实验心得:
1.求阶乘和
n=Val(TextBox1.Text)
s=0求阶乘和!
!
!
!
a=1
Fori=1Ton
a=a*I倒着的阶层!
!
!
s=s+a
2/5个一行
Dimi,jAsInteger
DoWhilei<>66
j=j+15个一行
i=Int(Rnd()*(80-60+1)+60)
Label1.Text=Label1.Text&i&Space(3)
IfjMod5=0ThenLabel1.Text&=vbCrLf换行
Loop
Label1.Text&=vbCrLf&"产生"
3.
Fori=1To10
s1=StrDup(2*i-1,"☆")
Label1.Text&=Space(20-2*i)&s1&vbCrLf☆占两字节算前面的空格
4.
Chr(Asc("A")+i-1)
asc(字符):
给出字符的ASCII码值,十进制数
chr(数值):
返回以该数值为ASCII码的字符
5.
代码
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,min,max,xAsInteger,avgAsSingle
max=1
min=100
Fori=1To10
Randomize()
x=Int(Rnd()*(100-1+1)+1)
Ifx>maxThenmax=x
Ifxavg=avg+x
Label1.Text&=x&Space(3)
Next
Label2.Text="最大值"&Space(5)&"最小值"&Space(5)&"平均值"
Label3.Text=max&Space(8)&min&Space(8)&avg/10
EndSub
EndClass
5.分钟----秒
PublicClassForm1
Dimtasinteger
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
ProgressBar1.Value=ProgressBar1.Maximum
EndSub
PrivateSubTextBox1_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
IfAsc(e.KeyChar)=13