C++扬帆远航——15(项目二,太乐了)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:tailezhanshi.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年3月23日 * 版本号:V1.0 * 问题描述:运用泰勒展式求出π/2,与56°的正弦值 * 程序输入:无 * 程序输出:见运行结果 */ #include <iostream> using namespace std; float mysin(float a); float myabs(float n); const double pi=3.1415926; int main() { cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl; cout<<"sin(56)的值为"<<mysin((56.0/180.0)*pi)<<endl; return 0; } float mysin(float a) { float n=0; float m; int i,j; float x=1; int ji=1; for(i=1;;i++) { if(i%2!=0) { for(j=1;j<=2*i-1;j++) { x=x*a; ji=ji*j; } m=x/ji; ji=1; x=1; } else { for(j=1;j<=2*i-1;j++) { x=x*a; ji=ji*j; } m=(-1)*x/ji; ji=1; x=1; } n=m+n; float t; t=m; if(m<0) t=myabs(m); if(t<0.00001) { break; } } return n; } float myabs(float n) { n=-n; return n; }
运行结果:
心得:
分清程序的层次,每一步该做什么,然后在定义变量的时候注意使用正确的类型,不然会导致最后结果有很小的误差。在做此程序的时候,也不是一口气做完没有Bug。做完之后又进行单步运行,才发现程序中有好多问题,不过最后都改正了