请打开考生文件夹下的解决方案文件proj3,其中包含了类Polynomial(“多项式”)的定义。 形如5x4+3.4x2一7x+2的代数式称为多项式,其中的5为4次项系数,3.4为2次项系数,一7为1次项系数,2为0次项(常数项)系数。此例缺3次

admin2020-04-07  16

问题 请打开考生文件夹下的解决方案文件proj3,其中包含了类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
中。成员函数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  num):coef  (new double[num]),num_of_terms(num){
        for(int i=0;i<num_of_terms;i++)
          this—>coef=coef
      }
      ~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 polyl(p1,sizeof(p1)/sizeof(double)),poly2(p2,sizeof(p2)/sizeof(double));
      cout<<"Value of p1 when x=2.0:"<<polyl.getValue(2.0)<<endl;
      cout<<"Value of p2 when x=3.0:"<<poly2.getValue(3.0)<<endl;
      writeToFile("");
      return 0;
    }

选项

答案1 for (int i = 1; i < num_of_terms; i++) //从i=1开始遍历数组coef的所有项 2 { 3 int j =i一1; //把i一1赋值给j,保证从零次方开始 4 double x_value =x; //把x赋给x_value 5 while(j >0) //当j大于零时,做相乘操作,即完成该项的乘方动作 6 { 7 x_value *=x; 8 j--; 9 } 10 value +=coef[i]*x_value; //把i项的乘方结果乘以该项系数后加进value中 11 }

解析 题目要求成员函数getValue计算多项式的值,多项式中x的值由参数指定,多项式的值value为各次项的累加和。由类的定义可知数组coef中存储的是各次项的系数,这里使用for循环来完成题目要求,当次项为0时,value=coef[0]。当次项为1时,value=coef[1]*x+coef[0]。依次类推直到x的最高次数。
转载请注明原文地址:https://kaotiyun.com/show/Mw8p777K
0

最新回复(0)