vb习题1文档格式.docx
《vb习题1文档格式.docx》由会员分享,可在线阅读,更多相关《vb习题1文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![vb习题1文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/3/9ef50cd8-9bcb-4e56-8d13-19ebc66f093a/9ef50cd8-9bcb-4e56-8d13-19ebc66f093a1.gif)
PrivateSubCommand3_Click()
End
2、选择排序法
OptionExplicit
OptionBase1
Dima(10)AsInteger,tAsInteger
DimiAsInteger,jAsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*100)+1
Text1=Text1&
Str(a(i))
Fori=1To9
Forj=i+1To10
Ifa(i)>
a(j)Then
t=a(i)
a(i)=a(j)
a(j)=t
Nextj
Text2=Text2&
3、冒泡排序法
PrivateSubForm_Click()
Dima(5)AsDouble
Dimi,jAsInteger
'
给数组赋值
Fori=1To5
temp=InputBox("
请输入"
+Str(i)+"
个数字"
"
输入"
)
IfIsNumeric(temp)Then
是数字就将数字赋值给数组
a(i)=temp
Else
不是数字就将数组置0
a(i)=0
EndIf
Nexti
排序
Fori=1To4
Forj=1To5-i
Ifa(j)<
a(j+1)Then
temp=a(j)
a(j)=a(j+1)
a(j+1)=temp
Nextj
PrintStr(a
(1))+"
+Str(a
(2))+"
+Str(a(3))+"
+Str(a(4))+"
+Str(a(5))
4、判断一个数是不是素数
DimiAsInteger
DimjAsInteger
DimxAsInteger
x=Val(InputBox("
请输入一个自然数:
输入提示"
))
Fori=2Tox-1
IfxModi=0ThenExitFor
Ifi=xThen'
此处若i的值变为x则说明所以上面的循环全被执行完
Printx&
是素数"
不是素数"
若i<
x则说明循环的中途x就能被除尽了
5、求水仙花数
DimiAsInteger,aAsInteger,bAsInteger,cAsInteger,stAsString
Fora=1To9
Forb=0To9
Forc=0To9
i=a*100+b*10+c
Ifi=a^3+b^3+c^3Then
st=i&
="
&
a&
^3+"
b&
c&
^3"
Printst
Nextc
Nextb
Nexta
6、显示系统时间
PrivateSubForm_Load()
DimsAsString,nAsInteger
n=Weekday(Now,2)
Ifn=7Then
s="
日"
ElseIfn=6Thens="
六"
ElseIfn=5Thens="
五"
ElseIfn=4Thens="
四"
ElseIfn=3Thens="
三"
ElseIfn=2Thens="
二"
ElseIfn=1Thens="
一"
Label1.Caption="
今天是"
Year(Now)&
年"
Month(Now)&
月"
Day(Now)&
日"
星期"
s
Label2.Caption=Time()
7、求三个数的最小公倍数
DimaAsInteger,bAsInteger
DimlAsLong,cAsInteger
a=Text1
b=Text2
c=Text3
l=lcm(lcm(a,b),c)
Text4=l
PrivateFunctionlcm(ByValxAsInteger,ByValyAsInteger)
DimmAsLong,flgAsBoolean
flg=False
DoUntilflg
m=m+x
IfmMody=0Then
flg=True
Loop
lcm=m
EndFunction
8、求三个数的最大公约数
PrivateFunctionmaxgongyueshu(a,b)
Dimmin,max,iAsLong
Ifa<
=bThen
min=a:
max=b
Else:
min=b:
max=a
i=maxModmin
Ifi=0Then
maxgongyueshu=min
ExitFunction
DoUntilaModi=0AndbModi=0
max=min
min=i
maxgongyueshu=i
Dima,b,cAsLong
a=InputBox("
a="
b=InputBox("
b="
c=InputBox("
c="
a=maxgongyueshu(a,b)
a=maxgongyueshu(a,c)
MsgBoxa
9、随机生成15个数,对称位置对调后显示在另一个文本框中6-2
DimiAsInteger,tAsInteger
Dima(15)AsInteger
Randomize
Fori=1To15
a(i)=Int(100*Rnd)
Text1=Text1&
Fori=1To7
t=a(i)
a(i)=a(16-i)
a(16-i)=t
Text2=Text2&
Text1="
Text2="
End
10、随机生成20个数,统计有多少个数不相同6-3
Dima(20)AsInteger
DimiAsInteger
Fori=1To20
a(i)=Int(90*Rnd)+10
DimiAsInteger,jAsInteger,fAsBoolean
DimnAsInteger
f=True
Forj=i+1To20
Ifa(i)=a(j)Thenf=False
Iff=TrueThenn=n+1
Text2=n
PrivateSubCommand4_Click()
11、20个随机数围成一圈,求相邻四个数和中的最大值,并指出哪四个数6-4
DimiAsInteger,jAsInteger,maxAsInteger
DimnAsInteger,wAsInteger,pAsInteger
n=0:
p=i
Forj=1To4
Ifi>
20Thenp=p-20
n=n+a(p)
Ifn>
maxThen
max=n
w=i
Text2=max
Picture1.Printw&
--"
w+4
12、求一个随机数组每一行每一列的和6-5
Dima(5,5)AsInteger
Forj=1To5
a(i,j)=Int(9*Rnd)+1
Picture1.Printa(i,j);
Picture1.Print
s=0
s=s+a(i,j)
Str(s)
Str(s)&
Chr(13)&
Chr(10)
Picture1.Cls
PrivateSubCommand5_Click()
13、统计字母个数p113
DimstAsString,tAsInteger
Dima(0To25)AsInteger
DimiAsInteger,jsAsInteger
DimchAsString*1,lAsInteger
st=Text1.Text
l=Len(st)
Fori=1Tol
ch=Mid(st,i,1)
Ifch>
="
A"
Andch<
Z"
Then
t=Asc(ch)-Asc("
a(t)=a(t)+1
ElseIfch>
a"
z"
Fori=0To25
Ifa(i)<
>
0Then
js=js+1
Chr(i+Asc("
))&
:
Str(a(i))&
Endif
IfjsMod5=0Then
14、求阶乘
n=InputBox("
输入自然数"
JieChengn
1Then
Forj=nTo2Step-1
Printj&
*"
Print"
1="
PrintJieCheng(n)
PrivateFunctionJieCheng(ByVali&
)AsLong
JieCheng=i*JieCheng(i-1)
JieCheng=1
15、找出最长单词
Printlongest(Text1);
在窗体上打印出最长的单词
Functionlongest(SAsString)AsString
Dimp()AsString,nAsInteger
S=Replace(S,vbCrLf,"
p=Split(S,"
Fori=0ToUBound(p)
IfLen(p(i))>
Len(p(n))Thenn=i
Next
longest=p(n)
16.qiuzhishuyinzi
DimaAsInteger
DimkAsInteger
DimfAsBoolean
Fori=1Toa
IfaModi=0Then'
判断为因子后执行判断素数
Fork=2Toi-1
IfiModk=0Then'
判断不是素数后
ExitFor'
结束当前循环
Next
IfNotfThenPrintStr(i)'
否则输出该素数因子
f=False