一元多项式操作

来源:互联网 发布:网络直播电视机顶盒 编辑:程序博客网 时间:2024/04/29 10:54

主要代码:

//合并一元多项式中相同的幂的项void  UnionList(LinkList &L){int ex1,ex2;float co0,co1,co2;LinkList p = L;for(int i = 1; i < ListLength(L); i++){GetElem(L, i, co1, ex1);if(co1 == 0)ListDelete(L, i, co1, ex1);for (int j = i+1; j < ListLength(L)+1; j++){GetElem(L, j, co2, ex2);if(co2 == 0)ListDelete(L, j, co2, ex2);    else if(ex2 == ex1){co0 = co1 + co2;      //解决在同一一元多项式中有相同系数的情况ListDelete(L, j, co2, ex2);ListDelete(L, i, co1, ex1);ListInsert(L, i, co0, ex1);} }}}

//取表L中的第i个元素,并用返回. 操作成功返回OK,失败时返回ERROR Status GetElem(LinkList L, int i, float &co, int &ex){    if(i > ListLength(L) || i <= 0)    return ERROR;int j = 0;LinkList p = L;while(p&&j < i){p = p->next;j++;}if(p && j == i){co = p->coef;ex = p->expn;return ex;}elsereturn ERROR;    //-------------------------------------}

//创建一元多项式P,当输入的指数和系数都为0时,输入结束。// 一元多项式就被创建 。   void CreatPolyn(polynomial &P){InitList(P);printf(" \n输入系数和指数:\n");read(P->coef,P->expn);     //输入系数和指数//-------------------TODO------------------//while(P->coef!=0||P->expn!=0){ListInsert(P, 1, P->coef, P->expn);printf(" \n输入系数和指数:\n");        read(P->coef,P->expn); }//------------初始化表达式,不断输入系数和指数,直到读到0,0为止----------//}

//完成多项式相加运算,即:Pa = Pa + Pb,并销毁一元多项式Pbvoid AddPolyn(polynomial &Pa,polynomial &Pb){UnionList(Pa);   //合并一元多项式中具有UnionList(Pb);   //相同指数的项for (int i=1; i<=ListLength(Pb); i++){float co;int ex;GetElem(Pb, i, co, ex);if(LocateElem(Pa, ex) > 0)    //判断Pa中是否具有Pb中相同指数的项,{                             //如果有,进行相加 int j = LocateElem(Pa, ex);   //记录Pa中相同项的位置int k = 0;polynomial s = Pa;while(k < j)     //查找这一位置{s=s->next;k++;}s->coef += co;    //系数项相加}else       //不存在相同的指数,将Pb中的该项插入PaListInsert(Pa, 1, co, ex);}DestroyList(Pb);//销毁Pb}

//完成多项式的求导函数,即:Pa = Pa' void Derivative(polynomial &P){polynomial s = P->next;while(s){s->coef=s->coef*s->expn;s->expn=s->expn-1;s=s->next;}}//完成多项式的积分函数, Pa = ∫Pa' dx void Calculus (polynomial &P){    polynomial s = P->next;while(s){s->expn=s->expn+1;s->coef=s->coef/s->expn;s=s->next;}}

运行结果图:


完整代码:

点击打开链接

原创粉丝点击