《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 算法

C语言程序设计 第2章算法
第2章 算法 C 语言程序设计

●主要内容 21算法的概念 22怎样表示个算法 23算法的特性 24简单算法举例 25结构化程序设计方法 2021/2/24
2021/2/24 2.1 算法的概念 2.2 怎样表示一个算法 2.3 算法的特性 2.4 简单算法举例 2.5 结构化程序设计方法 ⚫ 主要内容

个程序应包括两个方面的内容 ●对数据的描述:数据结构( data structure) ●对操作的描述:算法( algorithm) 著名计算机科学家沃思提出一个公式 数据结构+算法=程序口 完整的程序设计应该是: 数据结构十算法十程序设计方法十语言工具 2021/2/24
2021/2/24 一个程序应包括两个方面的内容: ⚫ 对数据的描述:数据结构(data structure) ⚫ 对操作的描述:算法(algorithm) 著名计算机科学家沃思提出一个公式: 数据结构+ 算法 = 程序 数据结构+算法+程序设计方法+语言工具 完整的程序设计应该是:

21算法的概念 什么是算法 为解决某一应用问题而采用的解题步骤 算法的历史 “算法”即演算法出自《周髀算经》 ●英文名称 Algorithm ●欧几里得算法被人们认为是史上第一个算 法 2021/2/24
2021/2/24 2.1 算法的概念 ⚫ 什么是算法 – 为解决某一应用问题而采用的解题步骤 – 算法的历史 ⚫“算法”即演算法出自《周髀算经》 ⚫英文名称Algorithm ⚫欧几里得算法被人们认为是史上第一个算 法

2.2怎样示一个算法 用自然语言描选算法 例如:输出两个数中的最大数 第一步:输入x和y的值 第二步:比较x和y的值,如果x大于y,则输出x 的值,否则输出y的值。 易于理解,但 例如当描述“输出10个 冗长,不够精数中最大数”的算法时, 确,难于描述会冗长、难于理解 复杂算法。 2021/2/24
2021/2/24 用自然语言描述算法 第一步:输入x和y的值 第二步:比较x和y的值,如果x大于y,则输出x 的值,否则输出y的值。 易于理解,但 冗长,不够精 确,难于描述 复杂算法。 例如当描述“输出10个 数中最大数”的算法时, 会冗长、难于理解 例如:输出两个数中的最大数 2.2 怎样表示一个算法

用流程图描述算法 起止框(开始 输入输出框/输入x和y 判断框 x 2y 处理框z=x 流程线 输出z 结束 用流程图描述算法 2021/2/24
2021/2/24 用流程图描述算法 用流程图描述算法 Y N z= x z= y x >y ? 开始 输入x和y 结束 输出z 起止框 输入/输出框 判断框 处理框 流程线

●流程图是表示算法的较好的工具 个流程图包括以下几部分: (1)表示相应操作的框 (2)带箭头的流线; (3)內外必要的文字说明。 ●用流程图表示算法直观形象,比较清楚地 显示出各个框之间地逻辑关系。但是这种 流程图占用篇幅较多,尤其当算法比较复 杂时,画流程图既费时又不方便 2021/2/24
2021/2/24 ⚫ 流程图是表示算法的较好的工具。 一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。 ⚫ 用流程图表示算法直观形象,比较清楚地 显示出各个框之间地逻辑关系。但是这种 流程图占用篇幅较多,尤其当算法比较复 杂时,画流程图既费时又不方便

三种基本结构和改进的流程图 ●传统的流程图用流程线指出各框的执行顺序,对 流程线的使用没有严格限制。因吡使用者可以毫 不受限制地使流程随意地转来转去,使流程图变 得毫无规律,阅读者要花很大精力去追踪流程 使人难以理解算法的逻辑。 ●为了提高算法的质量,使算法的设计和阅读方便 必须限制箭头的滥用,既不允许无规律地使流程 随意转向,只能顺序地进行下去。但是,算法上 人们规定出几种基本结构,然后由这些基本结构 按一定规律组成一个算法结构。 2021/2/24
2021/2/24 三种基本结构和改进的流程图 ⚫ 传统的流程图用流程线指出各框的执行顺序,对 流程线的使用没有严格限制。因此使用者可以毫 不受限制地使流程随意地转来转去,使流程图变 得毫无规律,阅读者要花很大精力去追踪流程, 使人难以理解算法的逻辑。 ⚫ 为了提高算法的质量,使算法的设计和阅读方便, 必须限制箭头的滥用,既不允许无规律地使流程 随意转向,只能顺序地进行下去。但是,算法上 难免会包含一些分支和循环,为了解决这个问题, 人们规定出几种基本结构,然后由这些基本结构 按一定规律组成一个算法结构

三种基本结构和改进的流程图 ●程序的三种基本结构 顺序结构程序:按照书写顺序依次执行语句 选择结构程序:按照条件判断选择执行语句 循环结构程序:通过条件控制循环执行语句 三种基本结构的共同点: 都是只有一个入口和一个出口; 结构内的每一个框都有机会被执行 结构内没有死循环。 2021/2/24
2021/2/24 三种基本结构和改进的流程图 ⚫ 程序的三种基本结构 –顺序结构程序:按照书写顺序依次执行语句 –选择结构程序:按照条件判断选择执行语句 –循环结构程序:通过条件控制循环执行语句 三种基本结构的共同点: • 都是只有一个入口和一个出口; • 结构内的每一个框都有机会被执行; • 结构内没有死循环

小结 ●由三种基本结构顺序组成的算法结鹁 可以解决任何复杂的问题。由基本结 构所构成的算法属于“结构化"的算 法,它不存在无规律的转响,只在本 基本结构内才允许存在分克和向前或 向后的躜转。 2021/2/24
2021/2/24 小结: ⚫ 由三种基本结构顺序组成的算法结构, 可以解决任何复杂的问题。由基本结 构所构成的算法属于“结构化”的算 法,它不存在无规律的转向,只在本 基本结构内才允许存在分支和向前或 向后的跳转
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 数组.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 顺序结构程序设计.ppt
- 上海交通大学:《C++程序设计》课程教学大纲 C++ Programming(主讲:王群慧).doc
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)程序调试简介.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第八章 类与对象(2/2).ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第八章 类与对象(1/2).ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第七章 自定义数据类型.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第六章 指针.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第五章 数组.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)作用域和生存期.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第四章 模块化与函数.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第三章 结构化程序设计.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符、表达式.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第一章 初步知识.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)课程简介.ppt
- 21世纪高职高专规划教材:《计算机网络技术实训教程》PDF电子书(共八章)(史秀璋).pdf
- 华中科技大学出版社:《深度探索C++对象模型》PDF电子书(候捷).pdf
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第三章 集合论基础.ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第三章 集合论基础.ppt
- 东北大学:《离散数学》课程教学资源(试题)2001级总本.doc
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数与预处理命令.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环结构程序设计.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数与预处理命令.ppt
- 河南工业大学:《微机原理与接口技术》第一章 计算机基本知识.ppt
- 河南工业大学:《微机原理与接口技术》第二章 8086体系结构.ppt
- 河南工业大学:《微机原理与接口技术》第三章 8086的指令系统.ppt
- 河南工业大学:《微机原理与接口技术》第四章 8086汇编语言程序设计.ppt
- 河南工业大学:《微机原理与接口技术》第五章 存储器原理与接口.ppt
- 河南工业大学:《微机原理与接口技术》第六章 微型计算机的输入/输出.ppt
- 河南工业大学:《微机原理与接口技术》第七章 可编程接口芯片.ppt
- 河南工业大学:《微机原理与接口技术》第八章 串行输入/输出接口.ppt
- 河南工业大学:《微机原理与接口技术》第九章 中断.ppt
- 《Visual C++编程技术》课程电子教案(讲义)第1章 Visual c++6.0基本应用程序的创建.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第2章 Windows编程与MFC基础.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第3章 面向对象程序设计与C++语言.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第4章 基本输入—键盘和鼠标消息.pdf