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

第二章程序的灵魂—算法 程序=数据结构+算法+程序设计方法+语言工具和环境 1、对数据的描述。(配料,指出应使用那些原料) 2、对操作的描述。(操作步骤,如何用料做成菜肴 3、程序设计方法。 4、语言工具和环境
第二章 程序的灵魂——算法 1、对数据的描述。(配料,指出应使用那些原料) 2、对操作的描述。(操作步骤,如何用料做成菜肴) 3、程序设计方法。 4、语言工具和环境。 程序=数据结构+算法+程序设计方法+语言工具和环境

算法的概念 为解决一个问题而采取的方法和步骤 就称为算法。 从北京到天津开会 首歌曲的谱子 太极拳图解 计犷机算法分灭大类:数值运算算法和 非数值运算算法
一、算法的概念 为解决一个问题而采取的方法和步骤, 就称为算法。 •从北京到天津开会 •一首歌曲的谱子 •太极拳图解 计算机算法分两大类:数值运算算法和 非数值运算算法

简单算法举例 例2.1:求1*2*3*4*5 方法 步骤1:先求1*2,得到结果2。 步骤2:将步骤1得到的乘积2再乘以3,得到结果6。 步骤3:将步骤2得到的乘积6再乘以4,得到结果24 步骤4:将步骤3得到的乘积24再乘以5, 得到最后结果120
简单算法举例 例2.1:求1*2*3*4*5 方法一: •步骤1:先求1*2,得到结果2。 •步骤2:将步骤1得到的乘积2再乘以3,得到结果6。 •步骤3:将步骤2得到的乘积6再乘以4,得到结果24。 •步骤4:将步骤3得到的乘积24再乘以5, 得到最后结果120

方法二: 步骤1:设p=1(p为乘数)。 步骤2:设i2(i为被乘数) 步骤3:使p*,乘积仍放在变量p中,可表示为pp3*i 步骤4:使i的值加1,可表示为i=i1。 步骤5:如果大于5,返回重新执行步骤3、4、5; 否则算法结束。最后求得的p的值就是5!的值
方法二: •步骤1:设p=1(p为乘数)。 •步骤2:设i=2(i为被乘数)。 •步骤3:使p*i,乘积仍放在变量p中,可表示为p=p*i。 •步骤4:使i的值加1,可表示为i=i+1 。 •步骤5:如果i不大于5,返回重新执行步骤3、4、5; 否则算法结束。最后求得的p的值就是5!的值

例1有两个变量A和B,将它们的值交换。 例2输入3个整数a,b,C,按由大到小的顺序输出。 例3从10个数中找出最大的数。 例4用辗转相除法求两个正整数m和n的最大公约数 例5给定一个正整数M,判断它是否为素数
例1 有两个变量A和B,将它们的值交换。 例2 输入3个整数a,b,c,按由大到小的顺序输出。 例3 从10个数中找出最大的数。 例4 用辗转相除法求两个正整数m和n的最大公约数。 例5 给定一个正整数M,判断它是否为素数

二、算法的特点 1、有穷性:一个算法应包含有限的操作步 骤,而不能是无限的。 2、确定性:算法中每一个步骤都应当是确 定的,不能含糊、模棱两可。 3、有零个或多个输入 4、有一个或多个输出。 5、有效性
二、算法的特点 1、有穷性:一个算法应包含有限的操作步 骤,而不能是无限的。 2、确定性:算法中每一个步骤都应当是确 定的,不能含糊、模棱两可。 3、有零个或多个输入。 4、有一个或多个输出。 5、有效性

算法设计的要求 1正确性。算法应当满足具体问题的需求。“正确” 的含义在通常的用法中有很大差别,大体 可分为四个层次: a.程序不含语法错误 b.程序对几组输入数据能够得出满足规格说明 要求的结果。 c.程序对于精心选择的典型、苛刻而带有刁 难性的几组输入数据能够得岀满足规格说 明要求的结果 d.程序对于一切合法的输入数据都能产生满足 规格说明要求的结果
三、算法设计的要求 1 正确性。算法应当满足具体问题的需求。“正确” 一词 的含义在通常的用法中有很大差别,大体 可分为四个层次: a. 程序不含语法错误。 b. 程序对几组输入数据能够得出满足规格说明 要求的结果。 c. 程序对于精心选择的典型、苛刻而带有刁 难性的几组输入数据能够得出满足规格说 明要求的结果。 d. 程序对于一切合法的输入数据都能产生满足 规格说明要求的结果

、算法设计的要求 2可读性。算法主要是为了人的阅读和交流,可读性 好有助于人对算法的理解 3健壮性。当输入数据非法时,算法也能适当做出 反应或进行处理,而不会产生莫名其妙 的输出结果。 4效率与低存储量需求。效率指算法执行的时间; 存储量需求算法执行过程中所需要的 最大存储空间
2 可读性。算法主要是为了人的阅读和交流,可读性 好有助于 人对算法的理解。 3 健壮性。当输入数据非法时,算法也能适当做出 反应或进行处理,而不会产生莫名其妙 的输出结果。 4 效率与低存储量需求。效率指算法执行的时间; 存储量需求算法执行过程中所需要的 最大存储空间。 三、算法设计的要求

四、算法的描述。 常用的描述工具有:自然语言,流程图,N-S结构 化流程图,PAD图,伪代码等。 1.程序流程图 流程图是一种传统的算法表示法,它利用几何图形 框来代表各种不同性质的操作,用流程线来指示算法的 执行方向。由于它简单直观,所以应用广泛,特别是在 早期语言阶段,只有通过流程图才能简明地表述算法, 流程图成为程序员们交流的重要手段,直到结构化的程 序设计语言出现,对流程图的依赖才有所降低
四、算法的描述。 常用的描述工具有:自然语言,流程图,N-S结构 化流程图,PAD图,伪代码等。 1. 程序流程图 流程图是一种传统的算法表示法,它利用几何图形 框来代表各种不同性质的操作,用流程线来指示算法的 执行方向。由于它简单直观,所以应用广泛,特别是在 早期语言阶段,只有通过流程图才能简明地表述算法, 流程图成为程序员们交流的重要手段,直到结构化的程 序设计语言出现,对流程图的依赖才有所降低

常用符号: 处理框 判断框 输入输出框 起始框 流程线
处理框 判断框 起始框 流程线 输入/输出框 常用符号:
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第一章 C语言概述.ppt
- 《C语言程序设计》课程电子教案:第八章 数组作为函数参数.doc
- 《C语言程序设计》课程电子教案:第八章 函数的嵌套调用和递归调用.doc
- 《C语言程序设计》课程电子教案:第八章 函数的定义、调用.doc
- 《C语言程序设计》课程电子教案:第七章 数组.doc
- 《C语言程序设计》课程电子教案:第七章 字符数组.doc
- 《C语言程序设计》课程电子教案:第七章 数组.doc
- 《C语言程序设计》课程电子教案:第六章 循环控制.doc
- 《C语言程序设计》课程电子教案:第六章 循环控制.doc
- 《C语言程序设计》课程电子教案:第五章 选择结构程序设计.doc
- 《C语言程序设计》课程电子教案:第五章 选择结构程序设计.doc
- 《C语言程序设计》课程电子教案:第四章 顺序程序设计.doc
- 《C语言程序设计》课程电子教案:第三章 运算符与表达式.doc
- 《C语言程序设计》课程电子教案:第三章 数据类型.doc
- 《C语言程序设计》课程电子教案:第二章 程序的灵魂——算法.doc
- 《C语言程序设计》课程电子教案:第一章 C语言概述.doc
- 《多媒体技术》课程PPT教学课件:第7章 多媒体计算机硬件.ppt
- 《多媒体技术》课程PPT教学课件:第6章 多媒体数据压缩技术.ppt
- 《多媒体技术》课程PPT教学课件:第5章 视频.ppt
- 《多媒体技术》课程PPT教学课件:第4章 动画.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 最简单的C程序设计——顺序程序设计.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
- 《C语言程序设计》课程教学资源:习题2(第7-第10章).doc
- 《C语言程序设计》课程教学资源:习题1(第1-第6章).doc
- 《网页设计教程》PPT课件:第1章 网页制作初识.ppt
- 《网页设计教程》PPT课件:第10章 JavaScript和DHTML技术.ppt
- 《网页设计教程》PPT课件:第11章 示例网页利用ASP实现交互功能.ppt
- 《网页设计教程》PPT课件:第12章 利用ADO实现网页与数据库的链接.ppt
- 《网页设计教程》PPT课件:第2章 创建站点.ppt
- 《网页设计教程》PPT课件:第3章 网页文本的处理.ppt
- 《网页设计教程》PPT课件:第4章 网页表格的处理.ppt