《第四章函数优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第四章函数优秀PPT.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章函数第一页,本课件共有15页v函数定义的基本格式为:访问修饰符static 返回值类型 函数名(参数列表)/函数体第二页,本课件共有15页4.1.3 案例拓展v例4-1:定义函数,输出三个整数的最大值。private void ouputmaxint(int a,int b,int c)int max=a;if(b max)max=b;if(c max)max=c;Console.WriteLine(max);v例4-2:定义函数,返回整数序列中的最大值。private int findmaxint(int a)int max,i;max=a0;for(i=1;i max)max=ai;
2、return max;第三页,本课件共有15页4.2.2 案例步骤v函数调用的基本方式是:函数名(参数列表);函数定义中的参数称之为形式参数(简称形参),函数调用中的参数称之为实际参数(简称实参)。第四页,本课件共有15页4.2.3 案例拓展v例4-3 整数交换函数的定义与调用/函数定义void swapint(int a,int b)int temp=a;a=b;b=temp;/函数调用int x=5,y=6;swapint(x,y);Console.WriteLine(x=0,y=1,x,y);执行后,输出为:x=5,y=6。为什么为什么x和和y的值没有发生变化?的值没有发生变化?第五页,
3、本课件共有15页4.2.3 案例拓展v例4-4 数组元素增加函数的定义与调用/函数定义函数定义void addarray(int a)for(int i=0;i a.Length;i+)ai+=1;/函数调用函数调用int intarray=new int51,2,3,4,5;addarray(intarray);for(int i=0;i intarray.Length;i+)Console.Write(0 ,intarrayi);执行后,输出为:2 3 4 5 6。为什么intarray数组的元素值与a数组的值同步了?第六页,本课件共有15页4.2.3 案例拓展v值类型和引用类型在.NET
4、 Framework中,数据类型可以分为两大类:值类型和引用类型。从概念上看,取区别是值类型直接存储其值,而引用类型存储对值的引用,它类似于C语言中指针。在C#中,基本数据类型如int和bool都是值类型。同样地,结构和枚举也属于值类型。然而,大多数更复杂的C#数据类型,包括后面章节学到的类都是引用类型。v案例分析例4-3中x和y是值类型,传递的是变量的值,在函数内对变量a、b的变化与x、y无关。例4-4中数组是引用类型,传递的是变量的引用,因此函数外使用变量intarray(即使用内存块中的数据)时获取的是更新后的新值。第七页,本课件共有15页4.2.3 案例拓展vref关键字如果希望值类型
5、参数也能像引用类型参数一样把形参变化反馈给实参,只需在形参和实参前同时加上ref关键字。例如例4-3的程序可以改写为:/函数定义函数定义void swapint(ref int a,ref int b)int temp=a;a=b;b=temp;/函数调用函数调用int x=5,y=6;swapint(ref x,ref y);Console.WriteLine(x=0,y=1,x,y);执行后,输出为:x=6,y=5。第八页,本课件共有15页4.2.3 案例拓展vout关键字例4-5 求学生的成绩总分和不及格人数。/函数定义int calculate(int a,ref int total)
6、int counter=0;for(int i=0;i a.Length;i+)total+=ai;if(ai=0)/判断是否有解 x1=(-1*b+Math.Sqrt(delt)/(2*a);x2=(-1*b-Math.Sqrt(delt)/(2*a);Console.WriteLine(x1=0,x2=1,x1,x2);Console.Read();/屏幕暂停 第十一页,本课件共有15页4.3.2 案例步骤v常见数学函数名名 称称作作 用用Abs返回指定数字的绝对值Exp返回e的指定次幂Ceiling返回大于或等于指定数字的最小整数Floor返回小于或等于指定数字的最大整数Round将值舍
7、入到最接近的整数或指定的小数位数Power返回指定数字的指定次幂Sin返回指定角度的正弦值Asin返回正弦值为指定数字的角度注意三个取整方法Ceiling、Floor和Round的区别,例如:int x=Math.Ceiling(2.7);/x=3int x=Math.Floor(2.7);/x=2int x=Math.Round(2.7);/x=3int x=Math.Round(2.2);/x=2第十二页,本课件共有15页4.3.3 案例拓展v函数(即方法)调用方式有:v对象名.方法名(参数):有关类与对象的知识在后面章节中详细介绍,这里暂不介绍。v类名.方法名(参数):这是静态方法的调用
8、方式,例如上例中的Math.Sqrt方法。例如Microsoft.VisualBasic命名空间中Information类的方法,常用方法见下表:名名 称称作作 用用IsNumeric返回bool值,验证表达式是否可以计算为数字类型IsDate返回bool值,验证表达式是否表示一个有效的Date值IsNothing返回bool值,验证表达式是否未被指派对象第十三页,本课件共有15页4.3.3 案例拓展使用Information类应先添加程序集Microsoft.VisualBasic.dll的引用。做法是在当前项目上右键,弹出菜单中选择“添加引用”菜单,将弹出如下图所示的“添加引用”对话框,之后在使用Information的代码文件中引入Microsoft.VisualBasic命名空间,此时在代码中就可以使用Information类的各个方法。第十四页,本课件共有15页v例如:vInformation.isNumeric(“3.14”);/truevInformation.IsDate(2008-5-6);/truevInformation.IsDate(2008,5,6);/truevInformation.IsDate(2008);/false第十五页,本课件共有15页