('33个vb经典代码1.求三角形的面积代码:OptionExplicitDima!,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>0Thenr=1/2(a+b+c)s=Sqr(r(r-a)(r-b)(r-c))Label1.Caption="三角形的面积为"&sElseLabel2.Caption="输入的数据不能构成三角形"EndIfEndSub2.三个数排列代码:OptionExplicitDimx!,y!,z!,t!PrivateSubCommand1_Click()x=InputBox("输入第一个数x")第1页y=InputBox("输入第二个数y")z=InputBox("输入第三个数z")Print"排序前";x&""&y&""&zIfx=0Thenx1=(-b+Sqr(d))/(2a)x2=(-b-Sqr(d))/(2a)Print"系数为"&a;b;c&"的一元二次方程的根分别为"&"x1="&x1&""&"x2="&x2ElsePrint"此方程在实数范围内无解"EndIfEndSub4.利用SelectCase语句输入年份计算属相代码:OptionExplicitPrivateSubCommand1_Click()DimiAsInteger,xAsString,YAsIntegerY=InputBox("输入你的出生年份Y")i=YMod12SelectCaseiCaseIs=0x="猴"CaseIs=1x="鸡"CaseIs=2x="狗"CaseIs=3x="猪"第3页CaseIs=4x="鼠"CaseIs=5x="牛"CaseIs=6x="虎"CaseIs=7x="兔"CaseIs=8x="龙"CaseIs=9x="蛇"CaseIs=10x="马"CaseIs=11x="羊"EndSelectPrintxEndSub5.闰年两种判断方法的代码;方法一:OptionExplicitDimyAsIntegerPrivateSubCommand1_Click()第4页y=InputBox("y=","输入年份")IfyMod4=0ThenIfyMod100=0ThenIfyMod400=0ThenPrint"这年为闰年"ElsePrint"这年为平年"EndIfElsePrint"这年为闰年"EndIfElsePrint"这年为平年"EndIfEndSub方法二:PrivateSubCommand2_Click()y=InputBox("y=","输入年份")IfyMod4=0AndyMod100=0ThenPrint"这年为闰年"ElseIfyMod400=0ThenPrint"这年为闰年"ElsePrint"这年为平年"第5页EndIfEndSub6.三种方法计算下式的代码:法一:OptionExplicitDimx!,y!PrivateSubCommand1_Click()x=InputBox("x=","输入x的值")Ifx<>0ThenIfx>=1Orx<=-1Theny=(1+Sin(x)Sin(x)-Sqr(x^2-1))/xPrint"y=";Format(y,"0.0000")ElsePrint"所输入的x不在定义域"EndIfElsePrint"除数不能为零"EndIfEndSub法二:PrivateSubCommand2_Click()x=InputBox("x=","输入x的值")SelectCasexCaseIs=0Print"除数不能为零"CaseIs>=1,Is<=-1第6页y=(1+Sin(x)Sin(x)-Sqr(x^2-1))/xPrint"y=";Format(y,"0.0000")CaseIs<>0,Is<1,Is>-1Print"所输入的x不在定义域"EndSelectEndSub法三:PrivateSubCommand3_Click()x=InputBox("x=","输入x的值")Ifx>=1Theny=(1+Sin(x)Sin(x)-Sqr(x^2-1))/xPrint"y=";Format(y,"0.0000")ElseIfx<1Andx>0ThenPrint"所输入的x不在定义域"ElseIfx=0ThenPrint"除数不能为零"ElseIfx>=-1Andx<0ThenPrint"所输入的x不在定义域"ElseIfx<=-1Theny=(1+Sin(x)Sin(x)-Sqr(x^2-1))/xPrint"y=";Format(y,"0.0000")EndIfEndSub流程图:第7页伪代码:step1:输入x的值;step2:判断x是否为零;step3:若x=0,输出“除数不能为零”;若x不为零,则继续判断x的绝对值是否大于1;第8页X=0?是否为除数不能为零∣x≥1∣xxxy1sin122\uf02d\uf02d\uf02b\uf03dX的值不在定义域里输入x的值是是否否step4:若x的绝对值是否大于1,输出y的值;否则x的值不在函数的定义域里,结束。7.利用For……Next循环计算1+2+3+4+……+n。OptionExplicitDimi%,j%,n%PrivateSubCommand1_Click()j=0n=InputBox("输入的n值")Fori=1Tonj=j+iNextiPrintjEndSub8.编写利用辗转相除法及辗转相减法计算公约数的代码(1)辗转相减法PrivateSubCommand10_Click()DimmAsLong,nAsLong,m1AsLong,n1AsLong,rAsLong,tAsLongm1=InputBox("输入m1","求最大公约数和最小公倍数")n1=InputBox("输入n1","求最大公约数和最小公倍数")m=m1n=n1DoIfn>mThen第9页t=mm=nn=tEndIfr=m-nIfr=0ThenExitDom=nn=rLoopUntilr=0Printm1&","&n1&"的最大公约数是"&mPrintm1&","&n1&"的最小公倍数是"&m1n1/mEndSub(2)辗转相除法PrivateSubCommand9_Click()Dimn%,m%,r%,m1%,n1%n1=InputBox("输入n")m1=InputBox("输入m")Ifm1>n1Thenm=m1:n=n1Elsem=n1:n=m1EndIfr=mModnDoWhiler<>0m=nn=rr=mModn第10页LoopPrintm1;",";n1;"的最大公约数";nPrintm1;",";n1;"最小公倍数";m1n1/nEndSub9.输出一列“”,一行“”。PrivateSubCommand2_Click()Fori=1To8Print""NextiPrintEndSubPrivateSubCommand3_Click()Fori=1To8Print"";NextiPrintEndSub10.一张若干大面积的纸厚0.1mm,将其对折一次厚0.2mm,再对折一次厚0.4mm,如果对折了40次,问厚度是多少?PrivateSubCommand4_Click()DimsAs!,ss!n=InputBox("输入的n值")Fori=1Tons=0.12^nss=s0.001Nexti第11页Print"ss="&Format(ss,"0.0000")&"米"EndSub11.一个球自100m处高度自由落下,每次落地后反跳到原高度一半,然后再落下。求它在第10次落地时,共经过多少m?第10次反弹多高?PrivateSubCommand5_Click()Dimi%,s!,h!h=50s=100i=2DoUntili>10s=s+h2h=h/2i=i+1LoopPrint"十次落地经过的路程s="&s;"米","第十次落地反弹的高度h="&h;"米"EndSub12.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半又多吃一个。第二天双将剩下的吃了一半,又多吃一个,以后每天都吃前一天剩下的一半零一个。到第十天只有一个桃子。问第一天共摘了多少个桃子。PrivateSubCommand6_Click()Dimi%,x1%,x2%x1=1第12页x2=0i=1DoUntili>9x2=(x1+1)2x1=x2i=i+1LoopPrint"总桃数为"&x2EndSub13.利用自然对数e的近似值,近似公式为:e=1+1/1!+1/2!+1/3!+…+1/n!+…(1)求其误差小于0.00001时的值;(2)计算到第10项。(1)PrivateSubCommand7_Click()Dims!,e!,i%i=1s=1e=1DoUntili>9s=s/ie=e+si=i+1LoopPrint"e="&eEndSub(2)PrivateSubCommand8_Click()Dimi%,t&,e!第13页i=0e=0t=1DoWhile1/t>0.00001e=e+1/ti=i+1t=tiLoopPrint"e=";eEndSub14.以单重循环及三重循环找到100到999之间所有的水仙花数;单重循环:OptionExplicitPrivateSubCommand1_Click()Dima%,b%,c%,i%Fori=100To999a=iMod10:b=(iMod100)\\10:c=i\\100Ifi=a^3+b^3+c^3ThenPrintiEndIfNextiEndSub三重循环:PrivateSubCommand2_Click()Dima%,b%,c%Fora=1To9Forb=0To9Forc=0To9Ifa^3+b^3+c^3=a100+b10+cThenPrinta100+b10+cEndIfNextcNextbNextaEndSub15.在百钱买百鸡的基础上,练习兑换零钱;OptionExplicitDima%,b%,c%,d%,e%,f%,m!,n%PrivateSubCommand1_Click()第14页n=0m=0Fora=0To2Forb=0To(100-50a)/20Forc=0To(100-50a-20b)\\10Ford=0To(100-50a-20b-10c)\\5Fore=0To(100-50a-20b-10c-5d)\\2Forf=0To100-50a-20b-10c-5d-2eIfa50+b20+c10+d5+e2+f=100Thenn=n+1EndIfm=m+1NextfNexteNextdNextcNextbNextaLabel1.Caption="总共有"&n&"种方法。"&""&"共计算了"&m&"次。"EndSubPrivateSubCommand2_Click()n=0m=0Fora=0To2Forb=0To(100-50a)/20Forc=0To(100-50a-20b)\\10Ford=0To(100-50a-20b-10c)\\5Fore=0To(100-50a-20b-10c-5d)\\2n=n+1m=m+1NexteNextdNextcNextbNextaLabel1.Caption="总共有"&n&"种方法。"&""&"共计算了"&m&"次。"EndSub16输入一个数,判断该数是否为素数。OptionExplicitPrivateSubCommand1_Click()Dimn!,j!n=Val(Text1)第15页j=2DoWhilej<=Sqr(n)AndnModj<>0j=j+1LoopIfj>Sqr(n)ThenPrintn;"是素数"ElsePrintn;"是合数"EndIfEndSub17.求100~200之间所有的素数。OptionExplicitDimi%,j%,c%PrivateSubCommand1_Click()Fori=101To199Step2Forj=2ToSqr(i)IfiModj=0ThenExitForNextIfj>Sqr(i)ThenPrinti;c=c+1IfcMod5=0ThenPrintEndIfEndIfNextEndSub18.输入一个偶数,验证该数符合哥德巴赫猜想。OptionExplicitPrivateSubCommand1_Click()DimN%,N1%,N2%,I%,K1%,K2%N=Val(InputBox("输入大于6的偶数"))ForN1=3ToN\\2Step2K1=Int(Sqr(N1))ForI=2ToK1\'判断N1是否是素数IfN1ModI=0ThenExitForNextIIfI>K1Then\'如果N1为素数,将N分解为N1+N2N2=N-N1K2=Int(Sqr(N2))ForI=2ToK2\'判断N2是否是素数第16页IfN2ModI=0ThenExitForNextIIfI>K2Then\'如果N2也为素数,则打印输出PrintN&"="&N1&"+"&N2EndIfEndIfNextN1EndSub19.验证100~200之间所有的偶数符合哥德巴赫猜想。OptionExplicitPrivateSubCommand1_Click()DimiAsIntegerDimjAsIntegerDimxAsIntegerDimyAsIntegerDimzAsIntegerk:x=Val(InputBox("请输入一个数"))Ifx<6AndxMod2<>0ThenGoTokElsePrintxFory=2Tox/2z=x-yFori=2Toy-1IfyModi=0ThenExitForNextiIfi>y-1ThenForj=2Toz-1IfzModj=0ThenExitForNextjIfj>z-1ThenPrinty;"+";zEndIfEndIfNextyEndIfEndSub20.输出一个5阶的杨辉三角形OptionExplicitDimA()AsIntegerDimnAsInteger,i,j%PrivateSubCommand1_Click()第17页ReDimA(6,6)Fori=1To6Forj=1TojIfj=1Orj=iThenA(i,j)=1ElseA(i,j)=A(i-1,j-1)+A(i-1,j)EndIfNextj,iFori=1To6Forj=1Toi-1PrintTab(50-i3+j6);A(i,j);Spc(1);NextjPrintNextiEndSub21.输出下面的图案CCHCHICHINCHINAOptionExplicitDimAAsStringDimi%,j%PrivateSubCommand1_Click()Forj=0To5A=Mid("CHINA",1,i)PrintAi=j+1NextjPrintEndSub22.输出一个n矩阵等腰三角形,其外形如下第18页提示:倒数第一行一个,倒数第二行3个,……OptionExplicitDimi!,j!,T$,x$PrivateSubCommand1_Click()Fori=0To3x=""Forj=1To(7-Abs(i)2)x=x&""NextT=Space(Abs(i))&x&Space(Abs(i))PrintTNextEndSub23.先成一个10阶的一维随机数组,数组的每个元素值为[10,50],将这个数组用选择法及冒泡法二种排序方法排序,编写该代码。OptionExplicitDimk%,i%,j%,t%,m%,n%PrivateSubCommand1_Click()Dimx%(1To5,1To10)Form=1To5Forn=1To10Randomizex(m,n)=Int(Rnd100+2000)\'产生50个随机数Picture3.PrintTab(6n-4);x(m,n);NextnPrintNextmEndSubPrivateSubCommand2_Click()Dimx%(1To10)第19页Fork=1To10Randomizex(k)=Int(Rnd41+10)\'产生10个随机数Picture1.Printx(k);NextkFori=1To9Forj=i+1To10Ifx(i)>x(j)Thent=x(i):x(i)=x(j):x(j)=t\'大数沉底EndIfNextjNextiForm=1To10Picture2.Printx(m);\'打印排列后的顺序NextmEndSubPrivateSubCommand3_Click()Dimx%(1To10)Fork=1To10Randomizex(k)=Int(Rnd41+10)\'产生10个随机数Picture1.Printx(k);NextkFori=1To9Forj=1To10-iIfx(j)>x(j+1)Thent=x(j):x(j)=x(j+1):x(j+1)=t\'两两比较,大数换到后面EndIfNextjNextiForm=1To10Picture2.Printx(m);\'打印排列后的顺序NextmEndSub24.生成一个50阶的随机数组,其元素值为[100,2000]。1、元素值不重复,再人为输入一个数,在50个元素值中找出与之相等的那个元素,如果没有这个数,给出相应的信息。2、元素值可以重复,再人为输入一个数,在50个元素值中找出与之相等的那个元素并统计相等的个数,如果没有这个数,给出相应的信息。第20页OptionExplicitDimn%,m%,h%,t%,s%Dimx%(1To5,1To10)PrivateSubCommand1_Click()Picture1.ClsForm=1To5Forn=1To10Randomizex(m,n)=Int(Rnd100+1)\'产生50个随机数Picture1.PrintTab(6n-4);x(m,n);NextnNextmEndSubPrivateSubCommand2_Click()h=Val(Text1)t=FalseForm=1To5Forn=1To10Ifx(m,n)=hThent=TrueEndIfIftThenLabel2="找到了"ElseLabel2="没找到"NextnNextmEndSubPrivateSubCommand3_Click()h=Val(Text1)t=FalseForm=1To5Forn=1To10Ifx(m,n)=hThens=s+1t=TrueEndIfIftThenLabel2="找到了,这个数出现了"&s&"次"ElseLabel2="没找到"NextnNextmEndSub26.制作一个程序,其功能为输入年份,输出该年份的属相(分别用字符串和数组方式进行数据处理)。第21页法一:PrivateSubCommand1_Click()DimA%,c%,b$c=Val((InputBox("请输入你的出生年份")))A=cMod12b=Mid("猴鸡狗猪鼠牛虎兔龙蛇马羊",A+1,1)Print"你的出生的属相是";bEndSub法二:PrivateSubCommand2_Click()DimtyeaAsIntegerDimx(11)AsStringDimAAsIntegerx(0)="猴"x(1)="鸡"x(2)="狗"x(3)="猪"x(4)="鼠"x(5)="牛"x(6)="虎"x(7)="兔"x(8)="龙"x(9)="蛇"x(10)="马"x(11)="羊"tyea=Val((InputBox("请输入你的出生年份")))A=tyeaMod12Printtyea;"你的出生的属相是";x(A)EndSub28.利用自定义过程和函数的方法编程计算下式:其中:M、N在程序运行时输入。OptionExplicitDimn%,t%,m%PrivateSubCommand1_Click()m=Val(Text1):n=Val(Text2)\'计算M!/(N!(M-N)!)t=jc(m)/(jc(n)jc(m-n))Label1="计算结果是"&tEndSubPrivateFunctionjc&(ByValm%)Ifm=1Then第22页jc=1Elsejc=jc(m-1)mEndIfEndFunction29.利用递归调用方式计算:其中:n在程序运行时输入。OptionExplicitDimn%,t%PrivateSubCommand1_Click()n=Val(Text1)\'计算12+34+^^^(N-1)Nt=f(n)Label1="计算结果是"&tEndSubPrivateFunctionf&(ByValn%)Ifn=2Thenf=2Elsef=f(n-1)+n(n-1)EndIfEndFunction30.利用递归调用方式计算斐波那切数列:斐波那切数列:1、1、2、3、5、8、13、……、2n-3OptionExplicitDimn%,t%PrivateSubCommand1_Click()n=Val(Text1)\'计算斐波那切数列t=h(n)Label1="计算结果是"&tEndSubPrivateFunctionh&(ByValn%)Ifn=1Orn=2Thenh=1Elseh=h(n-1)+h(n-2)EndIfEndFunction第23页31.最大程序的利用自定义函数或自定义过程编写验证100~200之间所有的偶数符合哥德巴赫猜想。OptionExplicitDimi%,j%,s%PrivateSubCommand1_Click()Fori=100To200Step2\'验证100~200之间所有的偶数符合哥德巴赫猜想。Forj=3Toi/2Ifg(j)Andg(i-j)Thens=s+1Picture1.PrintTab(13-12(sMod2));i&"="&j&"+"&(i-j);EndIfNextjNextiEndSubPrivateFunctiong(ByValm%)AsBooleang=TrueFors=2ToSqr(m)IfmMods=0Theng=FalseEndIfNextsEndFunction32.以一个标签为目标,利用一组命令按钮(控件数组形式)设置其背景色。以一个文本框为目标,利用另一组命令按钮(控件数组形式)设置其字形(加粗、倾斜、下划线)。PrivateSubCommand1_Click(IndexAsInteger)A=IndexSelectCaseACase0Label1.BackColor=&HFF&第24页Command1(4).Visible=TrueCase1Label1.BackColor=&HFF0000Command1(3).Visible=TrueCase2Label1.BackColor=&HFF00FFCommand1(2).Visible=TrueCase3Label1.BackColor=&HFF00&Command1(1).Visible=TrueCase4Label1.BackColor=&HFFFF&EndSelectEndSubPrivateSubCommand2_Click(IndexAsInteger)SelectCaseIndexCase0Text1.FontBold=TrueCommand2(1).Visible=TrueCase1Text1.FontItalic=TrueCommand2(2).Visible=TrueCase2Text1.FontUnderline=TrueCommand2(3).Visible=TrueCase3Text1.FontStrikethru=TrueEndSelectEndSub第25页33.制作一个计算器的界面。.OptionExplicitDima!,b!,c!,eAsStringPrivateSubCommand3_Click()a=0b=0c=0e=""Picture1.ClsText1=""EndSubPrivateSubCommand4_Click()Callffe="+"EndSubPrivateSubCommand5_Click()Callffe="-"EndSubPrivateSubCommand6_Click()Callffe=""EndSubPrivateSubCommand7_Click()Callffe="/"EndSubPrivateSubCommand8_Click()CallffEndSubPrivateSubCommand9_Click(IndexAsInteger)SelectCaseIndexCase0Text1=Text1+"0"Case1Text1=Text1+"1"Case2Text1=Text1+"2"Case3Text1=Text1+"3"Case4Text1=Text1+"4"Case5第26页Text1=Text1+"5"Case6Text1=Text1+"6"Case7Text1=Text1+"7"Case8Text1=Text1+"8"Case9Text1=Text1+"9"EndSelectEndSubSubff()a=Val(Text1)Ife=""Thenb=ac=aElseSelectCaseeCase"+"c=b+aCase"-"c=b-aCase""c=baCase"/"Ifa=0Thena=1c=b/aEndSelectb=cEndIfText1=""Text1.SetFocusPicture1.ClsPicture1.PrintcEndSub第27页',)