日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7-24练习 测试

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-24练习 测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*
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 <windows.h>
#include <math.h>

using namespace std;

class F
{
private:?? ??? ??? ??? ?//(1)私有數據成員
?? ?double x[5];?? ??? ?//存放xi(i = 1,2,3,4,5)的值,xi不能為0。
?? ?int n;
?? ?int k;
?? ?int h;?? ??? ??? ??? ?//公式中對應的變量,n不能為0。
?? ?double y;?? ??? ??? ?//存放計算結果。
public:?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//(2)公有成員函數
?? ?F(double a[], int _n, int _k, int _h);?? ??? ?//構造函數,分別初始化x、n、k、h。
?? ?void calc();?? ??? ??? ??? ??? ??? ??? ??? ?//根據公式計算y的值。

?? ?//(3)友元函數
?? ?friend void print(F f);?? ??? ??? ??? ??? ??? ?// 輸出對象f所有數據成員。

};

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 sum = 1;
?? ?double sum2 = 0;//一開始我用的1 不好意思,忘記是加了
?? ?for (int i = 0; i < n; i++)
?? ?{
?? ??? ?sum *= pow(x[i], k)*log( fabs(x[i]) );
?? ?}

?? ?for (int i = 0; i < n; i++)
?? ?{
?? ??? ?sum2 += pow(x[i], h);
?? ?}

?? ?sum = sum / sum2;

?? ?for (int i = 0; i < n; i++)
?? ?{
?? ??? ?sum2 += sqrt( fabs(x[i]) );
?? ?}
?? ?sum2 = sum2 / n;

?? ?y = pow((sum - sum2) , (k + h));

}

void print(F f)
{
?? ?cout << "a[] = " << endl;
?? ?for (int i = 0; i < 5; i++)
?? ?{
?? ??? ?cout << f.x[i] << " ?" << endl;
?? ?}
?? ?cout << "h = " << f.h << " ?" << endl;
?? ?cout << "n = " << f.n << " ?" << endl;
?? ?cout << "k = " << f.k << " ?" << 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);
?? ?system("pause");
?? ?return 0;
}

總結

以上是生活随笔為你收集整理的7-24练习 测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。