编写程序之前控制结构 讲义教材.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 良好编程习惯 4.6 每个变量在单独一行中声明并加上注释,这样可以提高程序的可读性。 * 常见编程错误 4.7 假定整数除法采取四舍五入,会产生不正确的结果。 整数除法会采用截去的方法处理结果的小数部分。 * 常见编程错误 4.8 在计数器控制循环中,由于循环计数器(每次循环加1时)在循环结束时会比最大合法值多1(例如,从1算到10时为11). 因此在循环之后用计数器值进行计算通常会出现差1的错误。 图4.9中,如果第66行用gradeCounter而不是10进行计算,则这个程序的输出会有错误。 32 * 2.8? 构造算法:实例研究1(计数器控制重复) 未初始化的变量 未初始化变量会包含垃圾值 注意整数相除时,自动取整 整数相除 参加除法运算的两个数都是整数 结果自动取整 小数部分丢失 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 问题描述 开发一个计算全班平均成绩的程序,在每次程序运行时处理任意个成绩数。 标记控制重复 也称为不确定重复 控制方法:使用一个标记值指明 “数据输入结束” 过程: 用户输入成绩,直到输入完所有合法成绩。然后用户输入一个标记值,表示最后一个成绩已经输入 标记值也称信号值(signalvalue)、哑值(dummy value)或标志值(flag value) 注意:标记值不能与可接受的输入值混淆起来 * 常见编程错误 4.9 将选择的标记值与可接受的输入值混淆时会造成逻辑错误。 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 自上而下逐步完善 上层伪代码 上层伪代码只是一个语句,表示程序的总体功能 本例中: Determine the class average for the quiz 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 第一步完善 本例中: Initialize variables Input, sum and count the quiz grades Calculate and print the class average 这里只用了顺序结构,所有步骤按顺序逐步执行 * 软件工程视点 4.4 上层伪代码及每一步完善都是算法的完整定义,只是详细程度不同而已。 * 软件工程视点 4.5 许多程序可以在逻辑上分为三个阶段: 初初化阶段将程序变量初始化; 处理阶段输入数据值和相应调整程序变量; 结束阶段计算和打印最后结果。 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 自上而下逐步完善 第二步完善 指定特定变量: 一个变量用于接收每个输入的成绩值 grade 一个变量用于计算所有成绩的总和 total 一个变量用于统计输入的成绩的个数(平均值的分母) counter 一个变量保存计算平均值 average Initialize variables Initialize total to zero Initialize counter to zero 注意,只有total和counter变量要先初始化再使用,average和grade变量(分别计算平均值和用户输入)不需要初始化.因为它们的值会在计算或输入时重定义。 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 自上而下逐步完善 第二步完善 Input, sum, and count the quiz grades这一句需要用重复结构 我们事先不知道要处理多少个成绩,因此使用标记控制重复 Input, sum, and count the quiz grades Input the first grade (possibly the sentinel) While the user has not as yet entered the sentinel Add this grade into the running total Add one to the grade counter Input the next grade (possibly the sentinel) 注意,在这个伪代码中,我们没有在while结构体中使用花括号,只是在while下面将这些语句缩排表示它们属于while。伪代码只是非正式的程序开发辅助工具。 32 * 4.9? 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 自上而下逐步完善 第二步完善 Calculate and print the class average 可以完善如下: Calculate and pri

文档评论(0)

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

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

1亿VIP精品文档

相关文档