




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称 语言程序设计课型与教法 讲授 通过程序扩展 进行对比学习学时 2课时授课题目 第4章循环结构教学目的与要求 通过本章的学习使学生了解循环结构的意义和基本实现语句 能正确利用while do while for语句进行循环程序设计教学重点与难点 while do while for语句 例 有一张厚度为0 1毫米的纸 假设它足够大 重复将其对折 问对折多少次之后 其厚度可以抵达 再对折一次就超过 珠穆朗玛峰的高度 程序如下 main 程序名为l3 14 cpp doubleh 0 1 intn 0 n用来累计对折次数 while h 8848180 h h 2 n n 1 printf 对折次数为 d 此时厚度 2f n n 1 h 2 重复对折一张纸 实质就是厚度乘以2 次数加1 用顺序结构编程为 h h 2 n n 1 这样的语句一直重复写到h满足题目要求为止 实际中这类问题 就可用循环结构编程实现 本例中 使用的是循环结构中的while语句 第四章循环结构 循环语句 辅助控制语句 循环是指使用一定条件对同一个程序段重复执行若干次 循环结构又称重复结构 可以完成重复性 规律性的操作 概述C语言有三种类型的循环语句 while语句do while语句for语句 循环语句 一般形式 while 执行流程 while语句 循环体 被重复执行的部分 特点 先判断表达式 后执行循环体说明 循环体有可能一次也不执行循环体可为任意类型语句下列情况 可退出while循环条件表达式不成立 为零 循环体内遇break return goto while语句特点和说明 用while循环求 ch4 2 cpp includemain longsum 0 inti 1 while i 1000 sum i i printf sum ld sum 例4 2 ch4 3 cpp includemain intn 0 longt 1 printf nn n while n 8 n t n printf d ld n n t 运行结果 nn 1122364245120672075040840320 例4 3求n n 1 8 一般形式 dowhile 执行流程 do while语句 不能少 特点 先执行循环体 后判断表达式说明 至少执行一次循环体do while可转化成while结构 do while语句特点和说明 用do while循环求 例4 4 ch4 4 cpp includemain inti longsum 0 i 1 do sum i i while i 1000 printf sum ld sum 统计输入的整数的个数 输入 1时结束 1不计在内 例4 5 ch4 5 cpp includemain intnum inti 0 do scanf d 实验四 求和s 3 33 333 3333 33333 思考 求和s a aa aaa aaa a 最后一项为n个a 其中a是一个数字 例如 3 33 333 3333 33333 此时n 5 n由键盘输入 2 求和sum 1 2 3 n n是从键盘上面输入的数n 20 3 从键盘上面输入若干个字符 当输入字符 时结束输入 统计并输出字符串中非数字字符的个数 一般形式 for 表达式1 表达式2 表达式3 执行流程 for语句 一般应用形式 for 初始化表达式 条件表达式 修正表达式 说明 for语句中expr1 expr2 expr3类型任意 都可省略 但分号 不可省for语句可以转换成while结构 expr1 while expr2 expr3 for语句 形式 includemain inti 0 for i 0 i 10 i putchar a i 运行结果 abcdefghij 形式 includemain inti 0 for i 10 i putchar a i 形式 includemain inti 0 for i 10 putchar a i 形式 includemain inti 0 for i 10 putchar a i i 例 for语句形式的多样性 例4 6 用for语句实现求1 1000之和 include stdio h main 程序名为ch4 6 cpp inti longsum 0 for i 1 i 1000 i sum i printf 其和是 ld n sum 课程名称 语言程序设计课型与教法 讲授 通过程序扩展 进行对比学习学时 2课时授课题目 第4章循环结构基本教材 语言程序设计 高等教育出版社 廖雷主编教学目的与要求 通过本章的学习使学生掌握break continue goto语句 能正确利用循环语句 循环嵌套进行循环程序设计教学难点 循环嵌套教学重点 break continue语句 循环嵌套 循环的嵌套 循环体本身包含循环语句三种循环可互相嵌套 层数不限外层循环可包含两个以上内循环 但不能相互交叉 1 while while 2 do do while while 3 while do while 4 for do while while 循环的嵌套 for i 1 i 10 i j 1 while j 10 printf j 9 4d n 4d i j j 循环的嵌套 图解 例4 7 打印如下形式的乘法小九九表 1 1 12 1 22 2 4 9 1 99 2 189 3 27 9 9 81 分析 表体共九行 所以首先考虑一个打印九行的算法 for i 1 i 9 i 打印第i行 其次考虑如何 打印第i行 每行都有i个表达式 积 可以写为 for j 1 j i j 打印第j个表达式 打印第j个表达式 可写为 printf d d 3d i j i j 在写这个语句时 不写换行 只能在第j个表达式输出后写一个语句使之换行 printf n 综上所述 打印以上形式的乘法小九九表的程序如下 例4 7 程序名为ch4 7 cpp include stdio h main inti j i j分别控制行和列的输出 for i 1 i 9 i for j 1 j i j printf d d 3d i j i j printf n 另起一行 几种循环的比较 1 若循环次数在执行循环体之前已确定 一般用for若循环次数根据循环体执行情况确定 一般用while或do while2 当循环体至少执行一次 用do while若循环体有可能一次也不执行 用while 实验5 用for语句求和s 1 3 5 7 99编程输出如下图形 3 求整数3 100中的素数 并输出素数的个数 为了检查某数是否是素数 采用的方法是 从n 3起直到100止 逐个用i 2 n 2去试除n 只要有一个能整除 说明该数不是素数 概述辅助控制语句 break语句continue语句goto语句 辅助控制语句 break语句 功能 在循环语句和switch语句中 终止并跳出循环体或开关体说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 break语句 图解1 break语句 图解2 设计一程序完成功能 若输入英文字母 则原样输出 例 includemain charch do ch getchar if ch Q ch q break elseif ch a 功能 结束本次循环 跳过循环体中尚未执行的语句 进行下一次是否执行循环体的判断仅用于循环语句中 continue语句 求1 100之间不能被12整除的数 ch4 9 cpp include stdio h main intn for n 1 n 100 n if n 12 0 continue printf 5d n ch4 10 cpp includemain longintf f1 1 f2 1 inti n printf pleaseinputn scanf d 例fibonacci数列f n ch4 11 cpp includemain intn doublev sum 0 0 t 1 0 for n 0 n 64 n sum t t 2 printf sum e n sum v sum 1 42e8 printf v e v 例计算sum 1 2 22 23 263 综合实训1 例1 用泰勒级数求e的近似值 直到最后一项小于1e 6为止 e 1 1 1 1 2 1 3 1 n 程序如下 源程序名为l3 34 cpp 泰勒级数e include stdio h main floate 1 0 t 1 0 用e存放结果 用t存放n n的值每次加1 intn 1 while 1 t 1e 6 t t n 求n e e 1 t 实现求n 的倒数的和 n printf e 8 6f n e 运行结果 e 2 718282 综合实训2 通过本例可以体现这样一个编程思路 凡是遇到求若干个有规律变化的项的乘积 就可在循环体中用求累乘积的编程通式t t x来编程实现 求其和 用求累加和的编程通式s s x来编程实现 其中t s分别为累积 累和 初值分别为t 1 s 0 x为变化的项的通式 例2 百钱百鸡问题 公元前 我国古代数学家张丘建在 算经 一书中提出了 百鸡问题 鸡翁一 值钱五 鸡母一 值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 分析 这是一个有名的不定方程问题 设 cocks 鸡翁数 hens 鸡母数 chicks 鸡雏数 则有 cocks hens chicks 1005 cocks 3 hens chicks 3 100据上述不定方程 很容易得到三个变量的取值条件 cocks 0 19之间的整数 hens 0 33之间的整数 chicks 0 100之间的整数 解题思路 依次取cocks值域中的一个值 然后再在试取hens值域中的每一个值 根据前两者取值 求出chicks后 看是否合乎题意 合乎者为解 综合实训3 返回本节目录 编程如下 源程序名为l3 35 cpp 百钱百鸡问题 include stdio h main intcocks hens chicks for cocks 1 cocks 19 cocks for hens 1 hens 33 hens chicks 100 cocks hens if 5 cocks 3 hens chicks 3 0 100 printf cocks d hens d chicks d n cocks hens chicks 程序运行结果如下 cocks 4 hens 18 chicks 78cocks 8 hens 11 chicks 81cocks 12 hens 4 chicks 84本例采用的编程算法是穷举法 其基本思想是 对问题的所有可能状态一一测试 直到找到解或全部可能状态都测试过为止 下面例题为另一类型的穷举问题 例3 爱因斯坦的阶梯问题 设有一阶梯 每步跨2阶 最后余1阶 每步跨3阶 最后余2阶 每步跨5阶 最后余4阶 每步跨6阶 最后余5阶 每步跨7阶时 正好到阶梯顶 问共有多少阶梯 问题分析 设阶梯数为 ladders 则题中条件可以改写为 1 ladders 2 1 2 ladders 3 2 3 ladders 5 4 4 ladders 6 5 5 ladders 7 0由条件 5 知 阶梯数一定为7的倍数 于是可以从7开始 分别对7 17 21 28 35 数列进行测试 看哪一个符合题意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年法考真题及答案
- 2025年签订中外合作开发合同
- 2025年高中技术会考试试题考试试题及答案
- 2025年高温应对指南试题(附答案)
- 企业法律风险评估及防范工具
- 2025租房协议书简化版
- 零售业库存管理月报表
- 客户服务热线处理及反馈模板
- 工作调动申请书范文
- 项目课题立项申请书
- 2025年发展对象考试题库附含答案
- 2025年兵团基层两委正职定向考录公务员试题(附答案)
- 2025年新专长针灸考试题及答案
- 高三生物一轮复习课件微专题5电子传递链化学渗透假说及逆境胁迫
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 2025四川雅安荥经县国润排水有限责任公司招聘5人笔试历年参考题库附带答案详解
- 2025中国银行新疆区分行社会招聘笔试备考试题及答案解析
- 污水采样培训课件
- 药品医疗器械试题及答案
- 公司解散清算的法律意见书、债权处理法律意见书
- 污水处理厂安全风险清单
评论
0/150
提交评论