- 6
- 0
- 约2.98万字
- 约 49页
- 2018-12-25 发布于重庆
- 举报
算法竞赛入门经典授课教案第2章循环结构程序设计精心排版并扩充部分内容
第2章 循环结构程序设计
【教学内容相关章节】
2.1 for循环 2.2 循环结构程序设计
2.3文件操作 2.4 小结与习题
【教学目标】
(1)掌握for循环的使用方法;
(2)掌握while循环的使用方法;
(3)学会使用计算器和累加器;
(4)学会用输出中间结果的方法调试;
(5)学会用计时函数测试程序效率;
(6)学会用重定向的方式读写文件;
(7)学会fopen的方式读写文件;
(8)了解算法竞赛对文件读写方式和命名的严格性;
(9)记住变量在赋值之前的值是不确定的;
(10)学会使用条件编译指示构建本地运行环境。
【教学要求】
掌握for循环的使用方法;掌握while循环的使用方法;掌握几个常用的文件操作库函数fopen、fclose、fprintf、fscanf等。
【教学内容提要】
在有些程序中,需要反复执行某些语句。将n条相同的语句简单地复制会使程序变得不合理的冗长,因此高级语言中提供了支持程序重复执行某一段程序的循环控制语句。相关的语句有:for、while、do while、break、continue等。
既可以从文件中读取数据, 也可以向文件中写入数据。读写文件之前,首先要打开文件。读写文件结束后,要关闭文件。C/C++提供了一系列库函数,声明于stdio.h中,用于进行文件操作。这里介绍其中几个常用的文件操作库函数fopen、fclose、fprintf、fscanf等。
【教学重点、难点】
教学重点:
(1)掌握for循环的使用方法;
(2)掌握while循环的使用方法;
(3)掌握文件有关操作;
(4)条件编译。
教学难点:
(1)掌握for循环的使用方法;
(2)掌握while循环的使用方法;
【课时安排(共2学时)】
2.1 for循环 2.2 循环结构程序设计
2.3 文件操作 2.4 小结与习题
2.1 for循环
请用for循环实现输入正整数n,打印1,2,3,…,10,每个占用一行。程序如下:
程序2-1 输出1,2,3,…,n的值
#include stdio.h
int main(){
int i, n;
scanf(%d, n);
for(i = 1; i = n; i++)
printf(%d\n, i);
return 0;
}
提示2-1:for循环的格式:for(初始化;条件;调整) 循环体;
提示2-2:尽管for循环反复执行相同的语句,但这些语句每次的执行效果往往不同。
提示2-3:编写程序时,要特别留意“当前行”的跳转和变量的改变。
有了for循环,可以解决一些简单的问题。
例2-1 aabb。
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等,且为某数平方)。
【分析】
分支和循环结合在一起时威力特别强大:可以枚举所有可能的aabb,然后判断它们是否是完全平方数。注意,a的范围是1~9,但b可以是0。主程序如下:
for(a = 1; a = 9; a++)
for(b = 0; b = 9; b++)
if(aabb是完全平方数) printf(%d\n, aabb);
注意:(1)上面不是真正的程序,把这样的代码称为伪代码(psedocode)。
(2)上面用到了循环的嵌套:for循环的循环体自身又是一个循环。
提示2-4:不拘一格的使用伪代码来思考和描述算法是一种值得推荐的做法。
提示2-5:把伪代码改写成代码时,一般先选择较为容易的任务来完成。
程序2-2 7744问题(1)
#include stdio.h
#include math.h
int main(){
int a, b, n;
double m;
for(a = 1; a = 9; a++)
{
for(b = 0; b = 9; b++)
{
n = a*1100 + b*11;
m = sqrt(n);
if(floor(m+0.5) == m)
printf(%d\n, n);
}
}
return 0;
}
说明:函数floor(x)返回x的整数部分,使用floor(m+0.5)==m的原因是浮点数的运算(和函数)有可能存在误差。
提示2-6:浮点运算可能存在误差。在进行浮点数比较时,应考虑到浮点误差。
对于四位完全平方数的还有另一个思路就是枚举平方根x,从而避免开平方操作。补充:
(1)向下取整函数:double floor(double x);
使用floor函数。floor(x)返回的是小于或等于x的最大整数。
如: floor(2.5) == 2 ??? flo
您可能关注的文档
- 湘教版九年级数学上册第三章图形的相似教案(共19课时).doc
- 湘教版初中数学七年级下册全册教案 精品.doc
- 湘教版初中数学七年级下册教案.doc
- 湘教版小学三年级美术下册全册教案.doc
- 湘教版九年级数学上册全期教案.doc
- 湘教版小学二年级语文上册电子教案.doc
- 湘教版小学六年级上册音乐教案.doc
- 湘教版小学英语六年级英语全套精品教案.doc
- 湘教版北京仁爱英语八年级上学期UNIT 3 OUR HOBBIES TOPIC 3 WHAT WERE YOU DOING THIS TIME YESTERDAY 同步教案.doc
- 湘教版小学美术六年级下册教案全册.doc
- 2025年版汽车趋势报告 The 2025 EPA Automotive Trends Report.docx
- 2026年边缘计算开源平台EdgeX Foundry入门与二次开发.docx
- 2026年超声内镜放大内镜早癌诊断AI辅助识别系统临床评价.docx
- 2026年报废汽车回收与再制造逆向物流体系.docx
- 2026年产品碳足迹核算方法学:从摇篮到大门与从摇篮到坟墓.docx
- 2026年城乡要素平等交换双向流动政策创新试点申报材料.docx
- 2026年超导半导体接口电路架构与电平转换驱动器设计.docx
- 2026年财政贴息不再以再贷款支持为前提后的风险防范与合规要点.docx
- 2026年不动产信托登记试点政策对遗嘱信托支持.docx
- 2026年城乡有机废弃物协同处理技术方案.docx
原创力文档

文档评论(0)