所在的位置: C++ >> C++发展 >> C语言19程序算法

C语言19程序算法

北京雀斑防治医院 http://m.39.net/pf/a_9113640.html

一个程序应包括两个方面的内容:

1)对数据的描述:数据结构(datastructure)

2)对操作的描述:算法(algorithm)

著名计算机科学家沃思提出一个公式:数据结构+算法=程序

完整的程序设计应该是:

那什么是算法呢,广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可有不同的解题方法和步骤,例如:求1-的和

方法1:1+2,+3,+4,一直加到加99次

方法2:+(1+99)+(2+98)+…+(49+51)+50

=+49×+50加51次

为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。希望方法简单,运算步骤少。

计算机算法可分为两大类别:

1)数值运算算法:求数值解,例如求方程的根、求函数的定积分等。

2)非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。

又例如:求1×2×3×4×5的积?

步骤1:先求1×2,得到结果2

步骤2:将步骤1得到的乘积2再乘以3,得到结果6

步骤3:将6再乘以4,得24

步骤4:将24再乘以5,得

如果要求1×2×…×0,则要写个步骤,这样是不是太繁琐?有没有简便的思路呢?

可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果,算法可改写:

S1:使p=1

S2:使i=2

S3:使p×i,乘积仍放在变量p中,可表示为:p×i=p

S4:使i的值加1,即i+1=i。

S5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。

用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。这就是算法。

算法的特性:

1)有穷性:包含有限的操作步骤

2)确定性:算法中的每一个步骤都应当是确定的

3)有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息

4)有一个或多个输出:算法的目的是为了求解,“解”就是输出

5)有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果。

休息一下,明天我们继续讲解:算法的表示




转载请注明:http://www.aierlanlan.com/tzrz/4935.html

  • 上一篇文章:
  •   
  • 下一篇文章: