《高级程序设计语言》 第二章 程序的灵魂——算法

高级程序设计语言 吴凡 TEL:89202682 E-mail:cdwf@tom.com
高级程序设计语言 吴 凡 TEL: 83202682 E-mail: cdwf@tom.com

第二章程序的灵魂——算法 20049-15
2004-9-15 第二章 程序的灵魂——算法

程序 ■程序包括两个方面: 对数据的描述,即数据结构( data structure) 对操作的描述(操作步骤),即算法( algorithm) 操作的对象是数据, 操作的目的是对数据进行加工处理,以获取结果 ■算法:解决”做什么”和”怎么做”的问题 语句( statements)只是算法的具体体现 ■沃思公式:数据结构+算法=程序 20049-15
2004-9-15 程序 ◼ 程序包括两个方面: ◼ 对数据的描述,即数据结构(data structure) ◼ 对操作的描述(操作步骤),即算法(algorithm) ◼ 操作的对象是数据, ◼ 操作的目的是对数据进行加工处理,以获取结果 ◼ 算法:解决”做什么”和”怎么做”的问题 ◼ 语句(statements)只是算法的具体体现 ◼ 沃思公式: 数据结构 + 算法 = 程序

算法的概念 ■算法(广义):为解决一个问题而采用的方法 和步骤 算法多样性 不同的算法具有简单和复杂的分别,但首要保 证算法正确性,再考虑算法的质量 ■计算机算法:是计算机为解决一个问题而采用 的方法和步骤 ■计算机算法的两大类: ■数值运算算法:目的求数值解 非数值运算算法:应用广泛 20049-15
2004-9-15 算法的概念 ◼ 算法(广义):为解决一个问题而采用的方法 和步骤。 ◼ 算法多样性 ◼ 不同的算法具有简单和复杂的分别,但首要保 证算法正确性,再考虑算法的质量。 ◼ 计算机算法:是计算机为解决一个问题而采用 的方法和步骤。 ◼ 计算机算法的两大类: ◼ 数值运算算法:目的求数值解 ◼ 非数值运算算法:应用广泛

简单算法举例 ■例21求5! 思考:给定正整数n,求n→应具有通用性、 灵活性 累加,累乘等运算问题的基本算法 累计结果tota):需要设定初值 变化量(〕:正确确定每次参与运算的变化量 累次计算,直到到达预期范围 tota= total OPERATORi运算符)i; 改变i值,重复计算 应用:例24 20049-15
2004-9-15 简单算法举例 ◼ 例2.1 求5! ◼ 思考:给定正整数n,求n → 应具有通用性、 灵活性 ◼ 累加,累乘等运算问题的基本算法 ◼ 累计结果(total):需要设定初值; ◼ 变化量(i):正确确定每次参与运算的变化量 ◼ 累次计算,直到i到达预期范围 ▪ total = total OPERATOR(运算符) i; ▪ 改变i值,重复计算 ◼ 应用:例2.4

简单算法举例 ■例23判断2000-2500年中的每一年是否闰年, 将结果输出 仔细确定判断条件,逐步缩小判断范围 对范围的确定要保证无遗漏 20049-15
2004-9-15 简单算法举例 ◼ 例2.3判断2000-2500年中的每一年是否闰年, 将结果输出。 ◼ 仔细确定判断条件,逐步缩小判断范围 ◼ 对范围的确定要保证无遗漏

算法的特性 ■有穷性:要确定合理的限定范围 ■确定性 有零个或多个输入 ■有一个或多个输出 ■有效性 20049-15
2004-9-15 算法的特性 ◼ 有穷性:要确定合理的限定范围 ◼ 确定性 ◼ 有零个或多个输入 ◼ 有一个或多个输出 ◼ 有效性

怎样表示一个算法 ■算法表示的方法: ■自然语言:通俗易懂,但文字冗长,不严格,易出现歧 义性 传统流程图:直观形象,易于理解 用图框表示各种操作。 用流程线表示各图框的执行顺序 要注意避免无规律的流程转向 结构化流程图(N-S流程图) 算法全部的矩形框内 无流程线 伪代码 PAD图 20049-15
2004-9-15 怎样表示一个算法 ◼ 算法表示的方法: ◼ 自然语言:通俗易懂,但文字冗长,不严格,易出现歧 义性 ➢ 传统流程图:直观形象,易于理解 ➢ 用图框表示各种操作。 ➢ 用流程线表示各图框的执行顺序 ➢ 要注意避免无规律的流程转向 ➢ 结构化流程图(N-S流程图) ➢ 算法全部的矩形框内 ➢ 无流程线 ◼ 伪代码 ◼ PAD图

程序设计的三种基本结构 ■顺序结构:自顶向下,无分支,无转移 ■选择结构:有分支,需条件判断 循环结构:有转移,某些语句需要重复执行 当型( While型)循环 直到型(Unt型)循环 ■这三种基本结构可以组成任意复杂的算法 20049-15
2004-9-15 程序设计的三种基本结构 ◼ 顺序结构: 自顶向下,无分支,无转移 ◼ 选择结构: 有分支,需条件判断 ◼ 循环结构: 有转移,某些语句需要重复执行 ◼ 当型(While型)循环 ◼ 直到型(Until型)循环 ◼ 这三种基本结构可以组成任意复杂的算法

顺序结构 ■顺序结构:自顶向下顺序执行,无分支,无转 移 a A AB B b 流程图表示法 NS图表示法 20049-15
2004-9-15 顺序结构 ◼ 顺序结构: 自顶向下顺序执行,无分支,无转 移 A B 流程图表示法 A B N-S图表示法 a b
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《高级程序设计语言》 第三章 数据类型、运算符与表达式.ppt
- 《高级程序设计语言》 第七章 数组.ppt
- 《高级程序设计语言》 第一章 C语言概述.ppt
- 《计算机辅助设计》AutoCAD教程讲义(共十章).doc
- 黑龙江八一农垦大学:《计算机辅助设计》理论课程各章电子教案.doc
- 黑龙江八一农垦大学:《计算机辅助设计》课程教学大纲(草业科学及园林专业).doc
- 《汇编语言程序设计教程》 第十章 保护模式及其编程.ppt
- 《汇编语言程序设计教程》 第九章 I/0程序设计.ppt
- 《汇编语言程序设计教程》 第八章 汇编语言高级编程技术.ppt
- 《汇编语言程序设计教程》 第七章 常用数据结构.ppt
- 《汇编语言程序设计教程》 第六章 子程序设计.ppt
- 《汇编语言程序设计教程》 第五章 分支与循环程序设计.ppt
- 《汇编语言程序设计教程》 第四章 数据操作.ppt
- 《汇编语言程序设计教程》 第三章 Windows汇编程序基础.ppt
- 《汇编语言程序设计教程》 第二章 Intel80x86系列微处理器.ppt
- 《汇编语言程序设计教程》 第一章 基础知识.ppt
- 《C语言》课程教学资源(作业习题)实例试题100题.doc
- 《网络程序设计》PPT电子课件(共三章).ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第九章(9-2) 面向对象设计.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第九章 远程软工.ppt
- 《高级程序设计语言》 第五章 选择结构程序设计.ppt
- 《高级程序设计语言》 第八章 函数.ppt
- 《高级程序设计语言》 第六章 循环控制.ppt
- 《高级程序设计语言》 第十一章 结构体与公用体.ppt
- 《高级程序设计语言》 第十章 指针.ppt
- 《高级程序设计语言》 第四章 顺序程序设计.ppt
- 上海交通大学:《接口技术》 实验教学大纲.doc
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)目录(孙德文).ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第十章 微型计算机系统实用接口技术.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第七章 中断.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第八章 可编程接口芯片及其应用.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第九章 总线技术.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第六章 中断控制器、DMA控制器和.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第一章 微型计算机概念.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第二章 80X86微处理器的结构.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第三章 80X86微处理器的指令系统.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第四章 汇编语言程序设计.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第五章 内存储器及其接口.ppt
- 上海交通大学:《微机原理与接口技术》课程PPT教学课件(微型计算机技术)第六章 输入输出.ppt
- 《人工智能》课程教学资源(PPT课件讲稿)第一章 人工智能(AI)概论 Artificial Intelligence.ppt