分享
 
 
 

计算机等级考试二级VB常用算法:排序

王朝vb·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1、算法说明

1) 初等数学

递推法

又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都在旧值的基础上递推出新值,并由新值代替旧值。

问题:猴子吃桃子

小猴子有若干桃子,第一天吃掉一半多一个;第二天吃掉剩下的一半多一个…..;如此,到第七天早上要吃时,只剩下一个桃子。问小猴子一开始共有多少桃子?

分析:可以最后一天桃子数推出倒数第二天的桃子数;再从倒数第二天推出倒数第三天桃子数………..

设第n天桃子数为xn,前一天桃子数是:xn-1,则有关系:

xn=xn-1/2-1

程序如下:

以下是引用片段:

PRivate Sub Command1_Click()

Dim n%, i%

x = 1 '第七天桃子数

Print "第七天桃子数: 1只"

For i = 6 To 1 Step -1

x = (x + 1) * 2

Print "第" & i & "天桃子数:" & x & "只"

Next i

End Sub

穷举法

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

问题:百元买鸡问题。

假定小鸡每只5角;公鸡每只2元;母鸡每只3元。现在有100元,要求买100只鸡,编程列出所有可能的购鸡方案。

分析:

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

x+y+z=100

3x+2y+0.5z=100

程序一:

以下是引用片段:

Private Sub Command1_Click()

Dim x%, y%, z%

For x = 0 To 100

For y = 0 To 100

For z = 0 To 100

If x + y + z = 100 And 3 * x + 2 * y + 0.5 * z = 100 Then

Print x, y, z

End If

Next z

Next y

Next x

End Sub

程序二(优化)

以下是引用片段:

Private Sub Command1_Click()

Dim x%, y%

For x = 0 To 33

For y = 0 To 50

If 3 * x + 2 * y + 0.5 * (100 - x - y) = 100 Then

Print x, y, 100 - x - y

End If

Next y

Next x

End Sub

2) 高等数学

求积分

近似计算积分:s=∫13(x3+2x+5)dx

代码如下:

以下是引用片段:

Public Function f(ByVal x!) '被积函数

f = x * (x * x + 2) + 5

End Function

Public Function trapez(ByVal a!, ByVal b!, ByVal n%) As Single

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

Dim sum!, h!, x!

h = (b - a) / n

sum = (f(a) + f(b)) / 2

For i = 1 To n - 1

x = a + i * h

sum = sum + f(x)

Next i

trapez = sum * h

End Function

调用:

以下是引用片段:

Private Sub Command1_Click()

Print trapez(1, 3, 30)

End Sub

数论综合题

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

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

2、实战练习

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

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

以下是引用片段:

Option Explicit

Private Sub Command1_Click()

Dim I As Long, N As Long

For I = 11 To 300

(1)

If Verify(N) Then

(2)

End If

Next I

End Sub

Private Function Verify( (3) ) As Boolean

Dim A(0 To 9) As Integer, I As Integer, Js As Integer

Do While N <> 0

(4)

N = N \ 10

Loop

For I = 0 To 9

Js = Js + A(I)

Next I

(5)

End Function

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

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

12^2=144, 21^2=441,12 与 21 互逆 ,144 与 441 互逆 ,12 就是奇妙平方数。找出 1-300 以内所有的奇妙平方数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有