计算机等级考试二级VB常用算法Word文件下载.docx

上传人:b****6 文档编号:19240138 上传时间:2023-01-04 格式:DOCX 页数:21 大小:148.42KB
下载 相关 举报
计算机等级考试二级VB常用算法Word文件下载.docx_第1页
第1页 / 共21页
计算机等级考试二级VB常用算法Word文件下载.docx_第2页
第2页 / 共21页
计算机等级考试二级VB常用算法Word文件下载.docx_第3页
第3页 / 共21页
计算机等级考试二级VB常用算法Word文件下载.docx_第4页
第4页 / 共21页
计算机等级考试二级VB常用算法Word文件下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级VB常用算法Word文件下载.docx

《计算机等级考试二级VB常用算法Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VB常用算法Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级VB常用算法Word文件下载.docx

Asc(c) 

5

  If 

iAsc 

>

Asc("

) 

Then 

26

Code 

&

Chr(iAsc)

a"

z"

Else

  End 

Select

  Next 

i

  Text2.Text 

Code

Sub

Command3_Click()

  Text1.Text 

  Text3.Text 

  Text1.SetFocus

Sub

  2)统计

  问题提出

  统计字符或者数字出现的次数。

  算法说明

  以字符统计为例,设基本问题如下:

  请统计一段文本中英文字母在文本中出现的次数。

(不区分大小写)

  如:

Iamastudent.

  得到:

  A:

2d:

1e:

1I:

1m:

1n:

1s:

1t:

2u:

1

  分析:

  由于不区分大小写,因此可定义一个大小为26(下标:

0-25)的数组,每个元素依次记录A、B、C…Z字母出现的次数。

  A(0)存放字母a出现的次数

  A

(1)存放字母b出现的次数

  A

(2)存放字母c出现的次数

  A(3)存放字母d出现的次数

  …

  譬如:

aabdc

Integer, 

Integer

zimu(25) 

allStr 

String

aStr 

  allStr 

UCase(Text1.Text)

Len(Text1.Text)

  aStr 

Mid(allStr, 

And 

<

Then

  zimu(Asc(aStr) 

)) 

zimu(Asc(aStr) 

If

25

zimu(i) 

  j 

Text2.Text 

Chr(i 

:

str(zimu(i)) 

Mod 

Chr(13) 

Chr(10)

  解题技巧

  熟练运用字符处理函数,对于一些数论题,譬如逆序数等也可将数字通过CStr函数转换为字符后,利用字符处理函数来解题。

2、实战练习

  1)补充代码(2003秋二(8))

  下面程序的功能是统计文件中英文字母(不区分大小写)出现的个数。

Base 

alpha(26) 

Integer,n 

Integer,s 

  Open 

c:

\kav2003\readme.txt"

For 

Input 

#11

  Do 

While 

Not 

EOF(11)

  s= 

(1)

  s=UCase(s)

s>

="

s<

  n= 

(2)

  alpha(n)=alpha(n)+1

  Loop

i=1 

alpha(i)<

  List1.AddItem 

Chr(i+64)&

CStr(alpha(i))

  Close

  2)补充代码(2000秋二(6))

  下面程序的功能是:

统计当前盘当前文件夹中的顺序文件data.txt中共有多少个单词,约定连续出现的字母定义为一个单词。

Form_Click()

Char() 

String, 

St 

Tem 

Idx 

Js 

Long, 

Flen 

Long

Boolean, 

  

(1)

  Flen 

LOF(10)

  St 

Input(Flen, 

#10)

  Js 

Flen+1

  W 

Mid(St, 

Js, 

(2) 

  Tem 

W

  F 

True

  ElseIf 

True 

  Idx 

  ReDim 

Preserve 

Char(Idx)

  Char(Idx) 

Tem

(3)

False

  (4)

  Print 

共有"

;

Idx;

个单词"

Idx

Char(Js)

Js

排序1

  1)初等数学

  递推法

  又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。

每次重复都在旧值的基础上递推出新值,并由新值代替旧值。

  问题:

猴子吃桃子

  小猴子有若干桃子,第一天吃掉一半多一个;

第二天吃掉剩下的一半多一个…..;

如此,到第七天早上要吃时,只剩下一个桃子。

问小猴子一开始共有多少桃子?

可以最后一天桃子数推出倒数第二天的桃子数;

再从倒数第二天推出倒数第三天桃子数………..

  设第n天桃子数为xn,前一天桃子数是:

xn-1,则有关系:

  xn=xn-1/2-1

  程序如下:

n%, 

i%

  x 

'

第七天桃子数

第七天桃子数:

1只"

Step 

-1

(x 

1) 

2

第"

天桃子数:

只"

  穷举法

  又称枚举法,即将所有可能情况一一测试,判断是否满足条件,一般用循环实现。

百元买鸡问题。

  假定小鸡每只5角;

公鸡每只2元;

母鸡每只3元。

现在有100元,要求买100只鸡,编程列出所有可能的购鸡方案。

  设母鸡、公鸡、小鸡分别x、y、z只,则有:

  x+y+z=100

  3x+2y+0.5z=100

  程序一:

x%, 

y%, 

z%

100

100 

0.5 

x, 

y, 

z

y

x

  程序二(优化)

y%

33

50

(100 

y) 

  2)高等数学

  求积分

  近似计算积分:

s=∫13(x3+2x+5)dx

  Public 

Function 

f(ByVal 

x!

被积函数

  f 

2) 

Function

trapez(ByVal 

a!

 

ByVal 

b!

n%) 

Single

  '

b、a分别为积分上下限,n为等分数

sum!

h!

  h 

(b 

a) 

n

  sum 

(f(a) 

f(b)) 

h

sum 

f(x)

  trapez 

Function

  调用:

trapez(1, 

3, 

30)

  数论综合题

  此类题目比较广泛,必须给以足够重视。

  历年题目有:

平方数、零巧数、拟互满数、回文数、酉完数、完数、幸运数、逆序数以及无暇素数、超级素数、因子和等。

排序2

1)补充代码(2002秋二(10))

  找出由两个不同数字组成的平方数,并将结果按图中的格式显示在列表框List1中。

11 

300

Verify(N) 

  

(2)

I

Verify( 

(3) 

Boolean

A(0 

9) 

0

  N 

10

9

A(I)

  (5)

  1)编程题(2004秋上机试卷08)

  一个正整数被称为奇妙平方数,如果此数的平方与它的逆序数的平方互为逆序数。

例如,

  12^2=144,21^2=441,12与21互逆,144与441互逆,12就是奇妙平方数。

找出1-300以内所有的奇妙平方数。

  1)顺序查找

  逐个元素找,如果有,则记录位置,然后跳出循环;

否则,查找失败。

Search(a(), 

Key, 

Index 

Integer)

LBound(a) 

UBound(a)

a(i) 

Key 

找到,将元素下标保存在index中并结束查找

  Index 

  Exit 

-1 

若没找到,则index值为-1

  2)二分法查找

  顺序查找效率低下,当数组有序排列时,可以使用二分法查找提高效率。

  算法思想:

birSearch(a(), 

low%, 

high%, 

index%)

mid 

low 

high 

没有查找到

  index 

  mid 

(low 

high) 

取查找区间的中点

a(mid) 

查找到,返回下标

mid

查找区间在上半部分

  high 

  Else

  low 

查找区间在下半部分

  Call 

birSearch(a, 

low, 

high, 

index) 

递归调用查找函数

  调用方法:

a(11)

  a

(1) 

5:

a

(2) 

13:

a(3) 

19:

a(4) 

21:

a(5) 

37

  a(6) 

56:

a(7) 

64:

a(8) 

75:

a(9) 

80:

a(10) 

88:

a(11) 

92

ind 

LBound(a), 

UBound(a), 

21, 

ind)

ind

2、实战练习补充代码(2002春二(9))

  C盘根目录下stu.txt文件中以下的格式保存着学生姓名及班号信息。

本程序的功能是:

读取该文件中的数据,再利用InputvBox输入要查找的学生姓名,通过顺序查找,给出找到或找不到的信息。

附图是某同学被找到时显示的信息窗口。

  张文,机械01

  李明,机械01

  王文卉,机械01

  何宇宙,电子02

Form_click()

stu() 

glass() 

name 

\stu\stu.txt"

stu(n), 

glass(n)

  Input 

#11, 

  name 

InputBox("

输入欲查找的学生姓名:

search(name, 

stu, 

k)

  MsgBox 

无此人。

  Close 

search(name 

UBound(stu)

stu(i) 

1、算法说明数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素,使得插入或删除操作后的数组还是有序的。

  基本思路:

首先要找到插入位置或要删除的元素。

  1)插入

生成数组

  a(i) 

a(i);

  Print

插入14"

查找插入14在数组中的位置

14 

a(k) 

Exit 

For

k

从最后元素开始逐个后移,腾出位置

  a(i 

a(i)

  a(k) 

插入数14

  2)14710131619222528

  K

  删除代码如下:

a() 

as 

integer

  ….

a(1 

to 

n)

  …

i=k+1 

  a(i-1)=a(i)

  Redim 

preserve 

n-1)

  C盘根目录下文件Data4.txt的内容是:

2,4,6,8,10,1,3,5,7,9。

下面程序的功能是将文件后半部分的奇数分别按序插入到前半部分的适当位置,得到的新数列是:

12345678910。

(实现方法:

第一次调整后的数列是:

12468103579第二次调整后的数列是:

12346810579)。

Explict

A(10) 

Integer,i 

Integer,J 

\Data4.txt"

#12

  J=J+1

#12,A(J)

Insert(A)

A(i);

Insert(A() 

Integer,Putp 

Getp 

Integer,N 

Integer,Tem 

  N=UBound(A)/2

  Putp=1

  Getp=N+1

N

  Tem=A(Getp)

J=Getp 

Putp 

+1 

J

  A(Putp)=Tem

  Getp=Getp+1

  Putp= 

  补充代码

  下面程序得功能是将无序数组中相同得数只保留一个,其余得删除,并输出经过删除后的数组元素,删除相同数是通过将该数组元素后面的元素在数组内依次前移替换前一个元素的值实现的。

数组各元素的值从文件data.txt中读取。

  

Option 

Integer,K 

A()As 

Integer,T 

Integer,M 

\my 

documents\2000test\data.txt"

#1

  I=I+1

#1,A(I)

  M=1:

T= 

  I=M+1

I<

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1