第三章 函数 清华大学 郑说 莉.pptVIP

  • 1
  • 0
  • 约1.26万字
  • 约 67页
  • 2019-03-09 发布于福建
  • 举报
第三章 函数 清华大学 郑说 莉

第三章 函数 清华大学 郑 莉 本章主要内容 函数的声明和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 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() { cout5 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 (symm(m)symm(m*m)symm(m*m*m)) coutm=m m*m=m*m m*m*m=m*m*mendl; } bool symm(long n) { long i,

文档评论(0)

1亿VIP精品文档

相关文档