C语言程序设计--循环嵌套

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
page 2
一个循环体内又包含另一个完整的循环结构 称为循环嵌套, 称为循环嵌套,而 包含多层循环的循环结构称为 多重循环。while、 while和for三种循环都可 多重循 环。while、do while和for三种循环都可 以进行嵌套。注意,循环嵌套只能是包含关 系, 以进行嵌套。注意,循环嵌套只能是包含关系, 不能发生交叉。 不能发生交叉 。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 五、算法分析 1、变量设置 设小时变量为 h 分钟变量为m 设小时变量为h、分钟变量为m、秒 变量为s 变量为 s, 因为这些变 量的数据值均为 小于60的整数,所以定义它们为整型。 60的整数 小于60的整数,所 以定义它们为整型。 用于延时控制的变量数据值较大, 用于延时控制的变量数据值 较大, 超出整型整形范围, 所以变量i 超出整型整形范围 , 所以变量 i 定义为 长整型。 长整型。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 五、算法分析 2、程序结构 数字电子钟” “数字电子钟”是一个典型的循环嵌 套 问题,先考虑只有分、秒的时钟。最里层的 问题, 先考虑只有分、 秒的时钟。 循环用于延时, 中间层循环控制秒从0 循环用于延时 , 中间层循环控制秒从 0 ~ 59 的变化, 外层循环控制分钟从0 59的变化 的变化 , 外层循环控制分钟从 0 ~ 59 的变化 嵌套结构如下: 。嵌套结构如下: for(m=0 m<=59; for(m=0;m<=59;m++) 59 for(s=0 s<=59 59; for(s=0;s<=59; s++) printf("\ m,s); { printf("\%2d:%2d", m,s); (i=1 i<=200000000 i++); 20 0000000; for (i=1;i<=200000000;i++); } 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 五、算法分析 再考虑小时从0 23的变化情形 的变化情形, 再考虑小时从 0 - 23 的变化情形 , 最外 层再套上一个循环, 控制小时从0 23。 层再套上一个循环 , 控制小时从 0 ~ 23 。 则 四层嵌套结构如下: 四层嵌套结构如下: for (h=0;h<=23;h++) (h=0 h<=23 23; for(m=0 m<=59 59; for(m=0;m<=59;m+ +) for(s=0;s<=59;s++) for(s=0 s<=59; 59 printf("\ d",h,m,s); { printf("\n% 2d:%2d:%2d",h,m,s); (i=1 i<=200000000 i++); 200000000; for (i=1;i<=2000000 00;i++); } 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 六、源程序 main() { int h,m,s;long i; for (h=0;h<=23;h++) for(m=0;m<=59;m++) for (s=0;s<=59;s++) { gotoxy(35,12); printf("\n%2d:%2d:%2d",h,m,s); for (i=1;i <=200000000;i++); } } 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 上机实训2: 上机实训 : 1)调试程序时要注意观察程序运行 ) 情况,再次调整空循环变量 的终值 的终值, 情况,再次调整空循环变量i的终 值,尽 量与实际运转时间一致。 量与实际运转时间一致。计算机运行速 度越快,则 这个数值越大。 度越快,则这个数值越大。 2)请将变量 类型修改为整形后运 )请 将变量i类型修改为整形后运 行程序,观察运行结果。 行程序,观察运行结果。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 七、源程序提高与扩展 之一 前面的程序每次运行都从0 前面的程序每次运行都 从 0 点 0 分 0 秒 开始,不能从当前实际时间开始运行。 开始,不能从当前实际时 间开始运行。 解决问题的办法可以在程序第一次 循环开始时输入一次当前实际时间 。 循环开始时输入一次当前实际时间 。 为 了只在开始运行时设置一次初始时间,
本文由stonegem999贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 《C语言程序设计》 语言程序设计》 制作数字电子钟---循环嵌套 制作数字电子钟---循环嵌套 --- Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 一、任务分析 1、目标: 、目标: 制作实际生活中常见的显示“ 制作实际生 活中常见的显示“时、分、 数字电子钟” 秒”的 “数字电子钟”。如: 10:11: 56 : : 2、程序演示 、程序演示 3、所需知识: 、所需知识: 顺序结构、选择结 构、循环结构程序设计。 顺序结构、选择结构、循环结构程序设计。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 二、知识回顾 三种循环语句 1、while循环 、 循环 2、do while循环 、 循环 3、for循环 、 循环 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 二、知识回顾 循环结构有“当型” 直到型”两种。 循环结构有“当型”和“直到型”两种。 while循环和for循环结构都是 当型” 循环和for循环结构都是“ 1 、while循环和 for循环结构都是 “ 当型” 循 先判断, 后循环) 环 ( 先判断 , 后循环 ) , 也就是说先判断条件满 足与否, 决定是否继续循环, 足与否 , 决定是否继续循 环 , 如果一开始条件就 不成立,则循环一次也不被执行。 不成立,则循环一次也 不被执行。 while是 直到型”循环(先循环, 2 、do while是“直到型” 循环(先 循环,后 判断) 不管循环条件满足与否, while循环 判断 ) 。 不管循环条件满 足与否 , do while 循环 中的循环体至少被执行一次。 中的循环体至少被执行一次 。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务一:制作一个数字电子钟 任务一: 二、知识回顾 for循环结构是 语言中功能最强大、 循环结构是C 3 、 for 循环结构是 C 语 言中功能最强大 、 使 用最多的循环语句。使用灵活,形式多样。 用最多的循环语 句。使用灵活,形式多样。 在屏幕上显示数字0- 的变化 的变化for语 在屏幕上显示数字 -59的变化 语 句的实现如下: 句的实现如下: …… for(s=0;s<=59;s++) printf("\%2d",s); … … 程序演示 程序演示 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 第4章 循环结构程序设计 二、知识回顾: 知识回顾 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 存在两个问题: 存在两个问题: 1、数字“0-59”以滚动卷屏方 式显示。 以滚动卷屏方式显示。 、数字“ 以滚动卷屏方式显示 2、显示速度太快, 2、显示速度太快,要能以实际一秒 时间显示一个数。 时间显示一个数。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 第一个问题的解决办法, 第一个问题的解决办法,可以使用 go toxy(x,y)函数定位数字显示位置,其中 函数定位数字显示位置, 函数定位数字显示 位置 x为屏幕列号、y为屏幕行号。 为屏幕列号、 为屏幕行号 为屏幕行号。 为屏幕
pagБайду номын сангаас 1
列号 也可以在每显示一次数字后调用清屏 函数clrscr()(或system(“cls”);)。 函数 ( ) clrscr()、gotoxy()两个函数都包含 、 两个函数都包含 在conio.h中 ,所以要在程序开头使用文 中 件包含命令将它们包含进来: 件包含命令将它们包含 进来: #include “conio.h" 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 程序如下: 程序如下: #include "Conio.h" int main(void) { int s; for( s=0;s<=59;s++) { gotoxy(35,12); printf("\n%2d",s); } getch(); return 0; } 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 第二个问题, 第二个问题,是由于计算机的运行速度很 快,每秒的显示时间要 比实际生活中的一秒时 间要短得多。因此, 间要短得多。因此,需要在程序中每显 示一秒 后都设置一个时间延迟, 后都设置一个时间延迟,时间延迟用方法空循 环结 构实现, 环结构实现,它的位置在循环内屏幕每显示一 个数值后。 个数值后。 延 时循环条件需 for(s=0;s<=59;s++) 调试终值以符合 {printf("\%2d",s); 实际 fo r (i=1;i<=200000000;i++); } 这就是一个循环嵌套(二层)结构。 这就是一个循环 嵌套(二层)结构。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 程序如下: 程序如下: #include “conio.h" int main(void) { int s; 定位 显示 long i; for(s=0;s<=59;s++) { gotoxy(35,12); printf("%2d",s); for (i=1 ;i<=200000000;i++); } 延时, 延时,空循环 getch(); return 0; 2亿次 } 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 第4章 循环结构程序设计 三、导入新课 思考:显示0-59后 思考:显示0 59后 程序还会重复运行吗 程序演示 程序演示 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 上机实训1: 上机实训 : 上机编辑源程序,模拟秒的变化, 上机编辑源程序 ,模拟秒的变化,在屏 幕固定位置显示数字0- 的变化过程 的变化过程。 幕固定位 置显示数字 -59的变化过程。调试 运行程序。 运行程序。 实训环境:Win-TC或TC 实训环境: 或 注意: 注意: 1)调试程序时要注意观 察程序出错情况; )调试程序时要注意观察程序出错情况; 2)200000000是一个参 考值,数据改为 是一个参考值, ) 是一个参考值 100000000后再次运行程序,观察 运行结果;根 后再次运行程序, 后再次运行程序 观察运行结果; 据计算机运行速 度调整循环变量i的终值 的终值, 据计算机运行速度调整循环变量 的终值,尽量与 实际运转时间一致。 实际运转时间一致。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 三、导入新课 本节课知识点: 本节课知识点: 循环嵌套-多种循环 循环嵌套- 是本课程重 点,也是难点。 是本课程重点,也是难点。 《C语言程序设计教程》(第二版) Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 任务: 四、循环嵌套概念 循环嵌套概念
相关文档
最新文档