《c课件正式第二章概要》由会员分享,可在线阅读,更多相关《c课件正式第二章概要(17页珍藏版)》请在金锄头文库上搜索。
1、C 程序设计 主讲 李莉,第2章 程序的灵魂算法,2.1 算法的概念 一、程序数据结构算法 程序算法数据结构程序设计方法 语言工具和环境 二、算法 1. 算法:为解决一个问题而采取的方法及 步骤,就称为一个算法。,2. 算法的分类: 数值算法 非数值算法 1)数值算法:数值算法具有现成的数学模型,其研究比较深入,通常把这些算法汇集起来,编制为现成的程序,供人们调用。 2)非数值算法:其种类繁多,要求各异,难以规范化,通常只对一些典型的非数值算法进行研究,如排序等。,2.2 简单的算法举例 例: 求12345 12345 2345 6 45 245 120,S1: 使p=1 S2: 使i=2 S
2、3: 使pi,乘积仍放在p中,表示为pip S4: 使i的值加1,即i+1 i S5: 如果i不大于5,则返回S3;否则,算法结束,最后得到的p值即为5!。,思考1 如果题目改为1357911,算法如何改动? S1: 1 p S2: 3 i S3: pip S4: i2 i S5: 如果i=11,则返回S3;否则,结束。,思考2 如果题目改为2468910, 算法如何改动? S1: 0 sum S2: 2 i S3: sumisum S4: i2 i S5: 如果i=10,则返回S3;否则,结束。 思考3 如果S5改为i10,其结果如何? 如果S1改为2 sum,其结果如何?,2.3 算法的特
3、性 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性,算法应包含有限的操作步骤,而不能是无限的。,算法中的每一个步骤都应当是确定的,而不应是含糊、模棱两可的,算法中的每一个步骤都应当能够有效的执行,并得到确定的结果,输入可使算法从外界取得必要的信息,2.4 算法的表示方法 用自然语言表示 用流程图表示,缺点是文字冗长,容易有“歧义”,一、举例 例1: 求5!,其算法 流程图如右 所示。,例2: 将50名学 生中成绩 在80分以 上的学生 的学号及 成绩打印 出来。,二、流程图的三种基本结构 1. 传统流程图的弊端 流程线指出算法的执行顺序,但未对流程线的使用作严格限制,因此,可能会导
4、致算法执行时毫无规律地在各框之间进行流转,使人难以理解算法的逻辑结构,难以跟踪算法的执行过程等。 2. 三种基本结构 将整个算法由上而下地用各个基本结构顺序排列起来,可以提高算法的质量。,1)顺序结构:是最简单的一种基本结构,如右图所示。,2)选择结构: 根据给定的条件p选择执行A或者B。,3)循环结构 (1)当型(while)循环结构 (2)直到型(Until)循环,3. 三种基本结构的共同特点 1)只有一个入口 2)只有一个出口 3)结构内的每一个部分都有机会被执行 4)结构内不存在“死循环” 已经证明,任何复杂的问题都可以通过由以上三种基本结构顺序组成的算法结构来解决。,不要将菱形框的两个出口和选择结构的出口混淆,2.5 结构化程序设计方法 一、结构化程序:用高级语言表示的结构化的算法即为结构化程序。 用三种基本结构组成的程序一定是结构化的程序,它便于编写、阅读、修改和维护。 二、进行结构化程序设计的方法 自顶向下 逐步细化 模块化设计 结构化编码,