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)
Fork