使用c ++和文件查找曲线下的区域

时间:2014-03-19 20:58:09

标签: c++ fstream

我已经更新了代码,现在我知道如何将前两个数字存储到x1和z1中但是如何让它进入x2和z2以计算面积?感谢。

这是我到目前为止所拥有的:

#include <fstream>
#include <iostream>

double x1=0;
double x2=0;
double z1=0;
double z2=0;
double n;
double sum;
double area;

using namespace std;

int main()
{
    ifstream infile;
    infile.open("xydata.dat");
    infile.ignore(1000, '\n') ;
    while(!infile.eof())
    {
            infile>>n;
            if(n>=20.00&&n<=20.50)
            {
                    x1=n
            }
            else
            {
                    z1=n
             }

area = (x1+x2)*(z2-z1)/2;

}

    cout<<"The sum of all are under the curve is "<<sum<<"."<<endl;

    return 0;
}

,文件在这里:
xydata.dat

x值y值
20.00 0
20.02 15
20.04 27
20.06 39
20.08 54
20.10 65
20.12 75
20.14 84
20.16 93
20.18 101
20.20 108
20.22 113
20.24 116
20.26 115
20.28 112
20.30 107
20.32 100
20.34 92
20.36 83
20.38 74
20.40 64
20.42 53
20.44 39
20.46 27
20.48 15
20.50 0

1 个答案:

答案 0 :(得分:1)

这是作业吗? (由于上一个问题,未发布任何代码)

我假设你想要x轴和曲线之间的区域。这是一个捷径:

考虑指定矩形的每对连续坐标,其上面有一个三角形。通过将(x的差异)乘以(较小的y)得到矩形区域。然后通过(x的差异)乘以(y的差值)得到三角形的面积,并得到它的一半。添加这两个区域,它将为您提供坐标对的曲线下的近似区域。对所有连续的坐标对重复此过程并将它们相加。