vb经典代码.docx

上传人:b****7 文档编号:11410706 上传时间:2023-02-28 格式:DOCX 页数:33 大小:48.47KB
下载 相关 举报
vb经典代码.docx_第1页
第1页 / 共33页
vb经典代码.docx_第2页
第2页 / 共33页
vb经典代码.docx_第3页
第3页 / 共33页
vb经典代码.docx_第4页
第4页 / 共33页
vb经典代码.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

vb经典代码.docx

《vb经典代码.docx》由会员分享,可在线阅读,更多相关《vb经典代码.docx(33页珍藏版)》请在冰豆网上搜索。

vb经典代码.docx

vb经典代码

Visualbasic经典代码

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%(1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1