收藏 分享(赏)

第八讲:函数.ppt

上传人:tkhy51908 文档编号:9244042 上传时间:2019-07-30 格式:PPT 页数:22 大小:93KB
下载 相关 举报
第八讲:函数.ppt_第1页
第1页 / 共22页
第八讲:函数.ppt_第2页
第2页 / 共22页
第八讲:函数.ppt_第3页
第3页 / 共22页
第八讲:函数.ppt_第4页
第4页 / 共22页
第八讲:函数.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第八讲:函数,一、函数的声明与定义 二、函数的调用 三、函数的参数与返回值 四、函数的嵌套与递归调用 五、变量的作用域 六、数组名作为函数参数,一、函数的声明与定义,定义函数的基本形式:由函数说明和函数体两部分组成。 根据函数是否需要参数,可将函数分为无参函数和有参函数两种。 (1)无参函数的一般定义形式 function 函数名():函数类型 说明语句部分;可执行语句部分;,(2)有参函数的一般形式 function 函数名(参数1:数据类型 ,参数2:数据类型 ):函数类型 说明语句部分;可执行语句部分;调用有参函数时,由函数的调用语句赋予这些参数实际的值。,二、函数的调用,定义好一个函数

2、后,可以在帧代码中对其进行调用。 如果是调用无参函数,调用格式为:函数名();即函数名直接出现在表达式中,或者直接把函数名作为一条语句; 如果是调用有参函数,则还应在括号中给出相应的实参。即:函数名(实际参数表),注意:实参的个数、类型和顺序,应该与被调用函数所要求的参数个数、类型和顺序一致,才能正确地进行数据传递。,(1)函数表达式:函数作为表达式的一项,出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。如: c=2*sum(first, second); (2)函数语句:C语言中的函数可以只进行某些操作而不返回函数值,这时的函数调用可作为一条独立的语句。如: su

3、m(first, second); (3)函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。 c=sum(first,sum(first,second);,函数调用时需注意的地方:,(1)调用函数时,函数名称必须与定义的函数名称完全一致。 (2)实参在类型上按顺序与形参,必须一一对应和匹配。 (3)如果实参表中包括多个参数,对实参的求值顺序随系统而异。有的系统按自左向右顺序求实参的值,有的系统则相反。,返回语句return的两个重要用途:,1)立即退出函数,程序返回到调用语句处继续进行。2) 可用来回送一个数值。,例:定

4、义一个函数,用于求两个数中较大的数。,函数的定义: function max(num1:int,num2:int):intif(num1num2) return num1;else return num2; 函数的调用: textBox.text=String(max(51,52);,三、函数的参数与返回值,1.函数的形参与实参 定义函数时,函数首部括号内的参数被称为形式参数,简称形参。形参只能在该函数体内使用。 调用函数时,函数名后括号内给出的值称为实际参数,简称实参。发生函数调用时,调用函数把实参的值,传送给被调用函数的形参,从而实现数据传递。,例:实参对形参的数据传递,s(100);fu

5、nction s(n:int)var i:int;textBox1.text=String(n);for(i=n-1;i=1;i-)n=n+i;textBox2.text=String(n); 请问该程序段执行的结果?,说明:,1)实参可以是常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 2)形参变量只有在被调用时,才分配内存单元;调用结束时,即刻释放所分配的内存单元。因此,形参只有在该函数内有效。3)实参对形参的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。4)实参和形参占用不同的内存单

6、元,即使同名也互不影响。5)实参和形参的类型应相同或赋值兼容。,例:分析程序功能并写出运行结果,var n1:int=3; var n2:int=1; var n3:int=2;if(n1n2) f(n1,n2); else if(n2n3) f(n2,n3);else f(n1,n2); textBox1.text=String(n1); textBox2.text=String(n2); textBox3.text=String(n3);function f(n:int,m:int)var t:int;t=n;n=m;m=t; ,三、函数的参数与返回值(续),2.函数的返回值与函数类型 函

7、数可以分为有返回值函数和无返回值函数两种。 (1)函数返回值与return语句 函数的返回值,是通过函数中的return语句来获得的。 return语句的一般格式: return ( 返回值表达式 ); return语句的功能:返回调用函数,并将“返回值表达式”的值带给调用函数。,注意:调用函数中无return语句,并不是不返回一个值,而是一个不确定的值。为了明确表示不返回值,可以用“void”定义成“无(空)类型”。,(2)函数类型 在定义函数时,对函数类型的说明,应与return语句中、返回值表达式的类型一致。 如果不一致,则以函数类型为准。如果缺省函数类型,则系统一律按整型处理。 如果函

8、数不返回值,可在定义函数时将函数类型定义为void,表示函数为无类型或空类型, 可禁止在调用函数中使用被调用函数的返回值。,四、函数的嵌套与递归调用,1.函数的嵌套调用 函数的嵌套调用是指,在执行被调用函数时,被调用函数又调用了其它函数。例:计算s=1k+2k+3k+Nk,textBox.text=String(“1到10各数的3次方累加和为:“+f2(10,3);function f1(n:int,k:int):Number /计算n的k次方var power:Number=1;for(var i:int=1;i=k;i+)power*=n;return power; function f2

9、(n:int,k:int):Number /计算1到n各数/的k次方的累加和var sum:Number=0;for(var i:int=1;i=n;i+);sum+=f1(i,k);return sum; ,四、函数的嵌套与递归调用(续),2.函数的递归调用 递归: 即函数的自我调用。如果函数内部一个语句直接或间接地调用了函数自己,则称这个函数是“递归”。 注意:为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用。 递归函数的主要优点:是可以把算法写的比使用非递归函数时更清晰更简洁,而且某些问题,特别是与人工智能有关的问题,

10、更适宜用递归方法。,例:用递归法计算求n的阶乘,textBox.text=String(factor(4);function factor(n:int):intvar answer:int;if(n1) answer=factor(n-1)*n;else return(1);return(answer); ,五、变量的作用域,在函数内部定义的变量,被称为局部变量。局部变量在函数被调用时分配,在被调函数执行结束时释放,只在本函数范围内有效。 例如: var n1=1; f(); textBox.text=String(n1);function f()var n1:int=2; 输出的内容是什么?

11、,五、变量的作用域(续),帧上处于任何函数之外的变量定义,在定义之处往下一直有效,除非被函数内的同名变量屏蔽。例如: var n1=1; f(); textBox.text=String(n1);function f()n1=2; 则输出的内容是什么?,六、数组名作为函数参数,当把数组名作为函数参数时,数组名代表着该数组在内存中的地址。即此时是把地址作为值在进行传递。此时,使用下标,是在对实参进行操作。如下例:,var arr1:Array=new Array; var arr2:Array=new Array; arr10=10; arr20=20; swap(arr1,arr2); textBox.text=String(arr10)+“ “+String(arr20);function swap(a1:Array,a2:Array):voidvar temp:int;temp=a10;a10=a20;a20=temp; 请写出程序运行的结果。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报