(中职)编程基础——C语言项目七 用函数实现模块化程序设计教学课件().pptx
《(中职)编程基础——C语言项目七 用函数实现模块化程序设计教学课件().pptx》由会员分享,可在线阅读,更多相关《(中职)编程基础——C语言项目七 用函数实现模块化程序设计教学课件().pptx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(中职)编程基础C语言项目七 用函数实现模块化程序设计教学课件(工信版)项目七 用函数实现模块化程序设计任务20 输出里程较长的中国高铁线函数的定义与调用任务21 求阶乘函数的嵌套调用和递归调用任务23 求长方体体积及侧面积函数的作用域任务22 找出数组中的最大值数组作为函数参数任务20 输出里程较长的中国高铁线函数的定义与调用任务描述:请编程实现:输入任意两条铁路线的长度,输出较长的高速铁路线,要求使用函数完成。案例分析:u 先定义一个函数max,求出大者u 在主函数中调用max函数,输出较大者7.1函数的定义1.函数定义的一般形式函数定义的一般形式为:类型名 函数名(形式参数列表)函数体函
2、数体包括声明部分和语句部分。任务20 输出里程较长的中国高铁线函数的定义与调用7.2函数的调用1.函数调用的一般形式 函数调用的一般形式为:函数名(实参列表);如果是调用无参函数,则“实参表列”可以没有,但括号不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。任务20 输出里程较长的中国高铁线函数的定义与调用7.3函数的参数和返回值 函数在定义的时候通过参数列表来指定参数的数量和类型,参数使得函数变得更加灵活,传入不同的参数可以让函数实现更为丰富的功能。比如,现在要造一辆车,那么这个车轮就使用一个函数来生产,但如果所有型号的汽车的车轮都一样,那就没办法个性化销售了。所以函数要支持个性化
3、定制,让车轮可以是圆的,也可以是不对,车轮都应该是圆的,那就定制图案,可以是梅花的,可以是五角星的,等等。这就是参数的用法。任务20 输出里程较长的中国高铁线函数的定义与调用1.形参和实参形参就是形式参数,函数定义的时候写的参数就叫形参,因为那时候它只是作为一个占位符而已。而实参就是在真正调用这个函数的时候,传递进去的数值,是一个实实在在的值。实参可以是常量、变量或表达式。形参和实参的功能其实就是用作数据传送。2.形参和实参间的数据传递在调用函数过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值。该值在函数调用期间有效,可以参加该函数中的运算。在调用函数过程中发生的实
4、参与形参间的数据传递称为“虚实结合”。如下例输出两个整数中的较大值,要求用函数来实现。3.函数的返回值函数的返回值是通过函数中的return语句获得的,return语句的一般形式为:return(表达式);或者 return 表达式;任务20 输出里程较长的中国高铁线函数的定义与调用任务20 输出里程较长的中国高铁线函数的定义与调用任务实施:includeint max(int x,int y)int z;z=xy?x:y;return(z);main()int max(int x,int y);int a,b,c;printf(请输入两条铁路线的长度:);scanf(%d,%d,&a,&b)
5、;c=max(a,b);printf(较长的铁路线为:%4d公里n,c);任务总结:本任务将知识融于腾飞的中国高铁案例中,了解中国高铁飞速发展的同时,升腾起对国家的热爱之情。同时在本任务中掌握了函数的定义和调用的相关知识。任务拓展:编写一个函数,要求函数能打印“*我爱你中国*”。任务20 输出里程较长的中国高铁线函数的定义与调用任务21 求阶乘函数的嵌套调用和递归调用任务描述:用递归方法求n!,n!=n(n-1)(n-2)21。案例分析:u 正整数阶乘是指所有小于及等于该数的所有正整数的积u 根据阶乘的性质可知,n!=(n-1)!n,而(n-1)!=(n-2)!(n-1),,1!=1u 第1阶
6、段是“回溯”,即将n!表示为(n-1)!直到1!此时1!=1,回溯结束u 第2阶段“递推”,从1!推算出2!=1!2=2,一直推算出n!7.4 函数的嵌套调用和递归调用 C语言的函数定义是相互独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,即不能嵌套定义,但函数的调用是可以嵌套的,即在调用一个函数的过程中,又调用另一个函数。如果在调用函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。任务21 求阶乘函数的嵌套调用和递归调用任务实施:任务21 求阶乘函数的嵌套调用和递归调用#include long fact(int n)long result;if(num0)r
7、esult=n*fact(n-1);elseresult=1;return result;main()long fact(int n);int n;long y;printf(请输入一个正整数:);scanf(%d,&n);y=fact(n);printf(%d的阶乘是:%ldn,n,y);任务总结:从本任务可以看出,使用递归的关键在于找出递归关系和递归终止条件。而对初学者来说,最容易出现的就是没有设置递归终止的条件,程序会无休止地调用函数本身而停不下来,直至内存耗尽而崩溃。在有些问题上,用递归实现更易于操作,如汉诺塔程序,但有些问题用递归实现会大大增加程序的运行时间并消耗大量内存,此时尽量不
8、使用递归函数。任务21 求阶乘函数的嵌套调用和递归调用任务拓展:Hanoi(汉诺)塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座A,B,C.开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。任务21 求阶乘函数的嵌套调用和递归调用任务22 找出数组中的最大值数组作为函数参数任务描述:请编程实现:输入任意两条铁路线的长度,输出较长的高速铁路线,要求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中职编程基础C语言项目七 用函数实现模块化程序设计教学课件 编程 基础 语言 项目 函数 实现 模块化 程序设计 教学 课件
限制150内