18个VB经典例题文档格式.docx
《18个VB经典例题文档格式.docx》由会员分享,可在线阅读,更多相关《18个VB经典例题文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
产生60名学生的分数
x=Rnd*101'
产生0-100的分数
Printx;
Ifx>
=90Then
a=a+1
ElseIfx>
=80Then
b=b+1
=70Then
c=c+1
=60Then
d=d+1
=50Then
e=e+1
=40Then
f=f+1
=30Then
g=g+1
=20Then
h=h+1
=10Then
i=i+1
j=j+1
EndIf
Nextm
Printa,b,c,d,e,f,g,h,i,j
3、我国有13亿人口,按照人口年增长0.8%计算,多少年以后我国人口超过26亿。
DimxAsDouble'
人数一定要定义成双精度的
DimnAsInteger
x=1300000000
n=0
DoWhilex<
=2600000000#
x=x*1.008
n=n+1
Loop
Printn;
"
年以后,我国人口将超过26亿"
4、编写一个程序求一元二次方程的根,要求对输入系数的合法性进行验证,并规范输出结果(保留两位小数)。
(上机指导P44)
Dima!
b!
c!
d!
x1!
x2!
a=Text1.Text
b=Text2.Text
c=Text3.Text
d=b*b-4*a*c
Ifa=0Then
MsgBox"
a不能为0"
'
判断是否能构成一元二次方程
ElseIfd>
=0Then
x1=(-b+Sqr(d))/(2*a)'
求方程的两个根
x2=(b+Sqr(d))/(2*a)
x1=Format(x1,"
.##"
)'
对根规范化输出
x2=Format(x2,"
)
Printx1,x2
5、某次歌手大奖赛,共有10名选手,有10名评委打分。
要求评委给10位选手打分,去掉一个最高分,去掉一个最低分,求出该选手的平均分。
DimiAsInteger
DimjAsInteger
DimmaxAsSingle,minAsSingle,sumAsSingle,averAsSingle
Fori=1To10'
十个选手的成绩
max=0
min=100
sum=0
Forj=1To10'
十个评委的分数
maxThenmax=x
Ifx<
minThenmin=x
sum=sum+x
Nextj
aver=(sum-max-min)/8
Printaver;
Nexti
6、求1到100以内的素数。
DimiAsInteger,jAsInteger,primeAsBoolean
Fori=1To100
prime=True
Forj=2ToSqr(i)'
判断一个数是否是素数
IfiModj=0Then
prime=False
IfprimeThen'
如果prime=True则i是素数
Printi&
是素数"
不是素数"
如果prime=False则i不是素数
7、求出100以内的所有勾股数(勾股数为a2+b2=c2,c为自然数,且a<
>
b)
DimaAsInteger,bAsInteger,cAsInteger
Fora=1To100
Forb=1To100
Forc=1To100
Ifc*c=a*a+b*bAnda<
bThen
Printa;
b;
c;
Print
Nextc
Nextb
Nexta
8、把输入的字符串逆序输出。
DimstrAsString,strReAsString
str=Text1.Text'
原字符串
Fori=1ToLen(str)
strRe=Mid(str,i,1)&
strRe'
字符串逆序
Nexti
Text2.Text=strRe'
逆序后的字符串
9、随机产生0-100之间的60名学生的数学分数,分别统计分数在
(用数组实现)
DimiAsInteger,s(1To10)AsInteger,mark(1To60)AsInteger,
Fori=1To60
mark(i)=int(Rnd*101)'
随机产生0-100之间的分数
Printmark(i);
输出60个分数
SelectCasemark(i)
CaseIs<
10
s
(1)=s
(1)+1
20
s
(2)=s
(2)+1
30
s(3)=s(3)+1
40
s(4)=s(4)+1
50
s(5)=s(5)+1
60
s(6)=s(6)+1
70
s(7)=s(7)+1
80
s(8)=s(8)+1
90
s(9)=s(9)+1
100
s(10)=s(10)+1
EndSelect
Print'
换行
Fori=1To10
Prints(i);
输出各个分数段的人数
10、随机产生10个同学的成绩
随机整数存入数组,求出数组中的最高分,最低分。
DimiAsInteger,mark(10)AsInteger,minAsInteger,maxAsInteger
mark(i)=Int(Rnd*41+60)'
随机产生60-100之间的分数
输出分数
min=mark
(1)
max=mark
(1)
Fori=2To10
Ifmark(i)>
maxThenmax=mark(i)'
找出最大数
Ifmark(i)<
minThenmin=mark(i)'
找出最小数
Print"
min="
;
min;
max="
max
11、在上一题的基础上,采用动态数组随机生成N个同学的成绩
,求平均分,并统计高于平均分的人数。
Dimmark()AsInteger,iAsInteger,nAsInteger,averAsSingle
n=InputBox("
请输入学生人数"
ReDimmark(1Ton)'
重新定义数组
aver=0
Fori=1Ton
mark(i)=Int(Rnd*41+60)
aver=aver+mark(i)
ReDimPreservemark(1Ton+2)'
数组保留以前的数制不变
mark(n+1)=aver/n
mark
(2)=0
Ifmark(i)>
mark(n+1)Thenmark(n+2)=mark(n+2)+1
Printmark(i);
输出学生成绩
Printmark(n+1);
mark(n+2)'
输出平均分与高于平均分的人数
12、随机生成包含10个数组元素的有序数组,然后第一个与第六个进行交换,第二个与第七个进行交换。
。
,并把原数组以及交换后的数组分别在窗体上显示出来。
Dims(1To10)AsInteger
产生10个数
s(i)=Int(Rnd*101)
Prints(i);
输出交换前的数值
Print
Fori=1To5'
实现交换
t=s(i)
s(i)=s(5+i)
s(5+i)=t
输出交换后的数值
13、已知数组a=Array(1,4,8,5,10),b(6),通过数组a给数组b赋值;
用选择法按照升序对数组b排序,对排序后的数组插入元素6,使b数组有序;
删除元素5,并使数组元素个数减1。
OptionBase1
PrivateSubCommand1_Click()
Dimb(1To6)AsInteger,aAsVariant
a=Array(1,4,8,5,10)
用数组A给数组B赋值
b(i)=a(i)
Printb(i);
输出数组B的前5个元素
Printb(6);
输出数组B最后一个元素
用选择法对数组B升序排序
Min=i
Forj=i+1To6
Ifb(j)<
b(Min)ThenMi