C++语言程序设计(4).ppt





《C++语言程序设计(4).ppt》由会员分享,可在线阅读,更多相关《C++语言程序设计(4).ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+语言程序设计Lecture 41沈洋 南京航空航天大学第4章 函数o函数的概念o函数的调用过程o如何使用函数使程序具有更好的结构o局部变量与全局变量o递归函数o一些例子2沈洋 南京航空航天大学4.1 函数的概念o 函数的例子:ndouble myAVG=avg(1.0,4.0);o函数的作用:代码重用、使程序的结构更加清晰n一般来说,任何有实际应用价值的代码都由多个函数构成o函数可以有参数和返回值n在C+中,即使没有参数,括号仍然不能省略o函数的两种类型nC+标准库函数n自定义函数3沈洋 南京航空航天大学插曲:再论结构化o结构化程序设计方法的思想:自顶向下,逐自顶向下,逐步细化。基本结构,
2、组合而成。清晰第一,步细化。基本结构,组合而成。清晰第一,效率第二。书写规范,缩进格式。效率第二。书写规范,缩进格式。o一个简单的例子:求a,b,c三个数中的最大值4沈洋 南京航空航天大学举例o找出三个数中最大数输入三个数a,b,c找出a,b,c中最大数max输出最大数max找出a,b中最大数max找出max,c中最大数设max=aab?max=bmax c?max=c5沈洋 南京航空航天大学输出最大数max输入三个数a,b,cmax=aab?max=bmax c?max=c把它们组合起来,就得到完整解用函数可以更好地解决用函数可以更好地解决6沈洋 南京航空航天大学无参数函数类型 函数名()函
3、数体例:int getint()int c;cinc;return c;7沈洋 南京航空航天大学有参数函数类型 函数名(参数表)函数体 例:int max(int x,int y)int z;z=xy?x:y;return z;/返回值 类型函数名形参表函数体两者类型要求一致8沈洋 南京航空航天大学基本规则o调用一个函数前,必须完整地声明它的类型调用一个函数前,必须完整地声明它的类型信息信息o“类型”信息是什么?o对C+库函数而言,使用#include进行声明o对自定义函数而言,在使用前进行显式地声明n如何声明?n在程序代码的什么位置进行声明?9沈洋 南京航空航天大学4.2 函数调用过程 C+
4、程序执行从main()开始,调用其它函数后回到main()。在main中结束整个程序 int main()double a=1.2;double b=2.7;cout avg(a,b);return 0;double avg(double a,double b)double v=(a+b)/2;return v;123410沈洋 南京航空航天大学4.3 函数的使用o在程序开头,以原型形式声明声明函数o在程序的某个地方定义定义函数o在程序任何其他地方调用调用函数,函数可以不限次地调用o必须既声明又定义吗?不能将其合并进行吗?n可以,但这不是最好的做法11沈洋 南京航空航天大学4.3.1 声明函数
5、o声明函数的语法结构ntype function_name(argument_list);ntype:一种已知的数据类型nfunction_name:函数名nargument_list:参数列表(多个参数用逗号隔开)ndouble avg(double x,double y);n注意:函数声明是一个语句,因此在末尾有分号”;”ndouble avg(double x,y);正确吗?ndouble avg(double,double);正确吗?12沈洋 南京航空航天大学4.3.2 定义函数o形式上与声明类似,但需将;改为 o含义上定义是描述了函数所要实现的功能n插曲:“声明”的含义是什么?odo
6、uble avg(double x,double y)return(x+y)/2;o如果函数类型为void,则可以一个不带参数的return语句进行返回,也可以不写return语句n不写return会怎样呢?n那么为什么还要写return?13沈洋 南京航空航天大学4.3.3 调用函数o声明、定义完成的函数可被多次调用o函数调用相当于一个表达式(当类型不是void时),可以在任何表达式能够出现的场合出现n合理的例子:z=x+y+avg(a,b)+25.3;n极端的例子:无谓的调用 avg(a,b);o在使用函数进行赋值时应注意类型的一致需要时进行强制类型转换o在编译时会进行参数类型检查14沈洋
7、 南京航空航天大学4.4 示例:triangle函数o功能:计算1+2+no函数声明:nint triangle(int num);o函数定义:nint triangle(int n)int i;int sum=0;for(i=1;i=n;i+)sum=sum+i;return sum;可以不同15沈洋 南京航空航天大学调用情况o一定要triangle(n)吗?能否将main中的变量声明为m?o直接调用triangle(4)可以吗?o形式参数和实际参数int main()int n1;cout n1;cout“Function returned”triangle(n1);return 0;16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计

限制150内