运行结果: m=11m*m=121m*m*m=1331 m=101m*m=10201m*m*m=1030301 m=111m*m=12321m*m*m=1367631 16
运行结果: m=11 m*m=121 m*m*m=1331 m=101 m*m=10201 m*m*m=1030301 m=111 m*m=12321 m*m*m=1367631 16
C++语言程序设计 清华大学郑莉 例3-5 计算如下公式,并输出结果: 数的声明与使 SIN2(r)+SIN2(s) 当r2≤s2 k= SIN(r*s) 当r2>s2 2 其中r、s的值由键盘输入。SINx的近 用 似值按如下公式计算,计算精度为10-6: n=I (2n-10y 17
C++语言程序设计 清华大学 郑莉 17 例3-5 计算如下公式,并输出结果: 其中r、s的值由键盘输入。SIN x的近 似值按如下公式计算,计算精度为10-6: 函 数 的 声 明 与 使 用 + = 2 2 2 2 2 2 ( * ) r 2 1 ( ) ( ) r SIN r s s SIN r SIN s s k 当 当 = − − − = − + − + = − 1 2 1 1 3 5 7 (2 1)! ( 1) 1! 3! 5! 7! n n n n x x x x x SINx
#include <iostream> #include<cmath> using namespace std; void main() double k,r,s; double tsin(double x); cout<<"r="; cin>>r; cout<<"s="; cin>>s; if (r*r<=s*s) k=sqrt(tsin(r)*tsin(r)+tsin(s)*tsin(s)); else k=tsin(r*s)/2; cout<<k<<endl; 18
#include <iostream> #include<cmath> using namespace std; void main() { double k,r,s; double tsin(double x); cout<<"r="; cin>>r; cout<<"s="; cin>>s; if (r*r<=s*s) k=sqrt(tsin(r)*tsin(r)+tsin(s)*tsin(s)) ; else k=tsin(r*s)/2; cout<<k<<endl; } 18
double tsin(double x) double p=0.000001,g=0,t=x; int n=1; do g=g+t; n++; t=-t*x*x/(2*n-1)/(2*n-2); while(fabs(t)>=p)月 return g; 运行结果: r=5 s=8 1.37781 19
double tsin(double x) { double p=0.000001,g=0,t=x; int n=1; do { g=g+t; n++; t=-t*x*x/(2*n-1)/(2*n-2); }while(fabs(t)>=p); return g; } 运行结果: r=5 s=8 1.37781 19
C++语言程序设计 清华大学郑莉 例3-6投骰子的随机游戏 数的声 游戏规则是:每个骰子有六面,点数分别为1、2、 3、4、5、6。游戏者在程序开始时输入一个无符号整 数,作为产生随机数的种子。 每轮投两次骰子,第一轮如果和数为7或11则为胜, 与 游戏结束;和数为2、3或12则为负,游戏结束;和数 使 为其它值则将此值作为自己的点数,继续第二轮、第 三轮.直到某轮的和数等于点数则取胜,若在此前出 用 现和数为7则为负。 由rolldice函数负责模拟投骰子、计算和数并输出 和数。 20
C++语言程序设计 清华大学 郑莉 20 例3-6投骰子的随机游戏 游戏规则是:每个骰子有六面,点数分别为1、2、 3、4、5、6。游戏者在程序开始时输入一个无符号整 数,作为产生随机数的种子。 每轮投两次骰子,第一轮如果和数为7或11则为胜, 游戏结束;和数为2、3或12则为负,游戏结束;和数 为其它值则将此值作为自己的点数,继续第二轮、第 三轮.直到某轮的和数等于点数则取胜,若在此前出 现和数为7则为负。 由rolldice函数负责模拟投骰子、计算和数并输出 和数。 函 数 的 声 明 与 使 用