C语言程序设计 第2章 程序的灵魂--算法.ppt

C语言程序设计 第2章 程序的灵魂--算法.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 第2章 程序的灵魂--算法

主讲: 联系方式: 回顾: 1什么是程序和编程语言 2C程序的结构和上机步骤 目标: 1 理解什么是算法,算法的特性 2 简单算法的举例 3 了解描述一个算法的不同方法 4 掌握结构化程序设计方法 正确性、可读性、健壮性、效率与低存储量需求 ; 例4 将例1的传统流程图改画为 N-S 流程图 例5 将例3的改进流程图改为N-S 流程图 用伪代码表示算法 用计算机语言表示算法 C语言编程基础 第三讲 程序的灵魂—算法 第三讲 算法 第三讲 目标 算法引言 第三讲 算法引言 完整的程序设计应该是: 著名计算机科学家沃思提出一个公式 数据结构+算法+程序设计方法+语言工具 数据结构+算法=程序 什么是算法 广义:为解决一个问题而采用的方法和步骤 计算机算法:给定初始状态或输入数据,经过计算机程序的有限次运算,能够得出所要求或期望的终止状态或输出数据。包含数值运算算法和非数值运算算法 第三讲 什么是算法 算法的特性 第三讲 算法的特性 (1)有穷性:有限的操作步骤且在合理的范围内 (2)确定性:算法的描述必须无歧义,以保证算法的执行结果是确定的。 (3)有效性:又称可行性,每个步骤都能有效地执行,并得到确定的结果 (4)输入:一个算法必须有零个或多个输入量 (5)输出:个算法应有一个或多个输出量 算法示例 我们需要将华氏温度转换成摄氏温度。完成这个转换的算法如下: 第一步:获取一个以华氏温度输入的数值。让我们称其为 fahrenheit。 第二步:通过公式 celsius = 5 * (fahrenheit - 32)/9 将之转化成摄氏温度值。 第三讲 算法示例 有关各种类型算法的分类将帮助我们选择一个 合适的方法来评价一个算法的效率和正确性。 我们可以将算法分为三类: 有限的、确定性算法 有限的、非确定性算法 无限的算法 算法的种类 第三讲 算法种类 有限的、确定性算法 第三讲 算法种类 这类算法会在有限的一段时间内终止 这类算法得出的结果常取决于输入值。如果输入已知,那么它们就可以得出确切的结果 示例: 1 求二次方程式的根 2 求出 1 到 1,000,000 之间的所有素数 有限的非确定性算法 第三讲 算法种类 这些算法也会在有限时间内终止。然而,对于给定的输入,这种算法的结果可能并不是唯一的或确定的。 示例:请考虑用于生成随机数的算法。 无限算法是那些由于没有定义终止条件,或定义的条件无法由输入的数据满足而不终止运行的算法 示例:监控核反应堆里的温度就是一个无限算法。只要反应堆在运行,那么这个连续的任务就会一直进行下去。此任务会一直运行,直至有一个外部刺激来停止它。 无限算法 算法的设计要求 第二章 2.2 常量和变量 算法的描述 自然语言—日常使用的语言(通俗易懂,但文字冗长,容易出现“歧义性”) 流程图(传统的流程图、改进的流程图、N-S流程图) 伪代码 第三讲 算法描述 计算机语言 可以用不同的方法描述算法,常用的有: 流程图表示算法 第三讲 流程图 流程图用规定式样的图形、指向线和文字组合起来表示算法.其优点是直观、清晰、易懂,便于检查、修改和交流.ANSI规定了一些常用的流程图符号: 起止框 判断框 处理框 输入/输出框 注释框 流向线 连接点 传统的流程图 例1 将求5!的算法用流程图表示 如果需要将最后结果打印出来,可在菱形框的下面加一个输出框 例2 将判定闰年的算法用流程图表示 用流程图表示算法要比用文字描述算法逻辑清晰、易于理解。 第三讲 流程图 小结 流程图是表示算法的较好的工具。一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。 第三讲 流程图 三种基本结构和改进的流程图 1.传统流程图的弊端 传统流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。因此,使用者可以毫不受限制地使流程随意地转向,使流程图变得毫无规律,阅读者要花很大精力去追踪流程,使人难以理解算法的逻辑。如图: 第三讲 流程图 传统流程图的流程可以是: 这种如同乱麻一样的算法称为BS型算法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。 缺点:难以阅读、修改,使算法的可靠性和可维护性难以保证。 解决办法:必须限制箭头的滥用,即不允许无规律地使流程随意转向,只能顺序地进行下去。 算法的两大要素 算术运算、逻辑运算、函数运算等等; 控制结构控制着算法的各操作的执行顺序. 控制结构 第三讲 算法结构 操作 第三讲 算法结构 基本控制结构 通常一个算法只能由三种基本控制结构组成,这三种基本结构是: 顺序结构; 选择结构; 循环结构; 第三讲 算法结构 顺序

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档