您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  VB常用算法(九)数学应用 【注册男护士专用博客】          

VB常用算法(九)数学应用

www.nanhushi.com     佚名   不详 

1、算法说明

1)        初等数学

         递推法

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

问题:猴子吃桃子

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

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

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

xnxn1/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只鸡,编程列出所有可能的购鸡方案。

分析:

设母鸡、公鸡、小鸡分别xyz只,则有:

xyz100

3x2y0.5z100

         程序一:

                  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

                      'ba分别为积分上下限,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 以内所有的奇妙平方数。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。