欢迎光临
我们一直在努力

计算机等级考试二级vb常用算法:排序_软件水平考试

建站超值云服务器,限时71元/月

  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中。


  VB






以下是引用片段:
  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 以内所有的奇妙平方数。


  VB

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 计算机等级考试二级vb常用算法:排序_软件水平考试
分享到: 更多 (0)