个vb经典例题.docx
- 文档编号:18021891
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:16
- 大小:28.75KB
个vb经典例题.docx
《个vb经典例题.docx》由会员分享,可在线阅读,更多相关《个vb经典例题.docx(16页珍藏版)》请在冰豆网上搜索。
个vb经典例题
1、随机产生三个100-300之间的整数,判断这三个整数是否能构成三角形,如果可以,求三角形的面积。
DimxAsInteger,yAsInteger,zAsInteger
DimcAsSingle,sAsSingle
x=Int(Rnd*201+100)
y=Int(Rnd*201+100)
z=Int(Rnd*201+100)
Ifx+y>zAndx+z>yAndy+z>xThen
c=(x+y+z)/2
s=Sqr(c*(c-x)*(c-y)*(c-z))
Print"三角形面积是:
"&s
Else
Print"构不成三角形"
EndIf
2、随机产生0-100之间的60名学生的数学分数,分别统计分数在
、
、
、
、
、
、
、
、
、
、之间的学生人数。
Dima%,b%,c%,d%,e%,f%,g%,h%,i%,j%
DimxAsSingle
Form=1To60'产生60名学生的分数
x=Rnd*101'产生0-100的分数
Printx;
Ifx>=90Then
a=a+1
ElseIfx>=80Then
b=b+1
ElseIfx>=70Then
c=c+1
ElseIfx>=60Then
d=d+1
ElseIfx>=50Then
e=e+1
ElseIfx>=40Then
f=f+1
ElseIfx>=30Then
g=g+1
ElseIfx>=20Then
h=h+1
ElseIfx>=10Then
i=i+1
Else
j=j+1
EndIf
Nextm
Printa,b,c,d,e,f,g,h,i,j
3、我国有13亿人口,按照人口年增长0.8%计算,多少年以后我国人口超过26亿。
DimxAsDouble'人数一定要定义成双精度的
DimnAsInteger
n=0
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,".##")
EndIf
Printx1,x2
5、某次歌手大奖赛,共有10名选手,有10名评委打分。
要求评委给10位选手打分,去掉一个最高分,去掉一个最低分,求出该选手的平均分。
DimiAsInteger
DimjAsInteger
DimmaxAsSingle,minAsSingle,sumAsSingle,averAsSingle
Fori=1To10'十个选手的成绩
max=0
min=100
sum=0
Forj=1To10'十个评委的分数
x=Rnd*101'产生0-100的分数
Ifx>maxThenmax=x
Ifx 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 EndIf Nextj IfprimeThen'如果prime=True则i是素数 Printi&"是素数" Else Printi&"不是素数"'如果prime=False则i不是素数 EndIf Nexti 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 EndIf Nextc Nextb Nexta 8、把输入的字符串逆序输出。 DimstrAsString,strReAsString DimiAsInteger 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 CaseIs<20 s (2)=s (2)+1 CaseIs<30 s(3)=s(3)+1 CaseIs<40 s(4)=s(4)+1 CaseIs<50 s(5)=s(5)+1 CaseIs<60 s(6)=s(6)+1 CaseIs<70 s(7)=s(7)+1 CaseIs<80 s(8)=s(8)+1 CaseIs<90 s(9)=s(9)+1 CaseIs<100 s(10)=s(10)+1 EndSelect Nexti Print'换行 Fori=1To10 Prints(i);'输出各个分数段的人数 Nexti 10、随机产生10个同学的成绩 随机整数存入数组,求出数组中的最高分,最低分。 DimiAsInteger,mark(10)AsInteger,minAsInteger,maxAsInteger Fori=1To10 mark(i)=Int(Rnd*41+60)'随机产生60-100之间的分数 Printmark(i);'输出分数 Nexti min=mark (1) max=mark (1) Fori=2To10 Ifmark(i)>maxThenmax=mark(i)'找出最大数 Ifmark(i) Nexti Print'换行 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) Nexti ReDimPreservemark(1Ton+2)'数组保留以前的数制不变 mark(n+1)=aver/n mark (2)=0 Fori=1Ton Ifmark(i)>mark(n+1)Thenmark(n+2)=mark(n+2)+1 Printmark(i);'输出学生成绩 Nexti Printmark(n+1);mark(n+2)'输出平均分与高于平均分的人数 12、随机生成包含10个数组元素的有序数组,然后第一个与第六个进行交换,第二个与第七个进行交换。 。 。 。 。 。 ,并把原数组以及交换后的数组分别在窗体上显示出来。 Dims(1To10)AsInteger Fori=1To10'产生10个数 s(i)=Int(Rnd*101) Prints(i);'输出交换前的数值 Nexti Print Fori=1To5'实现交换 t=s(i) s(i)=s(5+i) s(5+i)=t Nexti Fori=1To10 Prints(i);'输出交换后的数值 Nexti 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) Fori=1To5'用数组A给数组B赋值 b(i)=a(i) Printb(i);'输出数组B的前5个元素 Nexti Printb(6);'输出数组B最后一个元素 Print Fori=1To5'用选择法对数组B升序排序 Min=i Forj=i+1To6 Ifb(j) Nextj t=b(i): b(i)=b(Min): b(Min)=t Nexti Fori=1To6'输出数组B的所有元素 Printb(i); Nexti Print '下面是对有序数组B插入元素6 Forj=2To6 If6b(j-1)Then'找出插入位置 Fori=1Toj-1'插入位置以前的元素向前移动一个位置 b(i)=b(i+1) Nexti b(j-1)=6'在准确的位置插入6 EndIf Nextj Fori=1To6'输出插入6以后的数组B的所有元素 Printb(i); Nexti Print Dimc()AsInteger'定义数组C是一个动态数组 ReDimc(1To6)AsInteger Fori=1To6 c(i)=b(i) Nexti '下面是删除元素5 Fori=1To6 Ifc(i)=5Then'如果数组C里面有5就进行删除 Forj=iTo5'把元素5后面的元素向前移动一个位置 c(j)=c(j+1) Nextj EndIf Nexti ReDimPreservec(5)'只保留数组C里面前面的5个元素,达到了删除目的 Fori=1To5 Printc(i);'输出删除5以后的数组元素 Nexti EndSub 14、编写一个无参数Sub过程Triangle,在窗体上输出用“*”组成的如下图所示的三角形图案。 '被调过程 PublicSubTriangle()'子过程 Print"*" Print"***" Print"*****" Print"*******" Print"*********" EndSub '主调过程 PrivateSubCommand1_Click() CallTriangle'调用子过程 EndSub 15、把上面的Triangle过程改造成带参数的过程,使之能输出任意行三角形图案,并尝试用两种方法调用。 '被调过程 PublicSubTriangle(nAsInteger) Fori=1Ton PrintTab(n-i);String(2*i-1,"*"); Nexti EndSub '主调过程 PrivateSubCommand1_Click() DimaAsInteger a=Val(InputBox("请输入a")) CallTriangle(a) EndSub 16、编写一个函数Prime,用于判断一个自然数是否为素数。 调用此函数输出3-100之间的所有的素数。 (提示: 函数Prime的类型使用布尔型) '被调函数 PublicFunctionPrime(mAsInteger,nAsInteger)AsBoolean DimiAsInteger,jAsInteger '判断m-n之间的所有素数 Fori=mTon Prime=True Forj=2ToSqr(i)'判断一个数是否是素数 IfiModj=0Then Prime=False EndIf Nextj IfPrimeThen'如果prime=True则i是素数 Printi&"是素数" Else Printi&"不是素数"'如果prime=False则i不是素数 EndIf Nexti EndFunction '主调过程 PrivateSubCommand1_Click() DimaAsInteger,bAsInteger DimcAsBoolean a=Val(InputBox("请输入a")) b=Val(InputBox("请输入b")) c=Prime(a,b) EndSub 17、编写函数,判断某数是否是“水仙花数”。 并用此函数输出100-999之间的所有的水仙花数、所谓的“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 '主调函数 PrivateSubCommand1_Click() DimaAsInteger,bAsInteger DimcAsBoolean a=Val(InputBox("请输入a")) b=Val(InputBox("请输入b")) c=shuixianhua(a,b) EndSub '被调函数 PublicFunctionshuixianhua(mAsInteger,nAsInteger)AsBoolean DimiAsInteger,jAsInteger,xAsInteger,yAsInteger,zAsInteger '判断m-n之间的所有水仙花数 Fori=mTon shuixianhua=False x=i\100'得到百分位的数 y=(i-x*100)\10'得到十位上的数 z=iMod10'得到各位上的数 Ifx^3+y^3+z^3=iThen shuixianhua=True EndIf IfshuixianhuaThen Printi&"是水仙花数" EndIf Nexti EndFunction 18、编写一个Find函数,能够查找用户输入的数是否在一个随机数组中,如果在数组中,则把它的位置显示出来。 PublicFunctionFind(nAsInteger,b()AsInteger)AsInteger Fori=LBound(b)ToUBound(b) Ifn=b(i)Then Find=i EndIf Nexti EndFunction PrivateSubCommand1_Click() Dima(1To10)AsInteger DimcAsInteger,dAsInteger c=Val(InputBox("请输入数字c")) Fori=1To10 a(i)=i Printa(i); Nexti d=Find(c,a()) Print Printd EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 经典 例题