第11周项目7-呵呵,真是太乐(泰勒)了
生活随笔
收集整理的這篇文章主要介紹了
第11周项目7-呵呵,真是太乐(泰勒)了
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1./*
2. * Copyright (c) 2014, 煙臺大學計算機學院
3. * All rights reserved.
4. * 文件名稱:test.cpp
5. * 作 者:劉暢
6. * 完成日期:2014 年 11 月 8 日
7. * 版 本 號:v1.0
8. *
9. * 問題描述:用sin泰勒展式編寫程序,求sin(π/2)和sin(56° )的值精度要求達到小數(shù)點后6位;
10. * 輸入描述: 啥也不用輸;
11. * 程序輸出:sin(π/2)和sin(56° )的值;
12. */
#include <iostream> using namespace std; double mysin(double); double myabs(double); const double pi = 3.1415926; int main() {cout << "sin(π/2)的值為" << mysin(pi / 2) << endl;cout << "sin(56° )的值為" << mysin(pi * 2 * 56 / 360) << endl;return 0; }double mysin(double x) {double sum = x, fact = x, n;int i = 1, s = 1, m = 1;do{m = m * (i + 1) * (i + 2);fact=fact*x*x;n = fact / m;s = -s;sum = sum + s * n;i = i + 2;}while (myabs(n) > 1e-5);return sum; }double myabs(double c) {if (c < 0)c = -c;elsec = c;return c; }
#include <iostream> using namespace std; double mysin(double); double myabs(double); const double pi = 3.1415926; int main() {cout << "sin(π/2)的值為" << mysin(pi / 2) << endl;cout << "sin(56° )的值為" << mysin(pi * 2 * 56 / 360) << endl;return 0; }double mysin(double x) {double sum = x, fact = x, n;int i = 1, s = 1, m = 1;do{m = m * (i + 1) * (i + 2);fact=fact*x*x;n = fact / m;s = -s;sum = sum + s * n;i = i + 2;}while (myabs(n) > 1e-5);return sum; }double myabs(double c) {if (c < 0)c = -c;elsec = c;return c; }
運行結(jié)果:
?
知識點總結(jié):
將之前的學習內(nèi)容和現(xiàn)在的函數(shù)聚集在了一起,溫故而知新。
學習總結(jié):
剛做的時候想從x開始, 所以對 i 賦值為-1;結(jié)果果斷行不通啊,m*(i+1)*(i+2)=0導致過程直接就斷了,當時沒想明白,去看了下老師的博客才搞清楚問題出在哪,又粗心了一次,唉唉。。。
?
總結(jié)
以上是生活随笔為你收集整理的第11周项目7-呵呵,真是太乐(泰勒)了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以表白的生日祝福(附源码与修改教程)
- 下一篇: 粉色的❤情人节❤祝福(附源码与修改教程)