VB程序设计的常用算法填空题概要Word文档下载推荐.docx
《VB程序设计的常用算法填空题概要Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VB程序设计的常用算法填空题概要Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
![VB程序设计的常用算法填空题概要Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/20/0f0b4a6b-eda6-411f-b6f5-7a0c5586fb8a/0f0b4a6b-eda6-411f-b6f5-7a0c5586fb8a1.gif)
Then
Nexti
统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1,x(2,...,x(10中,将统计结果打印出来
Fori=1To100
p=a(iMod10'
求个位上的数字
Ifp=0Thenp=10
Form1.Print"
统计结果"
Fori=1To10
p=i
Ifi=10Thenp=0
个位数为"
+Str(p+"
共"
+Str(x(i+"
个"
EndSub
二、求两个整数的最大公约数、最小公倍数
m=inputBox("
m="
n=inputBox("
n="
nm=n*m
r=mmodn
DoWhile
m=n
n=r
Loop
Print"
最大公约数
最小公倍数
三、判断素数
m=val(InputBox("
请输入一个数"
Fori=2Toint(sqr(m
IfmModi=0ThenExitFor
该数是素数"
该数不是素数"
将其写成一函数,若为素数返回True,不是则返回False
PrivateFunctionPrime(masIntegerAsBoolean
Dimi%
Prime=True
Fori=2To
IfmModi=0Then:
ExitForNexti
EndFunction
四、排序问题
1.选择法排序(升序
程序代码如下:
Fori=1Ton-1
Ifa(i>
a(jThen
temp=a(i
a(i=a(j
a(j=temp
Nextj
NextI
2.冒泡法排序(升序
程序段如下
IfThen
temp=a(j:
a(j=a(j+1:
a(j+1=temp
Endif
3.合并法排序(将两个有序数组A、B合并成另一个有序的数组C,升序基本思想:
1先在A、B数组中各取第一个元素进行比较,将小的元素放入C数组;
2取小的元素所在数组的下一个元素与另一数组中上次比较后较大的元素比较,重复上述比较过程,直到某个数组被先排完;
3将另一个数组剩余元素抄入C数组,合并排序完成。
程序段如下:
当A和B数组均未比较完
IfA(ia<
B(ibThen
C(ic=A(ia:
C(ic=B(ib:
ib=ib+1
DoWhileia<
=UBound(A'
A数组中的剩余元素抄入C数组
ia=ia+1:
ic=ic+1
DoWhileib<
=UBound(B'
B数组中的剩余元素抄入C数组
C(ic=B(ib
五、插入法
把一个数插到有序数列中,插入后数列仍然有序
将其写成一插入函数
PrivateSubInstert(a(AsSingle,xAsSingle
Dimp%,n%,i%
n=UBound(a
p=0
DoWhilex>
a(pAndp<
=n'
确定x应插入的位置
p=p+1
Fori=nTopStep-1
六、矩阵(二维数组运算
(1矩阵的加、减运算
C(i,j=a(i,j+b(i,j加法
C(i,j=a(i,j-b(i,j减法
(3矩阵转置
例:
有二维数组a(5,5,要对它实现转置,可用下面两种方式:
Fori=1to5(2Fori=2to5
For
t=a(i,jt=a(i,j
a(i,j=a(j,ia(i,j=a(j,i
a(j,i=ta(j,i=t
NextjNextj
NextiNexti
(4求二维数组中最小元素及其所在的行和列
基本思路同一维数组,可用下面程序段实现(以二维数组a(2,3为例:
‘变量max中存放最大值,row,column存放最大值所在行列号
Max=a(1,1:
row=1:
Column=1
Fori=1To2
Forj=1To3
Max=a(i,j
Column=j
最大元素是"
;
在第&
"
行,"
第"
&
列"
七、数制转换
将一个十进制整数m转换成→r(2-16进制字符串。
方法:
将m不断除r取余数,直到商为零,以反序得到结果。
下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等,函数输出结果是字符串。
PrivateFunctionTrDec(mAsInteger,rAsIntegerAsString
DimSR$,IR%
SR="
"
IR=mModr
IfIR>
=10Then
SR=&
SR
m=m\r
1.统计文本单词的个数
下面程序段是字符串strI中包含的单词数
Nw=0:
Wt=False
nL=Len(RTrim(strI
Fori=1TonL
取第i个字符
SelectCasestrT
Case"
"
"
!
Wt=False
CaseElse
IfNotWtThen
Wt=True
EndSelect
单词数为:
Nw
八、穷举法
将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?
Dimi%,j%,k%
5元1元0.5元"
Fori=1To20
Forj=1To100-i
If5.0*i+1.0*j+0.5*k=100Then