vbcode.docx
《vbcode.docx》由会员分享,可在线阅读,更多相关《vbcode.docx(21页珍藏版)》请在冰豆网上搜索。
vbcode
1在窗体上输出所有的“水仙花数”,并按照一行5个的格式输出。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。
代码:
PrivateSubForm_Load()
DimnAsInteger
DimiAsInteger
DimgAsInteger
DimsAsInteger
DimbAsInteger
n=1
Fori=100To999Step1
g=iMod10
s=((iMod100)-g)/10
b=(i-10*s-g)/100
Ifi=g^3+s^3+b^3Then
Ifn=6Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
Next
EndSub
2在TextBox任意输入x的值,将f(x)输出的结果用Msgbox函数输出。
代码:
PrivateSubTextBox1_Change()
MsgBoxf(Val(TextBox1.Text))
EndSub
Functionf(x)
Ifx<0Andx<>-3Then
f=x^2+x-6
ElseIfx<10Andx<>2Andx<>3Then
f=x^2-5*x+6
Else
f=x^2-x-1
EndIf
EndFunction
3编写一个程序,在2个TextBox中输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦,将结果用Msgbox输出。
(1)标准体重=身高-110;
(2)超过标准体重5kg为过胖;(3)低于标准体重5kg为过瘦。
代码:
PrivateSubCommand1_Click()
MsgBoxf(Val(Text1),Val(Text2))
EndSub
Functionf(h,w)
DimtemAsSingle
DimxAsSingle
tem=h-110
x=tem-w
Ifx<-5Then
f="过胖"
ElseIfx>5Then
f="过瘦"
Else
f="标准"
EndIf
EndFunction
4征兵的条件是:
男性(sex)年龄(age)在18~20之间,身高(size)在1.65米以上;或者女性(sex)年龄(age)在16~18之间,身高(size)在1.60米以上。
用三个文本框控件分别输入性别、年龄、身高信息,根据这些信息判断是否符合征兵条件,用Msgbox函数输出结果。
代码:
PrivateSubCommand1_Click()
MsgBoxf(Text1.Text,Val(Text2),Val(Text3))
EndSub
Functionf(sex,age,size)
Ifsex="男"Andage>=18Andage<=20Andsize>=1.67Then
f="合格"
ElseIfsex="女"Andage>=16Andage<=18Andsize>=1.6Then
f="合格"
Else
f="不合格"
EndIf
EndFunction
5编程在窗体上输出101~500之间的所有能被3或者7整除的奇数,按照一行5个的方式输出并最后符合要求的数的和。
代码:
PrivateSubForm_Load()
DimsumAsInteger
DimnAsInteger
sum=0
n=1
Fori=101To500Step1
If(iMod3=0OriMod7=0)And(iMod2<>0)Then
Ifn=6Then
Print
n=1
EndIf
Printi;
sum=sum+i
n=n+1
EndIf
Next
Print
Print"sum=";sum
EndSub
6在TextBox中输入一个正整数n,计算
的值并在窗体上输出结果。
代码:
PrivateSubForm_DblClick()
Label3.Caption=f(Val(Text1))
EndSub
Functionf(n)
DimsumAsSingle
sum=0
Ifn<=0Then
f="n必须为正整数"
Else
Fori=1Ton
sum=sum+jc(i)/(i+2)
Next
f=sum
EndIf
EndFunction
Functionjc(n)
DimsAsInteger
s=1
Fori=1Ton
s=s*i
Next
jc=s
EndFunction
7在4个TextBox中输入4个大小不同的数,将它们从大到小排序后的结果用Msgbox函数输出。
代码:
PrivateSubCommand1_Click()
Dima(3)AsInteger
DimtempAsInteger
DimstAsString
temp=0
a(0)=Val(Text1)
a
(1)=Val(Text2)
a
(2)=Val(Text3)
a(3)=Val(Text4)
i=0
DoWhilei<3
j=i+1
Ifa(i)>a(j)Then
temp=a(i)
a(i)=a(j)
a(j)=temp
EndIf
i=i+1
Loop
Fori=3To0Step-1
st=st&a(i)&">"
Next
MsgBoxst
EndSub
8求1-2!
+3!
-4!
...序列,当最后的结果超过2000000停止计算,将该序列的最结果用Msgbox函数输出。
代码:
PrivateSubCommand1_Click()
DimsumAsSingle
DimiAsInteger
i=1
sum=0
DoWhilesum<2000000
IfiMod2=0Then
sum=sum-jc(i)
Else
sum=sum+jc(i)
EndIf
i=i+1
Loop
MsgBoxsum
EndSub
Functionjc(n)
DimsAsSingle
s=1
Fori=1Ton
s=s*i
Next
jc=s
EndFunction
9.找到10000到99999中的所有回文数,并按照一行10个的格式在窗体上输出,例如12321是回文数,个位与万位相同,十位与千位相同。
代码:
PrivateSubForm_Load()
DimsumAsInteger
DimnAsInteger
DimgAsInteger
DimsAsInteger
DimbAsInteger
DimqAsSingle
DimwAsInteger
n=1
Fori=10000To99999Step1
g=iMod10
s=((iMod100)-g)/10
b=(iMod1000-10*s-g)/100
q=(iMod10000-100*b-10*s-g)/1000
w=(i-1000*q-100*b-10*s-g)/10000
Ifg=wAndb=qThen
Ifn=11Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
Next
EndSub
10.求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,在窗体上按照一行5个的格式输出。
代码:
PrivateSubForm_Load()
DimnAsInteger
n=1
Fori=1To1000Step1
If(iMod5=0OriMod13=0)And(iMod5*13<>0)Then
Ifn=6Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
Next
EndSub
11.在TextBox中输入一个正整数n,当n的值为偶数时,求1-1/2-1/4-...-1/n序列的和,当n为奇数时,求1-1/3-1/5...-1/n序列的和,将结果用Msgbox函数输出。
代码:
PrivateSubCommand1_Click()
DimsumAsSingle
DimnAsInteger
n=Val(Text1.Text)
sum=1
IfnMod2=0Then
Fori=2TonStep2
sum=sum-(1/i)
Next
Else
Fori=3TonStep2
sum=sum-(1/i)
Next
EndIf
MsgBox"结果为:
0"&sum
EndSub
12.已知abcd+dcba=3456,其中a,b,c,d均为一位正整数,编程求出满足条件的a,b,c,d所有组合,在Label上输出答案。
代码:
PrivateSubCommand1_Click()
DimaAsInteger
DimbAsInteger
DimcAsInteger
DimdAsInteger
DimmAsInteger
DimnAsInteger
DimstAsString
DimlabAsInteger
lab=0
Fora=1To9
Forb=1To9
Forc=1To9
Ford=1To9
m=1000*a+100*b+10*c+d
n=1000*d+100*c+10*b+a
Ifm+n=3456Then
lab=lab+1
st=a&""&b&""&c&""&d
Label3.Caption=Label3.Caption&st&"_"
EndIf
Next
Next
Next
Next
Iflab=0Then
Label3.Caption="满足条件的组合不存在!
"
EndIf
EndSub
13.求这样一个四位数并输出该数字,该四位数等于其每位数字的阶乘之和。
即:
abcd=a!
+b!
+c!
+d!
,将结果用Msgbox函数输出。
代码:
PrivateSubForm_Load()
DimgAsInteger
DimsAsInteger
DimbAsInteger
DimqAsSingle
DimnAsInteger
n=1
Fori=1000To9999Step1
g=iMod10
s=((iMod100)-g)/10
b=(iMod1000-10*s-g)/100
q=(iMod10000-100*b-10*s-g)/1000
Ifi=jc(q)+jc(b)+jc(s)+jc(q)Then
Printi;
EndIf
Next
Ifn=1Then
MsgBox"NoAnswer"
EndIf
EndSub
Functionjc(n)
DimsAsSingle
Fori=1Ton
s=1
s=s*i
Next
jc=s
EndFunction
14.编程找出满足下列条件的所有四位数并在窗体上按照一行10个的形式输出:
该数第一、三位数字之和为10,第二、四位数字之积为12。
代码:
PrivateSubForm_Load()
DimgAsInteger
DimsAsInteger
DimbAsInteger
DimqAsSingle
DimnAsInteger
n=1
Fori=1000To9999Step1
g=iMod10
s=((iMod100)-g)/10
b=(iMod1000-10*s-g)/100
q=(iMod10000-100*b-10*s-g)/1000
Ifg+b=10Andq*s=12Then
Ifn=11Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
Next
EndSub
15.编程输出所有满足如下条件的三位正整数:
它是某整数的平方,它的三位数码有两位是相同的,在窗体上按照一行5个的格式输出。
(如100是10的平方,它有两个0,225是15的平方,它有两个2)。
代码:
PrivateSubForm_Load()
DimnAsInteger
DimiAsInteger
DimgAsInteger
DimsAsInteger
DimbAsInteger
n=1
Fori=100To999Step1
g=iMod10
s=((iMod100)-g)/10
b=(i-10*s-g)/100
IfFix(Sqr(i))=Sqr(i)And(g=sOrg=bOrs=b)Then
Ifn=6Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
Next
EndSub
16.输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同,在窗体上按照一行5个的格式输出。
代码:
PrivateSubForm_Load()
DimgAsInteger
DimsAsInteger
DimbAsInteger
DimqAsSingle
DimnAsInteger
n=1
Fori=1010To9999Step1
IfiMod2=0Then
g=iMod10
s=((iMod100)-g)/10
b=(iMod1000-10*s-g)/100
q=(iMod10000-100*b-10*s-g)/1000
Ifg<>sAnds<>bAndb<>qAndq<>gAndq<>bAndg<>bAnds<>qThen
Ifn=6Then
Print
n=1
EndIf
Printi;
n=n+1
EndIf
EndIf
Next
EndSub
17.一位司机酒驾撞人逃跑。
现场三人目击事件,但都没记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;乙说:
牌照的后两位数字是相同的;丙是位数学家,他说:
四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。
(车号为4位正整数,结果在TextBox中输出)
代码:
PrivateSubForm_Load()
DimgAsInteger
DimsAsInteger
DimbAsInteger
DimqAsSingle
DimnumAsInteger
Fori=1000To9999Step1
g=iMod10
s=((iMod100)-g)/10
b=(iMod1000-10*s-g)/100
q=(iMod10000-100*b-10*s-g)/1000
Ifq=bAndg=sAndFix(Sqr(i))=Sqr(i)Then
num=i
EndIf
Next
Text1.Text=num
EndSub
18.用户利用InputBox函数随机输入12个0-100之间的整数,统计出小于60,60到70,70到80,80到90以及90到100范围的整数各有多少个?
用Msgbox函数显示输出结果。
代码:
PrivateSubCommand1_Click()
DimTempAsString
DimInputVal()AsString
DimintVal(100)AsInteger
DimlAsInteger
DimlsAsInteger
DimaAsInteger
a=0
DimbAsInteger
b=0
DimcAsInteger
c=0
DimdAsInteger
d=0
DimeAsInteger
e=0
Temp=InputBox("请输入数据,用逗号分隔:
")
InputVal=Split(Temp,",")
ls=UBound(InputVal)
Fori=0Tols
intVal(i)=Val(InputVal(i))
Next
Fori=0Tols
IfintVal(i)<60Then
a=a+1
ElseIfintVal(i)<70Then
b=b+1
ElseIfintVal(i)<80Then
c=c+1
ElseIfintVal(i)<90Then
d=d+1
ElseIfintVal(i)<100Then
e=e+1
EndIf
Next
Temp="小于60的"&a&"个,大于等于60小于70的"&b&"个,大于等于70小于80的"&c&"个,大于等于80小于90的"&d&"个,大于等于90小于100的"&e&"个"
MsgBoxTemp
EndSub
19.编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。
结果利用Msgbox函数输出。
代码:
PrivateSubCommand1_Click()
DimaAsInteger
DimbAsInteger
DimsumAsSingle
sum=0
DimbwAsInteger
DimgAsInteger
DimsAsInteger
a=Val(Text1.Text)
b=Val(Text2.Text)
sum=a^2+b^2
Ifsum>100Then
g=sumMod10
s=((sumMod100)-g)/10
sum=(sum-g-10*s)/100
MsgBoxsum
Else
MsgBoxsum
EndIf
EndSub
20.猜数游戏:
由计算机随机产生一个2位正整数让人来猜,只能猜8次,如果人猜对了,则利用Msgbox函数显示计算机随机产生的该2位正整数并显示“Youaresoclever”,否则利用Msgbox函数给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止,或者8次都猜不对给出提示“GameOver”。
代码:
DimguessAsInteger
DimaAsInteger
DimcAsInteger
PrivateSubCommand2_Click()
guess=num()
DoWhileguess<10Orguess>99
guess=num()
Loop
EndSub
Functionnum()
Randomize
num=Int((100)*Rnd+1)
EndFunction
PrivateSubCommand1_Click()
IfVal(Text1.Text)=guessThen
MsgBoxguess&"youaresoclever"
ElseIfVal(Text1.Text)>guessThen
MsgBox"偏大"
Text1.Text=""
Text1.SetFocus
Else
MsgBox"偏小"
Text1.Text=""
Text1.SetFocus
EndIf
Ifc=7Then
MsgBox"Gameover"
EndIf
c=c+1
EndSub