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.pvc01.com
什么是程序?程序= 数据结构+ 算法。

关于面向对象程序规划,着重的是数据结构,而关于面向进程的程序规划言语如C、P a s c a l、F O RT R A N等言语,首要重视的是算法。把握算法,也是为面向对象程序规划打下一个厚实的根底。那么,什么是算法呢?

人们运用核算机,便是要使用核算机处理各种不同的问题,而要做到这一点,人们就有必要事前对各类问题进行剖析,确认处理问题的详细办法和进程,再编制好一组让核算机履行的指令即程序,交给核算机,让核算机按人们指定的进程有效地作业。这些详细的办法和进程,其实便是处理一个问题的算法。根据算法,根据某种规矩编写核算机履行的指令序列,便是编制程序,而书写时所应恪守的规矩,即为某种言语的语法。

由此可见,程序规划的要害之一,是解题的办法与进程,是算法。学习高档言语的要点,便是把握剖析问题、处理问题的办法,便是练习剖析、分化,终究概括整理出算法的才能。与之相对应,详细言语,如C言语的语法是东西,是算法的一个详细完成。所以在高档言语的学习中,一方面应熟练把握该言语的语法,因为它是算法完成的根底,另一方面有必要认识到算法的重要性,加强思想练习,以写出高质量的程序。

下面经过例子来介绍怎么规划一个算法:

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

首要,得先有个当地装这三个数,咱们界说三个变量A、B、C,将三个数顺次输入到A、B、C中,别的,再预备一个M A X装最大数。因为核算机一次只能比较两个数,咱们首要把A与B比,大的数放入M A X中,再把M A X 与C比,又把大的数放入M A X中。最终,把M A X输出,此刻M A X中装的便是A、B、C三数中最大的一个数。算法能够表

示如下:

1) 输入A、B、C。

2) A与B中大的一个放入M A X中。

3) 把C与M A X中大的一个放入M A X中。

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

其间的2 )、3 )两步仍不清晰,无法直接转化为程序句子,能够持续细化:

2) 把A与B中大的一个放入M A X中,若A > B,则MAX ←A;不然MAX ←B。

3) 把C与M A X中大的一个放入M A X中,若C > M A X,则M A X←C。

所以算法最终能够写成:

1) 输入A,B,C。

2) 若A > B,则MAX ←A;

不然M A X←B。

3) 若C > M A X,则M A X←C。

4) 输出M A X,M A X即为最大数。
这样的算法现已能够很便利地转化为相应的程序句子了。

[例1-5] 山公吃桃问题:有一堆桃子不知数目,山公第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩余桃子的一半另加一个,天天如此,到第十天早上,山公发现只剩一只桃子了,问这堆桃子本来有多少个?

此题粗看起来有些无从着手的感觉,那么怎样开端呢?假定第一天开端时有a1只桃子,第二天有a2只,. . .,第9天有a9只,第1 0天是a1 0只,在a1, a2, . . .,a1 0中,只要a1 0= 1是知道的,现要求a1,而咱们能够看出,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

这便是此题的数学模型。

再调查上面从a9,a8直至a1的核算进程,这其实是一个递推进程,这种递推的办法在核算机解题中经常用到。另一方面,这九步运算从形式上彻底相同,不同的仅仅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 )步为循环。

<

 

 

 
阐明
:本教程来历互联网或网友上传或出版商,仅为学习研讨或媒体推行,pvc01.com不确保材料的完整性。
 
上一篇:高手解说:探究C++的隐秘之详解extern  下一篇:C言语的程序结构