湖南工学院C语言程序设计课件 第2章.pptVIP

  • 14
  • 0
  • 约4.38千字
  • 约 40页
  • 2019-05-10 发布于广东
  • 举报

湖南工学院C语言程序设计课件 第2章.ppt

第2章 程序的灵魂—算法   著名计算机科学家沃思提出一个公式:    数据结构+算法=程序   实际上,一个程序还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,可以这样表示。 程序=算法+数据结构+程序设计方法+语言和环境   以上四个方面是一名程序设计语言所应具备的知识。在这四个方面中,算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。算法是解决“做什么”和“怎么做”的问题。   程序中的操作语句,实际上就是算法的体现。显然,不了解算法就谈不上程序设计。   本课程虽然不是专门讲算法的,但不会算法就达不到我们的目的—用C语言进行程序设计。   数据是操作对象,对操作的描述既是操作步骤,操作的目的是对数据进行加工处理得到期望的结果。   打个比方,厨师做菜肴,需要有菜谱。菜谱上一般应包括:(1)配料(数据)        (2)操作步骤(算法)         面对同一些原料可以加工出不同风味的菜肴。 §2.1 算法的概念    做任何事情都有一定的步骤,这些步骤都是有一定的顺序。不要以为只有“计算”的问题才有算法的。  什么叫做算法?为解决一个问题而采用的方法和步骤就称为“算法”。 例如:求 1+2+3+4+……+100 可先算1+2、再加3、再加4……直到加上100;  也可采用 100+(1+99)+(2+98)+……+(49+51)+50 本书所关心的算法只限于计算机算法。 计算机算法可分两大类:(1)数值运算算法 (2)非数值运算算法 数值运算:求数值解、如求方程根、函数        定积分等。 非数值运算:事物管理、图书检索、人事       管理、行车调度管理等。   目前计算机在非数值运算方面的应用远远超过了在数值运算反面的应用。由于数值运算有现成的模型,可以应用数值分析方法,算法比较成熟。本课程不可能罗列所有算法,只是通过一些典型算法的介绍,举一反三,帮助初学者如何设计一个算法,怎样表示一个算法。   §2.2 简单算法举例 例2、1 求1*2*3*4*5 设两个量:一个被乘数——P       一个乘数—n S1:P=1 S2:n=1 S3:P*n S4:n+1 S5:若n不大于5,重复执行S3、S4、S5 (若求1*3*5*7*9*11 呢? 将n+1改为n+2) 例2、2 有50个学生,将成绩在80分以上的      打印出来。 步骤如下: S1:n=1 S2:输入成绩G 大于等于80、则打印。 S3:n=n+1 S4:若n小于等于50、则返回 S2继续执行;    否则算法结束。  §2.3 算法的特性 一个算法具有以下特性: 1.有穷性   有限的操作步骤,在合理的范围之内。 2.确定性   每一步骤是确定的,而不应是含糊的,模棱两 可的。 3.有零个或多个输入   输入是从外界取得必要的信息。 4.有一个或多个输出   “解”就是输出,没有输出的算法是无意义的。 5.有效性   每一步骤都应是有效的执行,到有确定的结果。 § 2.4 怎样表示一个算法 有五种表示方法: 1、自然语言 2、传统流程图 3、N—S流程图 4、结构化流程图 5、伪代码 、PAD图 2.4.1 用自然语言表示算法 用自然语言表示通俗易懂,但容易出现 “歧异性”。 2.4.2 用传统流程图表示算法 直观形象,易于理解。成为世界各国程序  工作者普遍采用。 下面给出传统流程图的说明: 处理框:有一个入口 一个出口; 判断框:有一个入口,两个出口。 2.4.3 三种基本结构和改进的流程图   传统的流程图用流程线指出各框的执行顺序,对流程线可以随意地转来转去,无规律。     三种基本结构:     1、顺序结构     2、选择结构    3、循环结构 顺序结构: 平铺直叙的向下顺序执行,即执行A操作后,执行B操作。 选择结构: 或称选取、分支结构,根据给定条件决定执行A操作和执行B操作。 循环结构: 又称重复结构,即反复执行某一部分的操作。 练习: 1、 用传统流程图画出 19!。   E=1*2*……*19 2、 求 一元二次方程的跟。   ax2+bx+c=0 3、输入一个数X,判断是否为偶数。  ( 开始 )  N    T19  (结束 ) 例 2.4  求 1-1/2+1/3-1/4+…+1/99-1/100 sign—符号 sum —累加和 deno—分母 Term—项 deno100 算法结束 例2.5  对一个大于或等于3的正整数,判断它是否为素数。 所

文档评论(0)

1亿VIP精品文档

相关文档