应用题   请使用VC6或使用【答题】菜单打开prog3下的工程prog3,其中包含了类Polynomial(“多项式”)的定义。
    形如5x4+3.4x2-7x+2的代数式称为多项式,其中的5为4次项系数,3.4为2次项系数,-7为1次项系数,2为0次项(常数项)系数。此例缺3次项,意味着3次项系数为0,即省略了0x3。在Polynomial中,多项式的各个系数存储在一个名为coef的数组中。例如,对于上面的多项式,保存在coef[0]、coef[1]...coef[4]中的系数依次为:2.0、-7.0、3.4、0.0、5.0,也即对于i次项,其系数就保存在coef[i]中。成员函数getValue计算多项式的值,多项式中x的值是由参数指定的。
    请补充完成文件:Polynomial.cpp中成员函数getValue的定义。此程序的正确输出结果应为:
    Value of p1 when x=2.0:59.8
    Value of p2 when x=3.0:226.8
    注意:只在函数getValue的“// *******333*******”和“// *******666*******”之间填入若干语句,不要改动程序中的其他内容。
    //Polynomiac.h
    #include <iostream>
    using namespace std;
    class Polynomial{  //“多项式”类
    public:
    Polynomial (double coef[], int hum):coef (new double[num]), num_of_terms(num) {
    for (int i = 0; i < num_of_terms; i ++)
    this -> coef[i] = coef[i];
    }
    ~Polynomial() {delete[] coef;}
    //返回指定次数项的系数
    double getCoefficient (int power) const {return coef[power];}
    //返回在x等于指定值时多项式的值
    double getValue (double x) const;
    private:
    //系数数组,coef[0]为0次项(常数项)系数,coef[1]为1次项系数,coef[2]为2次项(平方项)系数,余类推。
    double * coef;
    int num_of_terms;
    };        void writeToFile(const char * path);        // Polymomial.cpp
    #include 'Polynomial.h'
    double Polynomial::getValue (double x) const {
    //多项式的值value为各次项的累加和
    double value = coef[0];
    // ********333********        // ********666********
    return value;
    }        //main.cpp
    #include 'Polynomial.h'
    int main() {
    double p1[] = {5.0, 3.4, -4.0, 8.0}, p2[] = {0.0, -5.4, 0.0, 3.0, 2.0};
    Polynomial poly1 (p1, sizeof(p1)/sizeof (double)), poly2 (p2,sizeof(p2)/sizeof (double));
    cout << 'Value of p1 when x = 2.0:' << poly1.getValue(2.0) << endl;
    cout << 'Value of p2 when x = 3.0:' << poly2.getValue(3.0) << endl;
    writeToFile(' ');
    return 0;
    }
 
【正确答案】for (int i = 1; i < num_of_terms; i++) //从i=1开始遍历数组coef的所有项 { int j = i - 1; //把i-1赋值给j,保证从零次方开始 double x_value = x; //把x赋给x_value while(j > 0) //当j大于零时,做相乘操作,即完成该项的乘方动作 { x_value * = x; j --; } value += coef[i] * x_value; //把i项的乘方结果乘以该项系数后加进value中 } 答案考生文件夹
【答案解析】[考点] 本题考查Polynomial类,其中涉及构造函数、动态数组、析构函数和const函数。 题目要求成员函数getValue计算多项式的值,多项式中x的值由参数指定,多项式的值value为各次项的累加和。由类的定义可知数组coef中存储的是各次项的系数,这里使用for循环来完成题目要求,当次项为0时,value=coef[0]。当次项为1时,value=coef[1]*x+coef[0]。依次类推直到x的最高次数。