上游充通大¥ 1895 1920 47 006 第3讲函数与结构化程序设计 上产充通大学 1920 07 2006 1.函数的使用 2.函数的声明和调用 3.函数的参数传递 4.变量属性 5. 结构化程序设计思想
第3讲 函数与结构化程序设计 1. 函数的使用 2. 函数的声明和调用 3. 函数的参数传递 4. 变量属性 5. 结构化程序设计思想
函数的例子一自定义函数 口已知三角形的边长,求三角形的面积: 口计算公式: 一个三角形,边长分别为a,b,c,则其面积$: S=p(p-a)(p-b)(p-c) 其中:p= a+b+c 2 口C+程序计算右图5个三角形的面积? 国上濟文通大9 3/72 面积计算 #include <iostream> #include <cmath> using namespace std; int main O double S1,p1; double a1=5.0,b1=5.0,c1=4.0; p1=(a1+b1+c1)/2: s1=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1) 日目 重复5次? 图上海夫通大华 472
3/72 函数的例子——自定义函数 已知三角形的边长,求三角形的面积; 计算公式: 一个三角形,边长分别为a, b ,c, 则其面积S: S ൌ ሺ െ aሻሺ െ ܾሻሺp െ ܿሻ ൌ ܾܽܿ 2 其中: C++程序计算右图5个三角形的面积? 4/72 #include <iostream> #include <cmath> using namespace std; int main () { double S1,p1; double a1=5.0,b1=5.0,c1=4.0; p1 = (a1+b1+c1)/2; s1 = sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1)) …… } 重复5次? 面积计算
面积计算 #include <iostream> #include <cmath> using namespace std; double calArea(double a,double b,double c) 构成 if ((a+b<=c)II(a+c<=b)II(b+c<=a)Ila<=0llb<=0llc<=0) 三角形? {cout<K“side length error!”;return-1:} double p=(a+b+c)/2; return sqrt (p*(p-a)*(p-b)*(p-c)); int main ( f double S1,p1,a1=5.0,b1=5.0,c1=4.0: 简单清晰 S1 calArea(a1,b1,c1); return 0; 圈上青文通大学 5/72 函数的例子一库函数 口可以将sin函数想象成 sin(x) 一个黑箱(black box) 口假设在它的上面放入一 个“值”,在它的下面 就会掉出“结果” 1.0 图上海夫通大华 6/72
5/72 #include <iostream> #include <cmath> using namespace std; double calArea(double a, double b, double c) { if((a+b<=c)||(a+c<=b)||(b+c<=a)||a<=0||b<=0||c<=0) {cout <<“ side length error!”; return -1;} double p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } int main ( ) { double S1,p1,a1=5.0,b1=5.0,c1=4.0; S1 = calArea(a1, b1 , c1); …… return 0; } 构成 三角形? 简单/清晰 面积计算 6/72 可以将sin函数想象成 一个黑箱(black box) 假设在它的上面放入一 个“值”,在它的下面 就会掉出“结果” 函数的例子——库函数
sin函数 口在程序中包含了头文件cmath..h,就能使用一些像sin的数学 函数。 口sin函数的参数必须是弧度。 回#include(1 ostream> #include <cmath> using namespace std: const float PI 3.14: int main() double alpha,result: alpha =90: result sin(alpha PI 180): cout("result ="<(result<(endl: systen("pause"): return 0: 周上濟文通大¥ 772 函数的例子 口如果改变了输入的参 数,函数就能返回不 sindx) 同的值。 口函数的参数可以是常 数、变量或表达式。 alpha =90 口右图中将调用4次sin 120° alpha alpha3 参数 函数的结果加起来, 并将其和存入变量 尚 total中 0.866 1.0 -1.0 返回值 total sin(90)+sin(120)+sin(alpha)+sin(alpha 3) 图上海夫通大华 8/72
7/72 在程序中包含了头文件cmath.h,就能使用一些像sin的数学 函数。 sin函数的参数必须是弧度。 sin函数 8/72 如果改变了输入的参 数,函数就能返回不 同的值。 函数的参数可以是常 数、变量或表达式。 右图中将调用4次sin 函数的结果加起来, 并将其和存入变量 total中 函数的例子 参数 返回值
使用函数 口函数是程序设计语言中最重要的部分,每一个程序都 要用到函数。 口即使不定义新的函数,在每一个完整的C+程序中都 必须有一个main0函数。 口函数来源于已有的库函数或者自己开发。 MFC The Microsoft Foundation Class Library. OpenGL 周上清通大学 9/72 使用函数的好处 口方便软件程序的规划、组织、编程与调试 √规模较大的程序不可能由一个人完成; √避免所有的代码放到main函数中; √程序可以划分为程序模块,分别编译。 口常用功能模块编写成函数, 减少重复编写程序段的工作量 口提高软件质量 main a b d 图上唐夫通大些 10/72
9/72 函数是程序设计语言中最重要的部分,每一个程序都 要用到函数。 即使不定义新的函数, 在每一个完整的C++程序中都 必须有一个main()函数。 函数来源于已有的库函数或者自己开发。 使用函数 10/72 方便软件程序的规划、组织、编程与调试 规模较大的程序不可能由一个人完成; 避免所有的代码放到main函数中; 程序可以划分为程序模块,分别编译。 常用功能模块编写成函数,减少重复编写程序段的工作量 提高软件质量 使用函数的好处