VB经典代码.docx
- 文档编号:4590907
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:29
- 大小:48.46KB
VB经典代码.docx
《VB经典代码.docx》由会员分享,可在线阅读,更多相关《VB经典代码.docx(29页珍藏版)》请在冰豆网上搜索。
VB经典代码
33个vb经典代码
1.求三角形的面积代码:
OptionExplicit
Dima!
b!
c!
r,!
s!
PrivateSubCommand1_Click()
a=InputBox("a=","请输入a的数值")
b=InputBox("b=","请输入b的数值")
c=InputBox("c=","请输入c的数值")
Ifa+b>cAnda+c>bAndb+c>aAnda>0Andb>0Andc>0Then
r=1/2*(a+b+c)
s=Sqr(r*(r-a)*(r-b)*(r-c))
Label1.Caption="三角形的面积为"&s
Else
Label2.Caption="输入的数据不能构成三角形"
EndIf
EndSub
2.三个数排列代码:
OptionExplicit
Dimx!
y!
z!
t!
PrivateSubCommand1_Click()
x=InputBox("输入第一个数x")
y=InputBox("输入第二个数y")
z=InputBox("输入第三个数z")
Print"排序前";x&""&y&""&z
Ifx x=y: y=t Ify t=y: y=z: z=t Ifx t=x: x=y: y=t EndIf EndIf Print"排序后";z&""&y&""&x EndSub 3.计算一元二次方程的代码: OptionExplicit Dima! b! c! d! x1! x2! PrivateSubCommand1_Click() a=InputBox("a=","请输入一元二次方程的系数a") b=InputBox("b=","请输入一元二次方程的系数b") c=InputBox("c=","请输入一元二次方程的系数c") Ifa=0Then Print"因为a≠0,你输入的a=0,请重新输入系数a" EndIf d=b^2-4*a*c Ifd>=0Then x1=(-b+Sqr(d))/(2*a) x2=(-b-Sqr(d))/(2*a) Print"系数为"&a;b;c&"的一元二次方程的根分别为"&"x1="&x1&""&"x2="&x2 Else Print"此方程在实数范围内无解" EndIf EndSub 4.利用SelectCase语句输入年份计算属相代码: OptionExplicit PrivateSubCommand1_Click() DimiAsInteger,xAsString,YAsInteger Y=InputBox("输入你的出生年份Y") i=YMod12 SelectCasei CaseIs=0 x="猴" CaseIs=1 x="鸡" CaseIs=2 x="狗" CaseIs=3 x="猪" CaseIs=4 x="鼠" CaseIs=5 x="牛" CaseIs=6 x="虎" CaseIs=7 x="兔" CaseIs=8 x="龙" CaseIs=9 x="蛇" CaseIs=10 x="马" CaseIs=11 x="羊" EndSelect Printx EndSub 5.闰年两种判断方法的代码; 方法一: OptionExplicit DimyAsInteger PrivateSubCommand1_Click() y=InputBox("y=","输入年份") IfyMod4=0Then IfyMod100=0Then IfyMod400=0Then Print"这年为闰年" Else Print"这年为平年" EndIf Else Print"这年为闰年" EndIf Else Print"这年为平年" EndIf EndSub 方法二: PrivateSubCommand2_Click() y=InputBox("y=","输入年份") IfyMod4=0AndyMod100=0Then Print"这年为闰年" ElseIfyMod400=0Then Print"这年为闰年" Else Print"这年为平年" EndIf EndSub 6.三种方法计算下式 的代码: 法一: OptionExplicit Dimx! y! PrivateSubCommand1_Click() x=InputBox("x=","输入x的值") Ifx<>0Then Ifx>=1Orx<=-1Then y=(1+Sin(x)*Sin(x)-Sqr(x^2-1))/x Print"y=";Format(y,"0.0000") Else Print"所输入的x不在定义域" EndIf Else Print"除数不能为零" EndIf EndSub 法二: PrivateSubCommand2_Click() x=InputBox("x=","输入x的值") SelectCasex CaseIs=0 Print"除数不能为零" CaseIs>=1,Is<=-1 y=(1+Sin(x)*Sin(x)-Sqr(x^2-1))/x Print"y=";Format(y,"0.0000") CaseIs<>0,Is<1,Is>-1 Print"所输入的x不在定义域" EndSelect EndSub 法三: PrivateSubCommand3_Click() x=InputBox("x=","输入x的值") Ifx>=1Then y=(1+Sin(x)*Sin(x)-Sqr(x^2-1))/x Print"y=";Format(y,"0.0000") ElseIfx<1Andx>0Then Print"所输入的x不在定义域" ElseIfx=0Then Print"除数不能为零" ElseIfx>=-1Andx<0Then Print"所输入的x不在定义域" ElseIfx<=-1Then y=(1+Sin(x)*Sin(x)-Sqr(x^2-1))/x Print"y=";Format(y,"0.0000") EndIf EndSub 流程图: 伪代码: step1: 输入x的值; step2: 判断x是否为零; step3: 若x=0,输出“除数不能为零”;若x不为零,则继续判断x的绝对值是否大于1; step4: 若x的绝对值是否大于1,输出y的值;否则x的值不在函数的定义域里,结束。 7.利用For……Next循环计算1+2+3+4+……+n。 OptionExplicit Dimi%,j%,n% PrivateSubCommand1_Click() j=0 n=InputBox("输入的n值") Fori=1Ton j=j+i Nexti Printj EndSub 8.编写利用辗转相除法及辗转相减法计算公约数的代码 (1)辗转相减法 PrivateSubCommand10_Click() DimmAsLong,nAsLong,m1AsLong,n1AsLong,rAsLong,tAsLong m1=InputBox("输入m1","求最大公约数和最小公倍数") n1=InputBox("输入n1","求最大公约数和最小公倍数") m=m1 n=n1 Do Ifn>mThen t=m m=n n=t EndIf r=m-n Ifr=0ThenExitDo m=n n=r LoopUntilr=0 Printm1&","&n1&"的最大公约数是"&m Printm1&","&n1&"的最小公倍数是"&m1*n1/m EndSub (2)辗转相除法 PrivateSubCommand9_Click() Dimn%,m%,r%,m1%,n1% n1=InputBox("输入n") m1=InputBox("输入m") Ifm1>n1Then m=m1: n=n1 Else m=n1: n=m1 EndIf r=mModn DoWhiler<>0 m=n n=r r=mModn Loop Printm1;",";n1;"的最大公约数";n Printm1;",";n1;"最小公倍数";m1*n1/n EndSub 9.输出一列“*”,一行“*”。 PrivateSubCommand2_Click() Fori=1To8 Print"*" Nexti Print EndSub PrivateSubCommand3_Click() Fori=1To8 Print"*"; Nexti Print EndSub 10.一张若干大面积的纸厚0.1mm,将其对折一次厚0.2mm,再对折一次厚0.4mm,如果对折了40次,问厚度是多少? PrivateSubCommand4_Click() DimsAs! ss! n=InputBox("输入的n值") Fori=1Ton s=0.1*2^n ss=s*0.001 Nexti Print"ss="&Format(ss,"0.0000")&"米" EndSub 11.一个球自100m处高度自由落下,每次落地后反跳到原高度一半,然后再落下。 求它在第10次落地时,共经过多少m? 第10次反弹多高? PrivateSubCommand5_Click() Dimi%,s! h! h=50 s=100 i=2 DoUntili>10 s=s+h*2 h=h/2 i=i+1 Loop Print"十次落地经过的路程s="&s;"米","第十次落地反弹的高度h="&h;"米" EndSub 12.猴子吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半又多吃一个。 第二天双将剩下的吃了一半,又多吃一个,以后每天都吃前一天剩下的一半零一个。 到第十天只有一个桃子。 问第一天共摘了多少个桃子。 PrivateSubCommand6_Click() Dimi%,x1%,x2% x1=1 x2=0 i=1 DoUntili>9 x2=(x1+1)*2 x1=x2 i=i+1 Loop Print"总桃数为"&x2 EndSub 13.利用自然对数e的近似值,近似公式为: e=1+1/1! +1/2! +1/3! +…+1/n! +… (1)求其误差小于0.00001时的值; (2)计算到第10项。 (1)PrivateSubCommand7_Click() Dims! e! i% i=1 s=1 e=1 DoUntili>9 s=s/i e=e+s i=i+1 Loop Print"e="&e EndSub (2)PrivateSubCommand8_Click() Dimi%,t&,e! i=0 e=0 t=1 DoWhile1/t>0.00001 e=e+1/t i=i+1 t=t*i Loop Print"e=";e EndSub 14.以单重循环及三重循环找到100到999之间所有的水仙花数; 单重循环: OptionExplicit PrivateSubCommand1_Click() Dima%,b%,c%,i% Fori=100To999 a=iMod10: b=(iMod100)\10: c=i\100 Ifi=a^3+b^3+c^3Then Printi EndIf Nexti EndSub 三重循环: PrivateSubCommand2_Click() Dima%,b%,c% Fora=1To9 Forb=0To9 Forc=0To9 Ifa^3+b^3+c^3=a*100+b*10+cThen Printa*100+b*10+c EndIf Nextc Nextb Nexta EndSub 15.在百钱买百鸡的基础上,练习兑换零钱; OptionExplicit Dima%,b%,c%,d%,e%,f%,m! n% PrivateSubCommand1_Click() n=0 m=0 Fora=0To2 Forb=0To(100-50*a)/20 Forc=0To(100-50*a-20*b)\10 Ford=0To(100-50*a-20*b-10*c)\5 Fore=0To(100-50*a-20*b-10*c-5*d)\2 Forf=0To100-50*a-20*b-10*c-5*d-2*e Ifa*50+b*20+c*10+d*5+e*2+f=100Then n=n+1 EndIf m=m+1 Nextf Nexte Nextd Nextc Nextb Nexta Label1.Caption="总共有"&n&"种方法。 "&""&"共计算了"&m&"次。 " EndSub PrivateSubCommand2_Click() n=0 m=0 Fora=0To2 Forb=0To(100-50*a)/20 Forc=0To(100-50*a-20*b)\10 Ford=0To(100-50*a-20*b-10*c)\5 Fore=0To(100-50*a-20*b-10*c-5*d)\2 n=n+1 m=m+1 Nexte Nextd Nextc Nextb Nexta Label1.Caption="总共有"&n&"种方法。 "&""&"共计算了"&m&"次。 " EndSub 16输入一个数,判断该数是否为素数。 OptionExplicit PrivateSubCommand1_Click() Dimn! j! n=Val(Text1) j=2 DoWhilej<=Sqr(n)AndnModj<>0 j=j+1 Loop Ifj>Sqr(n)Then Printn;"是素数" Else Printn;"是合数" EndIf EndSub 17.求100~200之间所有的素数。 OptionExplicit Dimi%,j%,c% PrivateSubCommand1_Click() Fori=101To199Step2 Forj=2ToSqr(i) IfiModj=0ThenExitFor Next Ifj>Sqr(i)Then Printi; c=c+1 IfcMod5=0Then Print EndIf EndIf Next EndSub 18.输入一个偶数,验证该数符合哥德巴赫猜想。 OptionExplicit PrivateSubCommand1_Click() DimN%,N1%,N2%,I%,K1%,K2% N=Val(InputBox("输入大于6的偶数")) ForN1=3ToN\2Step2 K1=Int(Sqr(N1)) ForI=2ToK1'判断N1是否是素数 IfN1ModI=0ThenExitFor NextI IfI>K1Then'如果N1为素数,将N分解为N1+N2 N2=N-N1 K2=Int(Sqr(N2)) ForI=2ToK2'判断N2是否是素数 IfN2ModI=0ThenExitFor NextI IfI>K2Then'如果N2也为素数,则打印输出 PrintN&"="&N1&"+"&N2 EndIf EndIf NextN1 EndSub 19.验证100~200之间所有的偶数符合哥德巴赫猜想。 OptionExplicit PrivateSubCommand1_Click() DimiAsInteger DimjAsInteger DimxAsInteger DimyAsInteger DimzAsInteger k: x=Val(InputBox("请输入一个数")) Ifx<6AndxMod2<>0Then GoTok Else Printx Fory=2Tox/2 z=x-y Fori=2Toy-1 IfyModi=0ThenExitFor Nexti Ifi>y-1Then Forj=2Toz-1 IfzModj=0ThenExitFor Nextj Ifj>z-1Then Printy;"+";z EndIf EndIf Nexty EndIf EndSub 20.输出一个5阶的杨辉三角形 OptionExplicit DimA()AsInteger DimnAsInteger,i,j% PrivateSubCommand1_Click() ReDimA(6,6) Fori=1To6 Forj=1Toj Ifj=1Orj=iThen A(i,j)=1 Else A(i,j)=A(i-1,j-1)+A(i-1,j) EndIf Nextj,i Fori=1To6 Forj=1Toi-1 PrintTab(50-i*3+j*6);A(i,j);Spc (1); Nextj Print Nexti EndSub 21.输出下面的图案 C CH CHI CHIN CHINA OptionExplicit DimAAsString Dimi%,j% PrivateSubCommand1_Click() Forj=0To5 A=Mid("CHINA",1,i) PrintA i=j+1 Nextj Print EndSub 22.输出一个n矩阵等腰三角形,其外形如下 提示: 倒数第一行一个,倒数第二行3个,…… OptionExplicit Dimi! j! T$,x$ PrivateSubCommand1_Click() Fori=0To3 x="" Forj=1To(7-Abs(i)*2) x=x&"*" Next T=Space(Abs(i))&x&Space(Abs(i)) PrintT Next EndSub 23.先成一个10阶的一维随机数组,数组的每个元素值为[10,50],将这个数组用选择法及冒泡法二种排序方法排序,编写该代码。 OptionExplicit Dimk%,i%,j%,t%,m%,n% PrivateSubCommand1_Click() Dimx%(1To5,1To10) Form=1To5 Forn=1To10 Randomize x(m,n)=Int(Rnd*100+2000)'产生50个随机数 Picture3.PrintTab(6*n-4);x(m,n); Nextn Print Nextm EndSub PrivateSubCommand2_Click() Dimx%(1To10)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 经典 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)