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