我是靠谱客的博主 微笑夏天,最近开发中收集的这篇文章主要介绍1.根据公式计算y的值。其中∑表示求各项的和,∏表示求各项的积。定义一个类F,实现上述功能。具体要求如下:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

#include<iostream>
#include<math.h>
using namespace std;
class F
{
	friend void print(F f);
	private:
		double x[5];
		int n,k,h;
		double y;
	public:
		F(double a[],int _n,int k,int _h);
		void calc();
}; 
F::F(double a[],int _n,int _k,int _h) 
{
	for(int i=0;i<5;i++)
	{
		x[i]=a[i];	
	} 
	n=_n;
	k=_k;
	h=_h;
}
void F::calc()
{
	double a=1,b=0,c,d=0;
	for(int i=0;i<5;i++)
	{
		a*= pow(x[i], k)* log( fabs(x[i]));
		b+= pow( x[i], h);
		c=fabs( x[i]);
		d= sqrt(c)*0.2;
	}
	y=pow((a/b-d),k+h);
} 
void print(F f)
{
	for(int i=0;i<5;i++)
	{
		cout<<"x["<<i+1<<"]"<<"=";
			cout<<f.x[i]<<endl;
	}
	cout<<"n="<<f.n<<endl;
	cout<<"k="<<f.k<<endl;
	cout<<"h="<<f.h<<endl;
	cout<<"y="<<f.y<<endl;
}
int main()
{
	double x[5]={3.2,-2.5,-4.2,3.6,5.2};
	F f1(x,5,3,4);
	f1.calc();
	print(f1);
	return 0;	
}

运行结果如下

         个人认为本题一个饶人的地方是要求定义double x[5],所以按理说应该为x[0],x[1],x[2],x[3],x[4]。然而题目又要求存放xi(i=1,2,3,4,5)的值。如果按1,2,3,4,5存放那么x[5]的值一定不是理想值。

          斗胆在第41行输出数组时写上i+1,(整个题目是按照x[0],x[1],x[2],x[3],x[4]格式赋值计算的,只有最后输出时使用i+1)不知审题是否正确。

 

最后

以上就是微笑夏天为你收集整理的1.根据公式计算y的值。其中∑表示求各项的和,∏表示求各项的积。定义一个类F,实现上述功能。具体要求如下:的全部内容,希望文章能够帮你解决1.根据公式计算y的值。其中∑表示求各项的和,∏表示求各项的积。定义一个类F,实现上述功能。具体要求如下:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部