文档详情

第三章 函数 清华大学 郑 莉ppt课件.ppt

发布:2017-05-27约1.29万字共66页下载文档
文本预览下载声明
第三章 函数 清华大学 郑 莉 本章主要内容 函数的声明和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 C++系统函数 函数的声明 函数是面向对象程序设计中,对功能的抽象 函数声明的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 函数的声明 形式参数表 type1 name1, type2 name2, ..., typen namen 函数的返回值 由 return 语句给出,例如: return 0 无返回值的函数(void类型),不必写return语句。 函数的调用 调用前先声明函数原型: 在调用函数中,或程序文件中所有函数之外,按如下形式说明: 类型标识符 被调用函数名 (含类型说明的形参表); 调用形式 函数名(实参列表) 嵌套调用 函数可以嵌套调用,但不允许嵌套定义。 递归调用 函数直接或间接调用自身。 例3-1编写一个求x的n次方的函数 #include iostream using namespace std; double power (double x, int n); int main() { cout 5 to the power 2 is power(5,2) endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 例3-1编写一个求x的n次方的函数 运行结果: 5 to the power 2 is 25 例3-2 数制转换 题目: 输入一个8位二进制数,将其转换为十进制数输出。 例如:11012 = 1(23) + 1(22) + 0(21) + 1(20) = 1310 所以,如果输入1101,则应输出13 #include iostream using namespace std; double power (double x, int n); int main() { int i; int value = 0; char ch; cout Enter an 8 bit binary number ; for (i = 7; i = 0; i--) { cin ch; if (ch == 1) value += int(power(2,i)); } cout Decimal value is valueendl; } double power (double x, int n) { double val = 1.0; while (n--) val *= x; return(val); } 例3-3编写程序求π的值 其中arctan用如下形式的级数计算: 直到级数某项绝对值不大于10-15为止;π和x均为double型。 #includeiostream using namespace std; int main() { double a,b; double arctan(double x) ; //函数原型声明 a=16.0*arctan(1/5.0) ; b=4.0*arctan(1/239.0) ; //注意:因为整数相除结果取整, //如果参数写1/5,1/239,结果就都是0 coutPI=a-bendl; } double arctan(double x) { int i; double r,e,f,sqr; sqr=x*x; r=0; e=x; i=1; while(e/i1e-15) { f=e/i; r=(i%4==1)? r+f : r-f ; e=e*sqr; i+=2; } return r ; } 例3-4 寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。 回文:各位数字左右对称的整数。 例如:11满足上述条件 112=121,113=1331。 分析: 10取余的方法,从最低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。 #include iostream using namespace std; int main() { bool symm(long n); long m; for(m=11; m1000; m++) if
显示全部
相似文档