- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 算法初步 算法 解题过程的精确描述 可完全精确执行、有确定结果的有穷指令序列 算法的控制结构 选择结构(如:C语言的 if 语句) 循环结构(如:C语言的 while 语句) 顺序结构(语句组) 3种结构可以满足各种算法的所有控制要求 算法描述的必要性 程序设计过程:算法设计 + 程序实现 算法描述: 描述解题逻辑,验证正确性 独立于程序设计语言 程序实现: 利用程序设计语言的功能,实现算法 熟悉语言的语法、语义、支撑环境 算法描述方法 流程图 伪码 伪码描述例:求5个整数之和 数据分析 sum 保存已经输入的整数之和 算法描述: 赋值 0 ? sum 重复执行 5 次 2.1 读入一个整数 2.2 累加到 sum 输出整数和 sum 仅考虑主要数据对象和控制结构 程序实现阶段考虑数据和控制结构的具体实现 3.1 实例1:考试成绩统计 任务: 输入某班级人数和某课程的考试成绩(100分制),输出及格率(=60)和不及格率。 基本方法 输入学生人数后,逐个输入成绩,判断及格否,统计及格人数和不及格人数 数据分析 班级人数 num 及格人数 pass 不及格人数 fail 输入成绩 score 过程描述(流程图) 算法的验证 模拟算法的计算过程,跟踪数据的变化 程序结构设计 流程图的结构 从外层到内层 顺序 ? 循环 ? 选择 程序结构 复合语句 ? while 语句 ? if 语句 while 条件:num == 0 if 条件:score 60 细节问题 输出格式: 65.5% 涉及浮点数的处理 程序实现 #include stdio.h main( ) { int num, pass, fail, score; while( 0 != num ) { } } 语言现象 赋值表达式 pass = (fail = 0) 赋值运算符 = 右结合 简化赋值(自反运算) pass += 1 等价于 pass = pass + 1 printf(“passed %lf\%\n”,pass*100.0/num); 转义字符 \% 用于输出 % 设计方法分析 Programs=Algorithms+Data Strcture 程序 = 算法 + 数据结构 程序设计过程 问题定义:输入输出要求(数据与格式) 数据结构:分析需要保存的数据 算法设计:编制解题步骤 程序编码:选用程序设计语言,实现解题步骤 程序测试:排错和测试 学习方法 算法的学习(长期任务) 利用变量就是存储器的概念,考虑解题过程中必须保存的数据 利用3种控制结构(顺序、选择、循环),考虑数据变化过程,设计处理过程 应能够熟练地设计数据结构和简单的算法 程序设计语言的学习 阅读程序实例,理解新的语言现象 程序设计实践,上机排错调试 对主要语言功能和上机编程操作应该达到十分熟练 3.2 实例2 计算最大公约数 任务 给定两个正整数,计算最大公约数 算法(欧几里德算法) n 如果 n 整除 m gcd( m, n ) = gcd( n, mod(m,n) ) 否则 条件 m n mod(m, n) 表示除法余数 算法设计 基本思路 对于递归定义,采用循环结构完成一个递推处理过程 数据分析 两个整数m, n的保存,余数的保存x 算法描述 输入2个整数?m, n 如果mn, 则 交换m, n的内容 m除以n的余数?x 如果x不等于0 4.1 n ? m 4.2 x ? n 4.3 重复执行3,4 输出n 分析与模拟算法过程 程序结构设计 算法过程分析 选择结构 ? 数据交换 循环结构 ? 递归计算 程序结构 if 语句控制数据交换 while 语句实现循环结构 问题: 循环结构出口不在头部 终止条件:包括求余和比较 方法:利用赋值表达式 程序实现 #include stdio.h main( ) { int m, n, x, t; printf( “输入2个整数:” ); scanf( “%d%d”, m, n ); if( m n ) { t = m; m = n; n = t; } while( 0 != (x = m%n) ) { m = n; n = x; } printf( “gcd = %d\n”, n ); } 实现细节 数据交换 引入变量 t;利用存储概念 循环结构的实现 使用赋值表达式 x = m%n 的值参加运算 求余运算和比较运算 ? 条件表达式 运算优先级 总结如下: 算术运算 --优于-- 关系运算 --优于--
您可能关注的文档
- C语言程序设计(第二版)电子教案任正云 第9章结构体和共用体.ppt
- C语言程序设计(第二版)电子教案任正云 第10章文件.ppt
- C语言程序设计(第二版)电子教案王伟 第1章.ppt
- C语言程序设计(第二版)电子教案王伟 第2章.ppt
- C语言程序设计(第二版)电子教案王伟 第3章.ppt
- C语言程序设计(第二版)电子教案王伟 第4章.ppt
- C语言程序设计(第二版)电子教案王伟 第5章.ppt
- C语言程序设计(第二版)电子教案王伟 第6章.ppt
- C语言程序设计(第二版)电子教案王伟 第7章.ppt
- C语言程序设计(第二版)电子教案王伟 第8章.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 文件6.3.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 指针6.2.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第3章 数据类型及表达式.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第4章 结构化程序设计.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第5章 数组.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第6章 函数与预处理.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第7章 指针.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第8章 结构体共用体和枚举类型.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第9章 位运算.ppt
- C语言程序设计案例教程 高职计算机大类专业 熊锡义 第10章 文件.ppt
文档评论(0)