版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》
制作数字电子钟---循环嵌套一、任务分析
1、目标:制作实际生活中常见的显示“时、分、秒”的“数字电子钟”。如:
10:11:56任务:制作一个数字电子钟
2、程序演示
3、所需知识:顺序结构、选择结构、循环结构程序设计。二、知识回忆三种循环语句1、while循环
2、dowhile循环
3、for循环
任务:制作一个数字电子钟
循环结构有“当型”和“直到型”两种。
1、while循环和for循环结构都是“当型”循环〔先判断,后循环〕,也就是说先判断条件满足与否,决定是否继续循环,如果一开始条件就不成立,那么循环一次也不被执行。2、dowhile是“直到型”循环〔先循环,后判断〕。不管循环条件满足与否,dowhile循环中的循环体至少被执行一次。二、知识回忆任务:制作一个数字电子钟
二、知识回忆在屏幕上显示数字0-59的变化for语句的实现如下:
……
for(s=0;s<=59;s++)
printf("\%2d",s);
……程序演示任务一:制作一个数字电子钟
3、for循环结构是C语言中功能最强大、使用最多的循环语句。使用灵活,形式多样。第4章循环结构程序设计二、知识回忆:存在两个问题:
1、数字“0-59”以滚动卷屏方式显示。
2、显示速度太快,要能以实际一秒时间显示一个数。
三、导入新课任务:制作一个数字电子钟
第一个问题的解决方法,可以使用gotoxy(x,y)函数定位数字显示位置,其中x为屏幕列号、y为屏幕行号。也可以在每显示一次数字后调用清屏函数clrscr()〔或system(“cls”);〕。clrscr()、gotoxy()两个函数都包含在conio.h中,所以要在程序开头使用文件包含命令将它们包含进来:#include“conio.h"三、导入新课任务:制作一个数字电子钟
程序如下:#include"Conio.h"intmain(void){ints;for(s=0;s<=59;s++)
{gotoxy(35,12);
printf("\n%2d",s);}getch();return0;}三、导入新课任务:制作一个数字电子钟
第二个问题,是由于计算机的运行速度很快,每秒的显示时间要比实际生活中的一秒时间要短得多。因此,需要在程序中每显示一秒后都设置一个时间延迟,时间延迟用方法空循环结构实现,它的位置在循环内屏幕每显示一个数值后。for(s=0;s<=59;s++){printf("\%2d",s);for(i=1;i<=200000000;i++);}这就是一个循环嵌套〔二层〕结构。三、导入新课延时循环条件需调试终值以符合实际任务:制作一个数字电子钟
程序如下:#include“conio.h"intmain(void){ints;longi;for(s=0;s<=59;s++){gotoxy(35,12);printf("%2d",s);
for(i=1;i<=200000000;i++);}getch();return0;}三、导入新课任务:制作一个数字电子钟
定位显示延时,空循环2亿次第4章循环结构程序设计三、导入新课程序演示思考:显示0-59后程序还会重复运行吗实训环境:Win-TC或TC注意:1〕调试程序时要注意观察程序出错情况;2〕200000000是一个参考值,数据改为100000000后再次运行程序,观察运行结果;根据计算机运行速度调整循环变量i的终值,尽量与实际运转时间一致。上机实训1:上机编辑源程序,模拟秒的变化,在屏幕固定位置显示数字0-59的变化过程。调试运行程序。任务:制作一个数字电子钟
本节课知识点:循环嵌套-多种循环是本课程重点,也是难点。三、导入新课任务:制作一个数字电子钟
一个循环体内又包含另一个完整的循环结构称为循环嵌套,而包含多层循环的循环结构称为多重循环。while、dowhile和for三种循环都可以进行嵌套。注意,循环嵌套只能是包含关系,不能发生交叉。四、循环嵌套概念任务:制作一个数字电子钟
五、算法分析
1、变量设置设小时变量为h、分钟变量为m、秒变量为s,因为这些变量的数据值均为小于60的整数,所以定义它们为整型。用于延时控制的变量数据值较大,超出整型整形范围,所以变量i定义为长整型。
任务:制作一个数字电子钟
五、算法分析
2、程序结构“数字电子钟”是一个典型的循环嵌套问题,先考虑只有分、秒的时钟。最里层的循环用于延时,中间层循环控制秒从0~59的变化,外层循环控制分钟从0~59的变化。嵌套结构如下:
for(m=0;m<=59;m++)
for(s=0;s<=59;s++)
{printf("\%2d:%2d",m,s);
for(i=1;i<=200000000;i++);
}任务:制作一个数字电子钟
五、算法分析再考虑小时从0-23的变化情形,最外层再套上一个循环,控制小时从0~23。那么四层嵌套结构如下:for(h=0;h<=23;h++)for(m=0;m<=59;m++)for(s=0;s<=59;s++){printf("\n%2d:%2d:%2d",h,m,s);for(i=1;i<=200000000;i++);}任务:制作一个数字电子钟
main(){inth,m,s;longi;
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++);
}}六、源程序任务:制作一个数字电子钟
上机实训2:1〕调试程序时要注意观察程序运行情况,再次调整空循环变量i的终值,尽量与实际运转时间一致。计算机运行速度越快,那么这个数值越大。2〕请将变量i类型修改为整形后运行程序,观察运行结果。任务:制作一个数字电子钟
前面的程序每次运行都从0点0分0秒开始,不能从当前实际时间开始运行。解决问题的方法可以在程序第一次循环开始时输入一次当前实际时间。为了只在开始运行时设置一次初始时间,可以引入一个逻辑变量first,其初始值为0,输入初始时间后,将其值置为非0。在后面程序运行中,通过if语句控制不再需要输入初始时间。七、源程序提高与扩展之一任务:制作一个数字电子钟
……
for(s=0;s<=59;s++)
{if(first==0)
{printf("\n输入当前时间:");
scanf("%d:%d:%d",&h,&m,&s);first=2;}else{gotoxy(35,12);
printf("%2d:%2d:%2d",h,m,s);for(i=1;i<=200000000;i++);}}七、源程序提高与扩展之一任务:制作一个数字电子钟
完整程序如下:#include<conio.h>main(){inth,m,s,first=0;longi;for(h=0;h<=23;h++)for(m=0;m<=59;m++)for(s=0;s<=59;s++){if(first==0){printf("\nEnterCurrentTime,Please:");scanf("%d:%d:%d",&h,&m,&s);first=2;}else{gotoxy(35,12);printf("%2d:%2d:%2d",h,m,s);for(i=1;i<=200000000;i++);}}}任务:制作一个数字电子钟
现在给同学们提供一个存在几个小问题的本任务源代码〔time.c〕,请调试并找出错误后,运行本程序。说明:本程序需运行24小时才能结束,如果要停止程序运行,可以按Ctrl-C或连续按两次Ctrl-Break强制中断程序运行。八、上机实训3任务:制作一个数字电子钟
本程序只能运行24小时,请同学们将程序进一步改进,使它能显示年、月、日、星期、时、分、秒等数据的电子钟。九、源程序提高与扩展之二
思考和作业任务:制作一个数字电子钟
“九九乘法表”是一个典型的循环嵌套问题,外循环变量i控制行的变化,共9行,所以外循环需循环9次。由于每行有9次乘法运算,所以外循环每执行一次,内循环每次都是用i乘以1~9,即内循环每行也都需要执行9次。练习:输出“九九乘法表”任务分析
1、任务目标:
编程输出“九九乘法表”。2、程序演示练习:输出“九九乘法表”程序如下:main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf("%1d*%1d=%2d",j,i,i*j);printf("\n");}}练习:输出“九九乘法表”内层循环执行的次数等于该循环嵌套结构中每一层循环次数的乘积。本例外循环循环9次,内循环也为9次,那么内循环执行总次数为9×9=81次。思考:本程序输出结果为矩形,其中近一半的计算和显示是重复。请同学们修改程序,实现以三角形形式输出结果,提高算法效率。输出形式如下:
1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81练习:输出“九九乘法表”
编写程序,以三角形形式输出“九九乘法表”,并上机调试通过。
上机实训4练习:输出“九九乘法表”小结
1、循环嵌套〔多种循环〕,它是本课程重点,也是难点。2、多重循环中,外循环变化慢,内循环变化快,外循环一次,内循环就要循环n次。如秒变化60次,那么分钟变化〔增加〕1次,然后秒重新从0到59变化;分钟变化60次,那么小时变化〔增加〕1次。本程序中,延时控制变量i变化次数最多。小结
3、循环嵌套在实际应用中非常广泛,必须掌握。
4、屏幕清屏或让数据在固定位置显示,可以使用clrscr()、gotoxy()两个函数,它们都包含在conio.h中,需要使用文件包含命令将它们包含进来:
#in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市家用中央空调系统安装合同(三篇)
- 住宅拆除及安全责任合同(2024版)版B版
- 2025年度车辆租赁与维修服务合同
- 2025年合资购买教育设施房产合同范本二零二五
- 二零二五版银行存款居间业务代理合同3篇
- 2025年度环卫车辆租赁及垃圾清运服务合同
- 2025年度共享经济下的共享教育资源服务合同
- 2025年度挖机租赁市场调研合同
- 2025年度广告合作市场调研合同范本
- 2025年度果树种植基地基础设施建设合同
- 2024届上海市金山区高三下学期二模英语试题(原卷版)
- 学生春节安全教育
- 2024-2025年校长在教研组长和备课组长会议上讲话
- 高三日语一轮复习助词「で」的用法课件
- 2024-2030年中国铷铯及其化合物行业深度调研及投资战略分析报告
- 散货物流行业市场调研分析报告
- 痛风性关节炎中医护理查房
- 厨房食材补货方案
- 2024年重庆市中考数学试卷(AB合卷)【附答案】
- 宏观利率篇:债券市场研究分析框架
- 六年级语文(上册)选择题集锦
评论
0/150
提交评论