已知sin函数计算公式为
模块化
模块化思路:将复杂问题的求解分解成若干个简单的问题,这些简单的问题称为模块。每个模块功能相对独立,且相互联系。这些模块相互作用可完成复杂问题的求解。问题分解时,要遵循高内聚、低耦合的基本思想。
问题分解:根据求sin函数值的公式可知,求解sin函数值主要由乘方、阶乘及求和等3个简单问题构成。问题分解及模块之间的联系如下:
模块设计:每个模块可接受多个值,可返回1个值,因此,每个模块可对应一个函数(即函数的形参可接受多个值,且可返回1个值)
程序实现
fac()模块的函数实现源码
long long int fac(int n) { if (1 == n) return 1; else return n * fac(n - 1); }
power()模块的函数实现源码
long double power(double a, int b) { long double sum = 1; for (int i = 1; i <= b; i++) { sum *= a; } return sum;
sn()模块的函数实现源码
long double sn(double a, int b) { long double s; s = power(a, b) / fac(b); return s; }
sinx()模块的函数实现源码
long double sinx(double x,int n) //n为项数,x为x的值 { long double sum2 = 0.0; int y = 1; for (int i = 1; i <= n; i++) { if (i % 2 == 1) { sum2 += sn(x, y); } else if (i % 2 == 0) { sum2 += -1 * sn(x, y); } y = y + 2; } return sum2; }
main()模块的函数实现源码
int main() { int n; double x; long double k; scanf_s("%lf%d", &x,&n); k=sinx(x, n); printf("%Lf", k); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)