深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 39 页 共 83 页
第六单元(1):函数基础
教学内容 函数基础
教学目标
应知 函数的定义与调用
进行有参、无参函数的定义并进行调用 应会
进行有返回值、无返回值函数的定义与调用
难点 函数的定义和调用方法
教学方法
通过程序改造,将程序中的功能模块独立出来而引入函数的介绍。
教学过程
1,在屏幕上打印五行“*”号,每行分别是5个,30个,40个,28个,50
个“*”(考查学生编程方法,引入函数的使用及意义)
2,比较两个整型数a,b,输出较大的一个数(不使用函数)
3,将以上操作的数据比较部分放在用户函数中进行(函数定义和调用、函数参数传递)
4,将函数调用两次,实现输出三个数据a,b,c中的最大数(函数可以多次调用)
5,改写函数,一次性实现输出三个数中的最大数(练习函数定义、调用)
6,编写函数
编一函数sum,求1+1/2+1/3+…+1/n的值。
算法分析,
1,由于该表达式的值与n有关,并且n是可变的,所以应该把n作为函数参数。
2,由于需要返回float型值,因此,函数类型说明为double型,
编程求s=s1+s2+...+s10的值,其中,
sn=1+1/2+1/3+1/4+1/5+...+1/n (n=1,2,3,...,10)
深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 40 页 共 83 页
算法分析,
1,在前例中,已编写了函数sum(),用以求1+1/2+1/3+1/4+1/5+...+1/n的值
2,只要在主函数中,分别用 1,2,...,10 作为参数,调用函数
sum(1),sum(2),...,sum(10),并把函数值累加到变量s即可。
学生容易出错的地方
不应该在函数定义语句的括号后加分号
对无返回值函数的调用使用赋值语句
问题与讨论
为什么使用函数呢?
函数的参数起什么作用?
什么情况下使用用户函数比较好?
小结(可由问题与讨论方式给出)
函数如何定义?
调用一个函数需要具备哪些条件呢?
1,首先被调函数必需存在。或是库函数或是自定义函数。
2,如果是库函数,一般应在文件开头用#include命令将调用的库函数所需要的信息“包含”到文件中来。例如,当用到求开方函数sqrt()时,需要加上,
#include,math.h”
3,对于自定义函数,或者被调函数在主调函数之前,或者在调用之前,进行了函数说明,就与它的定义先后无关。最可取的方法是:将程序中所有自定义的函数都放在程序的前面进行说明。
函数定义与函数声明有什么区别?
函数中的数据从哪里来?
调用了用户函数后,整个程序的执行顺序如何?
定义函数时的函数类型同函数返回值的类型有什么联系?
有返回值和无返回值的函数分别如何调用?函数返回值是什么意思,有什么意义?
深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 41 页 共 83 页
课后任务
用函数求1-100的累计和
用函数求素数
用函数求水仙花数