免费预览已结束,剩余45页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 项目五猜数游戏 循环程序设计 5 1循环语句 2 项目要求 猜数游戏 先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 则结束游戏 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 则停止本次猜数 然后继续猜下一个数 每次运行程序可以反复猜多个数 直到操作者想停止时才结束 3 项目分析 这个项目看上去有些难度 但是如果按下列要求循序渐进地编程实现 会发现其实这个程序是很容易实现的 第一步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则计算机给出提示 Right 否则提示 Wrong 并告诉人所猜的数是大 Toohigh 还是小 Toolow 然后结束游戏 要求每次运行程序时机器所 想 的数不能都一样 第二步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 直到人猜对为止 第三步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 结束游戏 第四步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 则结束游戏 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 则停止本次猜数 然后继续猜下一个数 每次运行程序可以反复猜多个数 直到操作者想停止时才结束 其中第一步通过前面学习的分支程序设计即可实现 先将其余三步分成三个任务实现 4 问题情境及实现 先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 直到人猜对为止 分析 借助于分支程序设计实现的第一步 printf 请第猜数 n scanf d 上面需要用户输入数据进行数据比较的部分重复执行知道猜对为止 通过前面所学知识已不能解决 5 问题情境及实现 具体实现 includemain intx y x rand 100 printf 请猜数 n scanf d 6 6 所需知识 本讲小结 1 循环结构的几种形式 7 1循环结构的几种形式 1 1 1while循环结构 while 表达式 语句 课堂练习 求p 5 用while语句描述 循环初始条件 循环体 循环终止条件 8 1循环结构的几种形式 2 1 2do while循环结构 do语句while 表达式 课堂练习 求p 5 用do while语句描述 结论 do while语句与while语句可以通过修改程序 互相转换 9 1循环结构的几种形式 3 1 3for循环结构 for 表达式1 表达式2 表达式3 语句 课堂练习 求p 5 用for语句描述 课堂练习 用while语句写出左边流程图的C语句描述 表达式1 while 表达式2 语句 表达式3 10 1循环结构的几种形式 4 1 4几种循环结构的应用 例1 计算s 1 2 3 1000的值 输入 处理 输出 实现过程分析 11 1循环结构的几种形式 5 1 4几种循环结构的应用 续 例1 计算s 1 2 3 1000的值 续 处理过程使用哪种结构 循环初始条件 循环体 循环终止条件 请同学们分别用whiledo whilefor循环结构实现 12 1循环结构的几种形式 6 1 4几种循环结构的应用 续 例2 已知求y的公式 求y 3时的最大n值及对应的y值 输入 处理 输出 13 1循环结构的几种形式 7 1 4几种循环结构的应用 续 例2 续 循环初始条件 循环体 循环终止条件 考虑本例循环终止条件与例1的不同 14 1循环结构的几种形式 8 1 4几种循环结构的应用 续 例2 续 本例应使用哪种循环结构 总结 do while语句和while语句多用于循环次数不确定的情况 而对于循环次数确定的情况 用for语句更适合 15 1循环结构的几种形式 9 1 4几种循环结构的应用 续 例2的while语句实现 循环初始条件y 0 n 1 循环体y y 1 0 2 n 1 n n 1 循环终止条件y 3 includevoidmain intn 1 floaty 0 0 while y 3 y y float 1 0 2 n 1 n n 1 printf y f n d n y n 2 分析程序中的问题 求y 3时的最大n值及对应的y值 16 1循环结构的几种形式 10 1 4几种循环结构的应用 续 例2的do while语句实现 includevoidmain intn 1 floaty 0 0 f while y 3 f float 1 0 2 n 1 y y f n n 1 printf y f n d n y f n 2 do f float 1 0 2 n 1 y y f n n 1 while y 3 17 1循环结构的几种形式 11 1 4几种循环结构的应用 续 例3 求sinx 直到最后一项的绝对值小于10 6时 停止计算 实现过程分析 找出ai与ai 1项之间的关系 18 1循环结构的几种形式 12 1 4几种循环结构的应用 续 例3分析 循环初始条件 循环体 循环终止条件 需要将输入的角度转换为弧度 我们共同完成这个程序的编写 返回主菜单 19 5 2break continue语句 20 项目要求 猜数游戏 先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 则结束游戏 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 则停止本次猜数 然后继续猜下一个数 每次运行程序可以反复猜多个数 直到操作者想停止时才结束 21 项目分析 这个项目看上去有些难度 但是如果按下列要求循序渐进地编程实现 会发现其实这个程序是很容易实现的 第一步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则计算机给出提示 Right 否则提示 Wrong 并告诉人所猜的数是大 Toohigh 还是小 Toolow 然后结束游戏 要求每次运行程序时机器所 想 的数不能都一样 第二步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 直到人猜对为止 第三步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 结束游戏 第四步先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 则结束游戏 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 则停止本次猜数 然后继续猜下一个数 每次运行程序可以反复猜多个数 直到操作者想停止时才结束 其中第一步通过前面学习的分支程序设计即可实现 先将其余三步分成三个任务实现 22 问题情境及实现 先由计算机 想 一个1 100之间的数请人猜 如果人猜对了 则结束游戏 并在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 否则计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 结束游戏 23 问题情境及实现 实现的源程序 includemain intx y i flag 0 x rand 100 for i 1 iy printf 你猜的太小了 elseprintf 你猜的太大了 if flag 1 printf 恭喜 猜对了 你是第 d次猜对的 i elseprintf 抱歉 十次都未猜中 24 相关知识 1break语句 在哪里见过break语句 它的作用是什么 switch 表达式 case常量表达式1 语句1 break case常量表达式2 语句2 break case常量表达式m 语句m break default 语句n break break语句的两个用途 在switch语句中用来使流程跳出switch结构 继续执行switch语句后面的语句 用在循环体中 迫使所在循环立即终止 即跳出循环体 继续执行循环结构会面的语句 25 1break语句 1 1break语句 举例 例4 求两个整数a和b的最大公约数和最小公倍数 假设m为a和b的最大公约数 则a和b的最小公倍数为a b m 如何求最大公约数 26 1break语句 1 1break语句 举例 续 例4 求两个整数a和b的最大公约数和最小公倍数 方法1 P103程序 27 1break语句 1 1break语句 举例 续 例4 求两个整数a和b的最大公约数和最小公倍数 方法2 辗转相除法 P103算法描述 28 2continue语句 2 1continue语句 continue语句的作用是结束本次循环 课堂练习 分析程序的执行结果 includevoidmain inti 0 s 0 do if i 2 i continue i s s i while i 7 printf d n s 16 includevoidmain inti 0 while i 10 if i 1 continue if i 5 break i 课堂练习 分析程序的循环次数 死循环 29 3goto语句 3 1goto语句 goto语句可以转向同一函数内任意指定位置执行 称为无条件转移语句 语句格式 goto语句标号 includevoidmain inti k 0 for i 1 i k while k i i k if k 3 0 gotoloop loop printf d d i k 课堂练习 分析程序执行结果 2 3 返回主菜单 30 30 3goto语句 例5 输入一个整数m 判断是否为素数 问题分析 根据素数的定义 用m分别对2到m 1的整数进行求模的运算 如果中间出现余数为0的情况 则m不是素数 否则 m为素数 根据此流程图是否可以写出程序 31 4循环结构程序举例 1 例6 求f x 在 a b 上的定积分 解题思路 将区间 a b 进行n等分 转化为求n个梯形的面积的和 n值越大 结果越准确 32 4循环结构程序举例 1 例6 续 输入 处理 输出 33 4循环结构程序举例 2 例7用牛顿迭代法求下面方程在x 2 5附近的实根 直到满足 xn xn 1 10 6为止 解题思路 牛顿迭代法的实质是以切线与x轴的交点作为曲线与x轴交点的近似值以逐步逼近 34 4循环结构程序举例 2 例7 续 牛顿迭代公式 程序实现见教材P111 35 5 3循环的嵌套 主讲教师 胡运玲 36 任务要求 先由计算机 想 一个1 100之间的数请人猜 如果猜对了 在屏幕上输出人猜了多少次才猜对此数 以此来反映猜数者 猜 的水平 如果用户要结束猜数游戏可输入 Y 否则进入下一轮猜数 如果猜的不对 计算机给出提示 告诉人所猜的数是太大还是太小 最多可以猜10次 如果猜了10次仍未猜中的话 则停止本次猜数 然后继续猜下一个数 每次运行程序可以反复猜多个数 直到操作者想停止时才结束 37 任务分析 实现本任务关键在于 把任务二用户猜数的的过程再进一步进行循环控制 则成了大循环里面嵌套小循环 即循环的嵌套 多重循环程序设计 38 任务实现效果演示 例题源代码 multiguess c 39 39 相关知识 循环程序的嵌套 40 循环的嵌套 一个循环 称为 外循环 的循环体内包含另一个循环 称为 内循环 内循环中还可以包含循环 形成多层循环 循环嵌套的层数理论上无限制 三种循环 while循环 do while循环 for循环 可以互相嵌套 41 循环的嵌套 1 2 while do while 嵌套 while dowhile 42 3 4 for while 5 6 for do while 嵌套 嵌套 嵌套 嵌套 for do while for while 循环的嵌套 43 循环的嵌套 例1 打印九九乘法表 includemain inti j for i 1 i 9 i for j 1 j i j printf d d 2d i j i j printf n getch 44 循环的嵌套 例2 求1 100所有的素数 k sqrt m for i 2 i k i if m i 0 flag 0 break if flag printf d是素数 n m elseprintf d不是素数 n m 判断一个数是否素数 1 100的素数 for m 2 m 100 m flag 1 k sqrt m for i 2 i k i if m i 0 flag 0 break if flag printf d m 课下扩展为 每4个数一行显示 45 例3 打印下面的图形 循环的嵌套 上三角形 for i 1 i 4 i for j 1 j 4 i j putchar for k 1 k 2 i 1 k putchar putchar n 下三角形 for i 1 i 3 i for j 1 j i j putchar for k 1 k 7 2 i k putchar putchar n 整个三角形 for i 3 i 3 i for j 1 j fabs i j putchar for k 1 k 7 2 fabs i k putch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流装备租赁合同范本
- 玻璃隔断拆装协议合同
- 碳钢大板采购合同范本
- 生产工厂保洁合同范本
- 清算代理服务合同协议
- 种植技术服务合同范本
- 电缆生产出售合同范本
- 秸秆离田回收合同范本
- 珍稀动物租赁合同范本
- 2025年安全员C证(专职安全生产管理人员)考试题库及答案
- 境外劳务日常管理制度
- 健康史评估的试题及答案
- 资料存档管理制度模板
- 无机非金属面板保温装饰板外墙外保温系统应用技术规程DB21∕T 3397-2021
- 钢轨探伤发展历程目录一国外钢轨探伤发展二我国钢轨探伤发展
- 植物次生代谢过程与产物全解析
- 全国青少年科技辅导员专业水平认证笔试考题
- 《工业园区清洁生产审核指南》
- 《IBM战略人才》课件
- 《城市道路水下隧道设计规范》
- 酒店客房服务与卫生标准
评论
0/150
提交评论