VB课后答案.docx
《VB课后答案.docx》由会员分享,可在线阅读,更多相关《VB课后答案.docx(13页珍藏版)》请在冰豆网上搜索。
VB课后答案
1.通过文本框TextBook1舒服一个实数,单击计算按钮,在TextBook2-6中分别输出该数的相反数,平方,绝对值平方根,立方以及绝对值的立方根。
需要在文本框前添加注释文本框内的数据。
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
EndSub
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimxAsSingle
x=TextBox1.Text
TextBox2.Text=-x
TextBox3.Text=x^2
TextBox4.Text=System.Math.Sqrt(System.Math.Abs(x))
TextBox5.Text=x^3
TextBox6.Text=(System.Math.Abs(x))^(1/3)
EndSub
EndClass
2.使用文本框Textbook1和Textbook2分别输入两个数,给变量X和Y赋值,单击交换按钮变换按钮,交换extbook1和Textbook2中的内容。
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimx,y,tAsInteger
x=TextBox1.Text
y=TextBox2.Text
t=x
x=y
y=t
TextBox1.Text=x
TextBox2.Text=y
EndSub
EndClass
3.输入一元二次方程ax^2+bx+c=0的系数a.b.c计算并输出方程的两个根X1和X2。
创图界面如图所示
PrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Load
Dima,b,cAsInteger,x1AsSingle,x2AsSingle
a=TextBox1.Text
b=TextBox2.Text
c=TextBox3.Text
x1=(-b+(b^2-4*a*c)^(1/2))/(2*a)
x2=(-b-(b^2-4*a*c)^(1/2))/(2*a)
TextBox4.Text=x1
TextBox5.Text=x2
EndSub
EndClass
4使用输入对话框输入球的半径,计算。
然后在两个文本框中分别输入球的体积和表面积
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimr,s,vAsSingle
Constpi=3.14
r=InputBox("请输入球的半径")
Label1.Text="球的半径是"&r
s=4*pi*r^2
v=4/3*pi*r^3
TextBox1.Text=s
TextBox2.Text=v
EndSub
5.用输入对话框inputbox输入一个正整数,判断其能是否同时被3和17整除,如能则用标签输出xxx能同时被3和17整除,否则输出不能同时被3和17整除。
其中标签中的xxx应显示为实际输出数据。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimx%
x=InputBox("请输入一个正整数")
IfxMod3=0AndxMod17=0Then
Label1.Text=x&"能同时骸被3和17整除"
Else
Label1.Text=x&"不能同时骸被3和17整除"
EndIf
EndSub
3.编写程序,在文本框中输出三位数中的所有素数。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,mAsInteger,str1AsString,flagAsBoolean
str1=""
Form=101To999
flag=True
Fori=2Tom-1
IfmModi=0Then
flag=False
ExitFor
EndIf
Next
IfflagThenstr1=str1&m&vbCrLf
Next
TextBox1.Text=str1
EndSub
EndClass
5.求出2000-2100年之间的所有闰年,使用文本框输出闰年,并统计共有多少闰年。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimy,nAsInteger
Fory=2000To2100
If(yMod4=0AndyMod100<>0)OryMod400=0Then
TextBox1.Text=TextBox1.Text&y&vbCrLf
n=n+1
EndIf
Next
TextBox2.Text=n
EndSub
1.编写程序,计算并输出数列1*2,2*4,3*6,。
。
。
,n*2n。
。
。
前N项中偶数项的和。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger,nAsInteger
DimsAsSingle
n=InputBox("请输入n")
s=0
Fori=2TonStep2
s=s+i*2*i
Next
TextBox1.Text=s
EndSub
11.找出并输出所有三位数中,能同时被5和7整除。
切个位十位百位的数码之和等于13的数据。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,a,b,cAsInteger
Fori=100To999
a=i\100
b=(i\10)Mod10
c=iMod10
IfiMod5=0AndiMod7=0anda+b+c=13Then
TextBox1.Text=TextBox1.Text&i&vbCrLf
EndIf
Next
EndSub
EndClass
10.随机产生是个区间位于10-90之间的整数,计算其平均值,并输出大于均值的整数,统计其个数。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger,nAsInteger
DimsAsSingle
n=InputBox("请输入n")
s=0
Fori=2TonStep2
s=s+i*2*i
Next
TextBox1.Text=s
EndSub
2.百万白瓦问题。
有100匹马驼100快瓦,大马驼三块,小马托2块。
两个马驹驼一块,问大马小马马驹各有多少?
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimxAsInteger,yAsInteger,zAsInteger
Dimstr1AsString
str1=""
Forx=0To33
Fory=0To50
z=100-x-y
If3*x+2*y+z/2=100Then
str1=str1&"大马:
"&x&vbtab"小马:
"&y&"马驹v:
阰&z&vbCrLf
EndIf
Nexty
Nextx
Label1.Text=str1
EndSub
EndClass
3.通过文本框输入一串符号,以问号作为结束标志,单击命令按钮,要求分别统计字符串中所含字母和字符串的个数。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dims,letterAsString,n1,n2,iAsInteger
s=TextBox1.Text
i=1
Do
letter=Mid(s,i,1)
SelectCaseletter
Case"A"To"Z","a"To"z"
n1+=1
Case"0"To"9"
n2+=1
EndSelect
i+=1
LoopUntilletter="?
"
TextBox2.text=n1
TextBox3.Text=n2
EndSub
9.有一个数列,其前三项分别为1.2.3,从第四项开始,每项均为其前三项之和的1/2,问该数列从第几项开始,其数值超过1200
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger,f1,f2,f3,f4AsDouble
f1=1:
f2=2:
f3=3:
i=3
Do
f4=(f1+f2+f3)/2
f1=f2:
f2=f3:
f3=f4
i+=1
LoopUntilf4>1200
Debug.Print(i)
EndSub
EndClass
8.利用随机函数产生一个由15个10-90之间的奇数的随机整数,并显示在标签1中,单击明令按钮,将该数列中的数据从大到小的顺序排列,并显示在标签2中。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,tAsInteger,a(15)AsInteger,xAsInteger,sAsString
Randomize()
s=""
Do
x=Int(Rnd()*81)+10
IfxMod2<>0Then
i=i+1
a(i)=x
s=s&Str(a(i))
EndIf
LoopUntili=15
Label1.Text=s
Fori=1To14
Forj=i+1To15
Ifa(i)t=a(i):
a(i)=a(j):
a(j)=t
EndIf
Next
Next
s=""
Fori=1To15
s=s&Str(a(i))
Next
Label2.Text=s
EndSub
EndClass
4.利用随机函数产生20个1-100之间的随机整数,并存入一个数组中。
单击命令按钮将数组前10个素数和后10个素数互换。
要求将交换前后的数组元素分别显示到两个文本框中。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,tAsInteger,a(20)AsInteger,sAsString
Randomize()
s=""
Fori=1To20
a(i)=Int(Rnd()*100)+1
s=s&Str(a(i))&vbCrLf
Next
TextBox1.Text=s
Fori=1To10
t=a(i):
a(i)=a(21-i):
a(21-i)=t
Next
s=""
Fori=1To20
s=s&Str(a(i))&vbCrLf
Next
TextBox2.Text=s
EndSub
EndClass
5.编写程序,建立一个有十个元素组成的一堆素组,然后从键盘输入一个数据,如果数组中有于输入数据相同的元素,则删除该元素,并使后面的元素依次前移。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(10)AsInteger,i,x,pAsInteger
Randomize()
Fori=1To10
a(i)=Int(Rnd()*100)
Label1.Text=Label1.Text&a(i)&""
Next
x=InputBox("enterx:
")
i=1
Do
Ifx=a(i)Then
Forj=iTo9
a(j)=a(j+1)
Nextj
p=p+1
EndIf
i=i+1
LoopUntili>10
Fori=1To10-p
Label2.Text=Label2.Text&a(i)&""
Nexti
EndSub
EndClass
7.用随机函数产生一个5*5的矩阵,数据范围为22-99之间的整数。
输出该矩阵并求该矩阵周边元素之和。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(4,4)AsInteger,strAsString
DimiAsInteger,jAsInteger,tAsInteger
Dims1AsInteger,s2AsInteger,sAsInteger
str=""
Fori=0To4
Forj=0To4
a(i,j)=Int(Rnd()*78)+22
str=str&a(i,j)
Ifj=4Then
str=str&vbCrLf
Else
str=str&vbTab
EndIf
Nextj
Nexti
TextBox1.Text=str
Fori=0To4
Forj=0To4
s1=s1+a(i,j)'或òifi=0ori=4orj=0orj=4thens1=s1+a(i,j)
Next
Next
Fori=1To3=0
Forj=1To3
s2=s2+a(i,j)'s=s1=a(0,0)-a(0,4)-a(4.0)-a(4,4)
Next
Next
s=s1-s2
TextBox2.Text=s
EndSub
EndClass
6.编写程序,实施矩阵转置,矩阵转置就是将一个M*N的矩阵的行与列互换,结果为M*N的矩阵。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(2,3),b(3,2)AsInteger,strAsString,i,jAsInteger
Fori=0To2
Forj=0To3
a(i,j)=Int(Rnd()*100)
str=str&a(i,j)
Ifj=3Then
str=str&vbCrLf
Else
str=str&vbTab
EndIf
Next
Next
TextBox1.Text=str
str=""
Fori=0To3
Forj=0To2
b(i,j)=a(j,i)
str=str&b(i,j)
Ifj=2Then
str=str&vbCrLf
Else
str=str&vbTab
EndIf
Next
Next
TextBox2.Text=str
EndSub
EndClass