<em id="lwy0s"></em>
      1. <div id="lwy0s"></div>
      2. AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
        Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
         首页 > C语言

        算法

        51自学网 2015-09-08 http://www.40288265.com
        什么是程序程序= 数据结构+ 算法

        对于面向对象程序设计强调的是数据结构而对于面向过程的程序设计语言如CP a s c a lF O RT R A N等语言主要关注的是算法掌握算法也是为面向对象程序设计打下一个扎实的基础那么什么是算法呢

        人们使用计算机就是要利用计算机处理各种不同的问题而要做到这一点人们就必须事先对各类问题进行分析确定解决问题的具体方法和步骤再编制好一组让计算机执行的指令即程序交给计算机让计算机按人们指定的步骤?#34892;?#22320;工作这些具体的方法和步骤其实就是解决一个问题的算法根据算法依据某种规则编写计算机执行的命令序列就是编制程序而书写时所应遵守的规则即为某种语言的语法

        由此可见程序设?#39057;?#20851;键之一是解题的方法与步骤是算法学习高级语言的重点就是掌握分析问题解决问题的方法就是锻炼分析分解最终归纳整理出算法的能力与之相对应具体语言如C语言的语法是工具是算法的一个具体实现所以在高级语言的学习中一方面应熟练掌握该语言的语法因为它是算法实现的基础另一方面必须认识到算法的重要性加强思维训练以写出高质量的程序

        下面通过例子来介绍如何设计一个算法

        [例1-4] 输入三个数然后输出其中最大的数

        首先得先有个地方装这三个数我们定义三个变量ABC将三个数依?#38382;?#20837;到BC中另外再准备一个M A X装最大数由于计算机一次只能比较两个数我们首先把A与B比大的数放入M A X中再把M A X 与C比又把大的数放入M A X中最后把M A X输出此时M A X中装的就是¡C三数中最大的一个数算法可以表

        示如下

        1) 输入ABC

        2) A与B?#20889;?#30340;一个放入M A X中

        3) 把C与M A X?#20889;?#30340;一个放入M A X中

        4) 输出M A XM A X即为最大数

        其中的2 )3 )两步仍不明确无法直接转化为程序语句可以继续细化

        2) 把A与B?#20889;?#30340;一个放入M A X中若A > B则MAX A否则MAX B

        3) 把C与M A X?#20889;?#30340;一个放入M A X中若C > M A X则M A XC

        于是算法最后可以写成

        1) 输入ABC

        2) 若A > B则MAX A

        否则M A XB

        3) 若C > M A X则M A XC

        4) 输出M A XM A X即为最大数
        这样的算法已经可以很方便地转化为相应的程序语句了

        [例1-5] 猴子吃桃问题有一堆桃子不知数目猴子第一天吃掉一半觉得不过瘾又多吃了一只第二天照此办理吃掉剩下桃子的一半另加一个天天如此到第十天早上猴子发?#31181;?#21097;一只桃子了问这堆桃子原来有多少个

        此题粗看起来?#34892;?#26080;从着手的感觉那么怎样开始呢假设第一天开始时有a1只桃子第二天有a2只. . .第9天有a9只第1 0天是a1 0只在a1, a2, . . .a1 0中只有a1 0= 1是知道的现要求a1而我?#24378;?#20197;看出a1, a2, . .a1 0之间存在一个简单的关系

        a9= 2 * ( a1 0+ 1 )

        a8= 2 * ( a9+ 1 )

        a1= 2 * ( a2+ 1 )

        也就是ai= 2 * ( ai + 1+1) i=9,8,7,6,...,1

        这就是此题的数学模型

        再考察上面从a9a8直至a1的计算过程这其实是一个递推过程这种递?#39057;?#26041;法在计算机解题中经常用到另一方面这九步运算?#26377;问?#19978;完全一样不同的只是ai的下标而已由此我们引入循环的处理方法并统一用a0表示前一天的桃子数a1表示后一天的桃子数将算法改写如下

        1) a1=1; 第1 0天的桃子数a1的初值

        i = 9计数器初值为9

        2) a0= 2 * ( a1+ 1 )计算当天的桃子数

        3) a1= a0将当天的桃子数作为下一次计算的初值

        4) i=i-1

        5) 若i > = 1转2 )

        6) 输出a0的值

        其中2 )5 )步为循环

        <

         

         


        ?#24471;?/font>
        本教程来源互联网或网友上传或出版商仅为学习研究或?#25945;?#25512;广51zixue.net不保证资料的完整性
        上一篇高手讲解探索C++的秘密之详解extern  下一篇C语言的程序结构
        11ѡ5

            <em id="lwy0s"></em>
          1. <div id="lwy0s"></div>

                <em id="lwy0s"></em>
              1. <div id="lwy0s"></div>