江苏省二级VB上机之典型功能模块整理.docx

上传人:b****5 文档编号:14618409 上传时间:2023-06-25 格式:DOCX 页数:19 大小:19.51KB
下载 相关 举报
江苏省二级VB上机之典型功能模块整理.docx_第1页
第1页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第2页
第2页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第3页
第3页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第4页
第4页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第5页
第5页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第6页
第6页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第7页
第7页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第8页
第8页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第9页
第9页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第10页
第10页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第11页
第11页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第12页
第12页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第13页
第13页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第14页
第14页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第15页
第15页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第16页
第16页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第17页
第17页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第18页
第18页 / 共19页
江苏省二级VB上机之典型功能模块整理.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

江苏省二级VB上机之典型功能模块整理.docx

《江苏省二级VB上机之典型功能模块整理.docx》由会员分享,可在线阅读,更多相关《江苏省二级VB上机之典型功能模块整理.docx(19页珍藏版)》请在冰点文库上搜索。

江苏省二级VB上机之典型功能模块整理.docx

江苏省二级VB上机之典型功能模块整理

江苏省二级VB上机之典型功能模块整理

1、求素数:

PrivateFunctionprime(nAsInteger)AsBoolean

DimiAsInteger

Fori=2ToSqr(n)

IfnModi=0ThenExitFunction

Nexti

prime=True

EndFunction

2、求“升序数”(Mod+整除):

PrivateFunctionpand(ByValnAsInteger)AsBoolean

Dima()AsInteger,iAsInteger

Do

i=i+1

ReDimPreservea(i)'重定义数组

a(i)=nMod10'取n的个位数

n=n\10'十进制数右移一位

LoopUntiln<=0

Fori=1ToUBound(a)-1

Ifa(i)<=a(i+1)ThenExitFunction'不是升序数,退出函数

Nexti

pand=True

EndFunction

3、在字符串中提取英文词汇并组成新句子:

PrivateSubchange(sAsString,words()AsString)

DimstAsString*1,iAsInteger,kAsInteger

DimPAsString

Fori=1ToLen(s)

st=Mid(s,i,1)

Ifst>="a"Andst<="z"Then'所判断的字符是字母

P=P&st'构建单词

ElseIfP<>""Then'单词不为空

k=k+1'单词个数加1

ReDimPreservewords(k)保持原数据不变

words(k)=P'给数组赋值

P=""

EndIf

Nexti

EndSub

4、将内容按每五个一行输出:

IfkMod5<>0Then

st=st&Str(i)'构建字符串

Else

st=st&Str(i)&vbCrLf'换行

5、求“升序数”(Mid)

PrivateFunctionpand(xAsInteger)AsBoolean

DimiAsInteger

Dimw1AsInteger,w2AsInteger

Fori=2ToLen(CStr(x))'Len(Str(N))

w1=Mid(x,i-1,1)'取相邻的两个字符

w2=Mid(x,i,1)

Ifw1>=w2ThenExitFunction不是升序数退出函数

Nexti

pand=True'是升序数

EndFunction

6、求“同构数”(5在5^2=25的右端,25在25^2=625的右端,5和25为同构数):

PrivateFunctionpand(xAsLong)AsBoolean

DimsAsString

s=CStr(x)'将x变为字符串

IfRight(x^2,Len(s))=xThenpand=True'满足同构数条件

EndFunction

7、将数字处理成为降序整数:

PrivateSubchange(nAsLong,num()AsInteger)

DimiAsInteger,kAsInteger,jAsInteger

ReDimnum(Len(CStr(n)))'Str(n),定义数组的长度

Do

i=i+1

k=nMod10'取最低位的数字

num(i)=k'赋值数组

n=n\10'十进制数右移一位

LoopUntiln<=0

Fori=1ToUBound(num)-1'起泡法排序

Forj=i+1ToUBound(num)

Ifnum(i)

k=num(i)

num(i)=num(j)

num(j)=k

EndIf

Nextj

Nexti

EndSub

8、计算方差及标准差:

PrivateSubjis(x()AsInteger,y()AsSingle)

DimsumAsInteger,avAsSingle,dtaAsSingle

DimiAsInteger,ssAsSingle

Fori=1ToUBound(x)

sum=sum+x(i)'求数组之和

Nexti

av=sum/UBound(x)'求数组元素的平均值

Fori=1ToUBound(x)

ss=ss+(x(i)-av)*(x(i)-av)'计算方差

Nexti

dta=Sqr((ss)/(UBound(x)-1))'计算标准差

Fori=1ToUBound(x)

y(i)=(x(i)-av)/dta'计算最后结果

Nexti

EndSub

9、求“互质数”:

PrivateSubchzh(ByValaAsInteger,ByValbAsInteger,fAsBoolean)第-个ByVal,不改变变量值

DimrAsInteger

Do

r=aModb'求余

a=b

b=r

LoopUntilr=0

Ifa=1Thenf=True'最大公约数为1,互质

EndSub

10、累积出现次数:

PrivateSubtj(data()AsInteger,B()AsInteger)

DimiAsInteger

Fori=1ToUBound(data)

B(data(i))=B(data(i))+1'统计相同数的个数

Nexti

Fori=10To20

IfB(i)<>0Then

List1.AddItemi&""&B(i)'显示统计结果

EndIf

Nexti

EndSub

11、生成各位数字各不同的三位数:

PrivateFunctionpand(ByValnAsInteger)AsBooleanByVal,不改变变量值

Dimnum(3)AsInteger,iAsInteger,jAsInteger

i=1

Do

num(i)=nMod10'取最低位数字

n=n\10'十进制数右移一位

i=i+1

LoopUntiln<=0

Fori=1To2

Forj=i+1To3

Ifnum(i)=num(j)ThenExitFunction有数字相等退出函数

Nextj

Nexti

pand=True'没有数字相等

EndFunction

12、无重复数字:

ForJ=1ToLen(S)

K=Val(Mid(S,J,1))'依次取每一位数字

IfK=0ThenExitFor'数字为0

IfA(K)=0Then'此If结构功能是判断四位数是否含有重复的数码

A(K)=1

Else

ExitFor

EndIf

NextJ

13、判断首尾数字之和与相邻数字之和均为素数:

PrivateFunctionpand(NAsInteger)AsBoolean

DimSAsString,LAsInteger,KAsInteger,TemAsLong,IAsInteger

S=CStr(N)'将N转换为字符串

L=Len(S)或L=Len(CStr(N))

ForI=1ToL

IfI<>LThen

Tem=Val(Mid(S,I,1))+Mid(S,I+1,1)'计算相邻数字之和

Else

Tem=Val(Mid(S,1,1))+Mid(S,L,1)'计算首尾数字之和

EndIf

ForK=2ToSqr(Tem)

IfTemModK=0ThenExitFunction'和不是素数退出函数

NextK

NextI

pand=True'和是素数

EndFunction

14、求互为反序的两个自然数(如104和401,35和53,而120和21则不是):

IfRight(st,1)<>0Then(可在主过程中先将最后一位是0的数字剔除)

PrivateFunctionchzh(ByValnAsInteger)AsInteger

DimiAsInteger,stAsString

Do

i=nMod10'取最低位数字

st=st&CStr(i)'构建反序数字符串

n=n\10'十进制数右移一位

LoopUntiln<=0

chzh=Val(st)'返回反序数

EndFunction

15、插入法由大到小排序:

PrivateSubpx(a()AsInteger)'插入法排序

DimxAsInteger,iAsInteger,jAsInteger

Fori=1ToUBound(a)

x=a(i)

j=i-1

DoWhilej>=0Andx>a(j)

a(j+1)=a(j)移位

j=j-1

Ifj<0ThenExitDo

Loop

Ifi>j+1Then

a(j+1)=x插入x

EndIf

Nexti

EndSub

16、求三个数的最小公倍数:

PrivateFunctionjs(AAsInteger,BAsInteger,CAsInteger)

js=A

DoUntiljsModA=0AndjsModB=0AndjsModC=0'js能够被A,B,C都整除

js=js+A'计算A,B,C的最小公倍数

Loop

EndFunction

17、求Armstrong数(N位的正整数,其各位数字的N次方之和等于这个数本身):

PrivateSubpand(ByValkAsInteger,fAsBoolean,B()AsInteger,nAsInteger)

DimIAsInteger,SumAsInteger,MAsInteger

n=Len(CStr(k))CStr(k)将k变为相应的字符串

M=k

ReDimB(n)

ForI=nTo1Step-1

B(I)=kMod10'取原数的各位数字

k=k\10

NextI

ForI=1Ton

Sum=Sum+B(I)^n'Str的错误也可改这里为B(I)^(n-1)

NextI

IfSum=MThenf=True'是armstrong数

EndSub

18、求最大值与最小值:

PrivateSubchzh(a()AsInteger,maxAsInteger,minAsInteger)'计算数组的最大值和最小值

DimiAsInteger

max=a

(1):

min=a

(1)'给max和min赋初值

Fori=2ToUBound(a)

Ifa(i)

min=a(i)'计算最小值

ElseIfa(i)>maxThen

max=a(i)'计算最大值

EndIf

Nexti

EndSub

19、判断两个数之和不是平方数:

PrivateSubchange(A()AsInteger,PAsInteger)

DimnAsInteger,JAsInteger,SumAsInteger

n=2

DoWhilen

ForJ=1Ton-1

Sum=A(n)+A(J)'计算两个元素之和

IfInt(Sqr(Sum))=Sqr(Sum)ThenExitFor'sum是平方数

NextJ

IfJ<=n-1Then

A(n)=A(P)'删除A(n)

P=P-1'元素个数减1

Else

n=n+1'数组下标加1

EndIf

Loop

EndSub

20、生成5个互不相同的1—22之间的数码:

PrivateSubcreate(a()AsInteger)

DimiAsInteger,jAsInteger,kAsInteger

DimfAsBoolean

a

(1)=Int(Rnd*22)+1'生成随机数

i=1

Do

f=True

k=Int(Rnd*22)+1'生成随机数

Forj=1Toi

Ifk=a(j)Thenf=False'与之前数据相同

Nextj

IffThen'与之前数据不相同

i=i+1'元素个数加1

a(i)=k'生成元素

EndIf

LoopUntili>=5

EndSub

21、查找3的幂数:

PrivateFunctionpand(ByValnAsInteger)AsBoolean

DoWhilen<>1

IfnMod3<>0Then'能够被3整除

ExitFunction退出函数

EndIf

n=n\3'整除3

Loop

pand=True'是3的幂数

EndFunction

22、各位数字都是偶数:

PrivateFunctionpand(nAsInteger)AsBoolean

DimLAsInteger,SAsString,KAsInteger

S=CStr(n)'将n转化成字符串

ForL=1ToLen(S)

K=Val(Mid(S,L,1))'取字符串中的字符

IfKMod2<>0ThenExitFor'不排除K=0情况则多-个符合条件的数

NextL

IfL>Len(S)Thenpand=True'都是由偶数数字组成的

EndFunction

23、计算平均值:

PrivateSubjs(a()AsInteger,b()AsSingle)

DimiAsInteger,kAsInteger,jAsInteger

DimsumAsInteger

Fori=1ToUBound(a)

sum=0'和变量清零

Forj=0To4

k=(i+j)Mod20'定义循环下标

Ifk=0Thenk=UBound(a)

sum=sum+a(k)'a(j),求和

Nextj

b(i)=sum/5'计算平均值

Nexti

EndSub

24、求因子:

PrivateSubfac(nAsInteger,yz()AsInteger)

DimiAsInteger,kAsInteger

Fori=2Ton-1

IfnModi=0Then'i是n的一个因子

k=k+1'因子个数加1

ReDimPreserveyz(k)'重定义数组维数

yz(k)=i'给数组赋值

EndIf

Nexti

EndSub

25、各位数字不同的三位数:

PrivateFunctionpand(ByValnAsInteger)AsBoolean

Dimshz(3)AsInteger,iAsInteger,kAsInteger,jAsInteger

Do

k=k+1

shz(k)=nMod10'提取个位数字

n=n\10整除实现十进制数右移一位

LoopUntiln<=0

Fori=1To2

Forj=i+1To3

Ifshz(i)=shz(j)ThenExitFunction有数字相同退出函数

Nextj

Nexti

pand=True'没有数字相同

EndFunction

26、求谷点数(本行本列均为最小元素):

PrivateSubchzh(a()AsInteger,nAsInteger,fAsBoolean,kAsInteger)

DimiAsInteger,minvAsInteger

minv=a(n,1):

k=1

Fori=2ToUBound(a,2)

Ifminv>a(n,i)Then

minv=a(n,i):

k=i'查找每一行的最小值

EndIf

Nexti

Fori=1ToUBound(a,1)

Ifminv>a(i,k)ThenExitSub'判断这个最小值是否是列的最小值

Nexti

f=True

EndSub

27、查找绝对值最大的离差:

PrivateSubchzh(a()AsSingle,mavAsSingle,kAsInteger)

DimiAsInteger

mav=Abs(a

(1)):

k=1

Fori=2ToUBound(a)

IfAbs(a(i))>mavThen'查找绝对值最大的离差

mav=Abs(a(i))

k=i

EndIf

Nexti

EndSub

28、八进制转换:

PrivateFunctionchange(nAsInteger)AsString

DimkAsInteger,st()AsString*1,iAsInteger

Do

k=nMod8'取8的余数

i=i+1

ReDimPreservest(i)

st(i)=CStr(k)'保存8进制数

n=n\8

LoopUntiln<=0

Fork=1ToUBound(st)

change=st(k)&change构建8进制数的字符串

Nextk

EndFunction

29、查找幸运数(后两位是为完全平方数,前两数的数字位置相互颠倒后得到新数是素数):

Fori=xToy

st=CStr(i)'将i转换为字符串

c=Val(Left(st,2))'取i的前两位

d=Val(Right(st,2))'取i的后两位

IfSqr(d)=Int(Sqr(d))Andprime(change(c))

PrivateFunctionchange(nAsInteger)AsInteger

DimaAsInteger,bAsInteger

a=nMod10'取个位数字

b=n\10'取十位数字

change=a*10+b'计算逆序数

EndFunction

PrivateFunctionprime(nAsInteger)AsBoolean

DimiAsInteger

Ifn=1ThenExitFunction'1不是素数

Fori=2ToSqr(n)

IfnModi=0ThenExitFunction'不是素数

Nexti

prime=True'是素数

EndFunction

30、求降序数:

PrivateFunctionpand(ByValnAsInteger)AsBoolean

DimiAsInteger,num(3)AsInteger

Fori=1To3

num(i)=nMod10'取个位数字

n=n\10'十进制数向右移一位

Nexti

Ifnum(3)>num

(2)Andnum

(2)>num

(1)Thenpand=True'是降序数

EndFunction

PrivateSubCommand2_Click()

Text1="":

List1.Clear'清除文本框和列表框内容

EndSub

31、十六进制转换:

PrivateFunctionchange(sAsString)AsString

DimnAsInteger,pAsString,kAsInteger

p="ABCDEF"

n=Asc(s)'取s的ASCII值

Do

k=nMod16'取16进制的个位数

Ifk<10Then

change=CStr(k)&change构建16进制数的字符串

Else

change=Mid(p,k-9,1)&change'构建16进制数的字符串

EndIf

n=n\16

LoopUntiln<=0

change=change&"H"'构建16进制数的字符串

EndFunction

32、求回文数(正序与逆序相同的数):

PrivateFunctionpand(ByValnAsInteger)AsBoolea

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

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2