首先是自己写的代码如下:
// sinx.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "math.h"
//该函数计算阶乘
double ProductFunc(double x)
{
double product =x;
while (1!=x)
{
product *= (--x);
}
return product;
}
double myTestFunc(double inputx)
{
//分子
double fenzi = inputx;
//符号
int fuhao = 1;
//分母
double fenmu = 1;
//分母总和
double fenmuS = 1;
//记录总结果总和
double sum = 0;
//循环递归调用
do
{
//累加计算
sum += fuhao*fenzi /fenmuS;
//分子变化
fenzi *= inputx*inputx;
//符号变化
fuhao = fuhao *(-1);
//分母变化
fenmu += 2;
//分母总和变化
fenmuS = ProductFunc(fenmu);
} while (abs(fenzi/fenmu)>1e-5);//循环条件
//返回总和
return sum;
}
#define PI 3.1415926
int _tmain(int argc, _TCHAR* argv[])
{
double inputx = (PI)/6;
double kk = myTestFunc(inputx);
double kkk = sin(inputx);
return 0;
}
先听故事,再编程序。故事是这样的:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?他说:是啊,太乐了!故事讲完了。不懂吗?好好学高数。否则,挂了不冤。
编程序求出sin(π/2)、cos(87°)
程序的要求是这样的:(1)求sin、cos时,不能用数学库函数(即不得用#include<Cmath>),而是自己编函数实现,为区别,可以分别起名为mysin和mycos;(2)自定义函数要写在main函数之后;(3)自定义函数的效率问题必须考虑;(4)关于精度:当最后一项的绝对值小于0.00001时,累加结束。
实验目的:学会使用自定义函数解决实际问题
实验内容:定义自定义函数,计算sin和cos的近似值
【先上调试后正确的程序】此程序上我也经历了和大家一样的磨难,犯的错误很“隐蔽”,将在后面细表。