C语言项目开发基础与实战-教案 第31讲.docx

C语言项目开发基础与实战-教案 第31讲.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第PAGE1页

学院

教师课时授课教案

编号:31

授课日期

授课班级

授课学时

2

课型

理实

课题:

§5.5函数、递归与预处理

教学目标:

本讲通过对递归与预处理的简单讲解,使学生能够掌握递归与预处理

语句的使用方法,具体目标包括:

1.理解递归结构的功能与作用;

2.熟练掌握递归程序的编写方法;

3.熟练掌握预处理语句的功能、作用与使用方法。

重点与难点:

重点:递归结构与预处理语句的功能、作用与使用方法。

难点:递归结构程序的编写方法。

解决措施:

使用多媒体教学工具,在电子课件的帮助下,结合提问、讨论及互动

等多种教学方法,再辅以综合示例予以解决。

教学方法设计:

讲授,讨论,演示

教学资源:

PPT,DEV-C编译器,多媒体教学工具

学院教案用纸

第31讲

教学环节

教学内容

教学组织与教学方法

组织

教学:

引入:

新课:

重点

重点

难点

重点

难点

强调

重点

难点

重点

重点

强调

1.考勤;

2.对上讲课及作业批改情况进行总结;

3.介绍本讲课内容及相关重难点。

购物车程序的公共变量与预处理语句引入。

§5.5函数与程序结构

一、定义及调用

1.格式

? 程序预处理语句s;

? 子函数的定义

? 主函数的定义

注:

子函数必须定义或声明后,才能被主函数若其他子函数调用。

2.用途

小型程序:子函数不多,且体积不大。

优势:程序结构清晰,易于阅读。

二、声明、定义及调用

1.格式

? 程序预处理语句s;

? 子函数的声明

? 主函数的定义

? 子函数的定义

2.用途

大型程序:子函数较多,体积较大,且结构复杂。

优势:程序结构清晰,易于用户理解程序框架,抓住程序核心,同时也利于用户了解所需内容。

三、函数的嵌套

1.定义

在一个函数(特别是子函数)中再调用其他子函数的情况称为函数的嵌套调用。

2.函数嵌套调用与返回过程

3.结构化程序设计方法

⑴自顶向下

⑵逐步求精

⑶函数实现

4.函数设计应注意的问题

⑴限制函数的长度

⑵避免函数功能间的重复

⑶减少全局变量的引用

四、递归

引入:

从前有座山,山上有个庙,庙里有个老和尚在讲故事,……

1.任务描述

Hanoi塔问题:

? 3个柱子:A,B,C

? 64个盘子,由小到大叠放在A柱上

? 将64个盘子从A柱搬到C柱上

规则如下:

? 每次只允许搬动1个盘子

? 不允许大盘子压小盘子

问:需要搬动多少次?

2.任务分析

⑴2个盘子的情况:3次

⑵3个盘子的情况

将2个盘子视为1个,即变为了2个盘子的方案

f(3)=2*f(2)+1

⑶扩展到n个盘子

将n-1个盘子视为1个,即变为了2个盘子的方案

f(n)=2*f(n-1)+1

3.任务实现

intHanoi(n)

{

if(n1)

{

return2*Hanoi(n-1)+1;//递推公式

}

else

{

return1;//出口

}

}

4.任务总结

⑴递归程序设计的关键是找出递推公式

⑵递归程序设计一定要有最终出口

5.练习

将sum=1+2+3+……+n改编成递归结构。

五、预处理语句

1.宏定义

#definePI3.14

#definesqr(x)x*x

2.文件包含

#includestdio.h

#include“自定义的头文件.h”

3.编译预处理

条件编译:一是使代码精简,二是系统代码保护。

就上讲课的主要内容及相关重难点作简要回顾与总结。

讨论、复习函数的两大功能。

即#语句。

复习:包括函数头与函数体。

讨论:如果子函数过多或过于庞大,会有什么问题?以引出下一种结构。

将购物车程序整理为此种结构以方便进行比较。

原则上不大于500行

用面对对象的封装特性进行辅助讲解。

引入:子函数嵌套调用自己。

讨论:搬的方法。

找出递推公式

讨论:应使用哪种函数的定义格式?

教师可给出递推公式,由学生自行完成程序,教师检查、纠错,并总结。

强调:预处理语句后面不接“;”

课外作业:

1.复习本次课所授的相关知识内容;

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档