homework

#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
class F
{
private:
	double x[5];
	int m_n,m_k,m_h;
	double m_y;
public:
	F(double a[],int n,int k,int h);
	void calc();
	friend void print(F f);
};
F::F(double a[],int n,int k,int h)
{
	m_n=n;
	m_k=k;
	m_h=h;
	for(int i=0;i<m_n;i++)
	{
		x[i]=a[i];
	}
}
void F::calc()
{
	double sum=0,mul=1,a=0;
	for(int i=0;i<m_n;i++)
	{
		mul*=pow(x[i],m_k)*log(fabs(x[i]));
		sum+=pow(x[i],m_h);
		a+=(sqrt(fabs(x[i]))/m_n);
	}
	m_y=pow(mul/sum-a,m_k+m_h);
}
void print(F f)
{
	for(int i=0;i<f.m_n;i++)
	{
		cout << f.x[i] << endl;
	}		
	cout << f.m_n << " " << f.m_k << " " << f.m_h << endl;
	cout << f.m_y << endl;
}
int main()
{
	double a[5]={3.2,-2.5,-4.2,3.6,5.2};
	F f(a,5,3,4);
	f.calc();
	print(f);
	return 0;
}

1.根据公式计算y的值。其中∑表示求各项的和,∏表示求各项的积。定义一个类F,实现上述功能。具体要求如下:
(1)私有数据成员
double x[5]:存放xi(i=1,2,3,4,5)的值,xi不能为0。
int n,k,h:公式中对应的变量,n不能为0。
double y:存放计算结果。
(2)公有成员函数
F(double a[], int _n, int _k, int _h):构造函数,分别初始化x、n、k、h。
void calc():根据公式计算y的值。
(3)友元函数
void print(F f):输出对象f所有数据成员。
(4)在主函数中对该类进行测试。测试数据xi取3.2、-2.5、-4.2、3.6、5.2,n取5,k取3,h取4,测试结果y=2.59513×1040。注意公式中用到的函数( 乘方、对数、绝对值、平方根)请在头文件math.h中查找。正确的输出结果如下:
3.2 -2.5 -4.2 3.6 5.2
5 3 4
2.59513e+040

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值