一元多项式 - 范文中心

一元多项式

02/05

//一元多项式

#include

#include

using namespace std;

#define MAX 1000

typedef struct

{

int a[MAX];

int len;

}ST;

void ADD(ST A,ST B,ST *C)

{

int la=A.len,lb=B.len,i;

C->len=la>lb? la:lb;

for(i=0 ; i

{

C->a[i]=A.a[i]+B.a[i];

}

while(i

{

C->a[i]=A.a[i];

i++;

}

while(i

{

C->a[i]=B.a[i];

i++;

}

}

void SUB(ST A,ST B,ST *C)

{

int la=A.len,lb=B.len,i;

C->len=la>lb? la:lb;

for(i=0 ; i

{

C->a[i]=A.a[i]-B.a[i];

}

while(i

{

C->a[i]=A.a[i];

i++;

}

while(i

{

C->a[i]=0-B.a[i];

i++;

}

}

void MUL(ST A,ST B,ST *C)

{

int i,j;

for(i=0 ; i

C->a[i]=0;

for(i=0;i

{

for(j=0;j

{

C->a[i+j]+=A.a[i]*B.a[j];

}

}

C->len=A.len+B.len;

}

void DER(ST A,ST *C)

{

int len=A.len,i=1;

while(i

{

C->a[i-1]=A.a[i]*i;

i++;

}

C->len=A.len-1;

}

void Get(ST *A)

{

int i,coef,ex,maxe=0;

char ch;

printf("请输入系数和指数,当输入指数为-1时结束:\n");

for(i=0;i

A->a[i]=0;

scanf("%d %d",&coef,&ex);

while(ex>=0)

{

if(ex>maxe)

maxe=ex;

if(A->a[ex]!=0)

{

printf("项存在,是否更新?Y/N\n");

cin>>ch;

if(ch=='Y'||ch=='y')

{

A->a[ex]=coef;

printf("已更新,请继续输入\n");}

else

printf("请继续输入\n");;

}

else A->a[ex]=coef;

scanf("%d %d",&coef,&ex);

}

A->len=maxe;

return ;

}

void Print(ST C)

{

int i;

printf(" %dx^%d ",C.a[C.len],C.len);

for(i=C.len-1;i>=1;i--)

{

if(C.a[i]==0) ;

else if(C.a[i]==1)

printf(" + x^%d ",i);

else if(C.a[i]==-1)

printf(" - x^%d ",i);

else

{

if(C.a[i]>0)

printf("+ %dx^%d ",C.a[i],i);

else

printf("- %-dx^%d ",-C.a[i],i);

}

}

if(C.a[0]==0) ;

else if(C.a[0]>0)

printf(" + %d",C.a[0]);

else

printf(" - %d",-C.a[0]);

printf("\n");

}

int main()

{

ST A,B,C;

printf("请输入A(x):\n");

Get(&A);

printf("请输入B(x):\n");

Get(&B);

printf("A(x)=");

Print(A);

DER(A,&C);

printf("A(x)'=");

Print(C);

cout

printf("B(x)=");

Print(B);

DER(B,&C);

printf("B(x)'=");

Print(C);

cout

printf("A(x)+B(x)=");

ADD(A,B,&C);

Print(C);

DER(C,&C);

printf("(A(x)+B(x))'=");

Print(C);

cout

printf("A(x)-B(x)=");

SUB(A,B,&C);

Print(C);

DER(C,&C);

printf("(A(x)-B(x))'=");

Print(C);

cout

printf("A(x)*B(x)=");

MUL(A,B,&C);

Print(C);

DER(C,&C);

printf("(A(x)*B(x))'=");

Print(C);

return 0;

}


相关内容

  • 数据结构多项式
    中国地质大学长城学院 实践课程设计 题 目 学 院 专 业 班 级 姓 名 指导教师 用单链表表示一元多项式,并求2个一元多项式的和 中国地质大学长城学院 电子信息工程 电子1201 李月朋 李润亚 2014 年 12 月 31 日 一.实 ...
  • 青岛版初中数学章节
    青岛版初一数学 (上册) 第一章 基本的几何图形 1.1 我们身边的图形世界 1.2 点.线.面.体 1.3 线段.射线和直线 1.4 线段的度量和比较 同步练习 单元测试 本章综合 第二章 有理数 2.1 生活中的正数和负数 2.2 数轴 ...
  • 新人教版七年级数学上册教学计划
    人教版七年级数学上册教学计划 一.教学目标 知识技能目标:学习有理数有关知识,掌握有理数的加减乘除法运算,学会整式的加减法.一元一次方程等的运算.同时进一步提高学生认识几何图形的初步能力. 过程方法目标:学会有理数.整式的加减及一元一次方程 ...
  • 七年级上册知识点总结
    初一数学知识点总结 (初一上学期) 1.有理数: (1)正数和负数 负数:比0小的数 正数:比0大的数 ①字母a可以表示任意数,当a表示正数时,-a是负数:当a表示负数时,-a是正数:当a表示0时,-a仍是0.(如果出判断题为:带正号的数是 ...
  • 一元一次不等式的解法(提高)知识讲解
    一元一次不等式的解法(提高)知识讲解 撰稿:孙景艳 责编:吴婷婷 [学习目标] 1.理解一元一次不等式的概念: 2. 会解一元一次不等式. [要点梳理] [高清课堂:一元一次不等式 370042 一元一次不等式 ] 要点一.一元一次不等式的 ...
  • 一元二次方程的解法教案
    <一元二次方程的解法>教案 一.教学目标 (一)知识教学点:认识形如x2=a(a≥0)或(ax+b)2=c(a≠0,c≥0,a,b,c为常数)类型的方程,并会用直接开平方法解. (二)能力训练点:培养学生准确而简洁的计算能力及抽 ...
  • 一元一次方程知识点及经典例题
    第三章 一元一次方程单元复习与巩固 一.知识网络 二.知识要点梳理 知识点一:一元一次方程及解的概念 1. 一元一次方程: 一元一次方程的标准形式是:ax+b=0(其中x是未知数,a,b是已知数,且a≠0). 要点诠释: 一元一次方程须满足 ...
  • 初中数学目录.知识点 (冀教版)
    第一章 几何图形的初步认识 1.1 几何图形 1.2 图形中的点.线.面 1.3 几何体的表面展开图 1.4 从不同方向看几何体 1.5 用平面截几何体 第二章 有理数 2.1 正数和负数 2.2 数轴 2.3 绝对值 2.4 有理数的大小 ...
  • [用公式法求解一元二次方程]
    2.3<用公式法求解一元二次方程>学案 学习目标: 1.一元二次方程的求根公式的推导. 2.会用求根公式解一元二次方程. 学习重点: 一元二次方程的求根公式 学习难点: 求根公式的条件:b 2-4ac 0 一.学前准备: 1.用 ...
  • 苏教版初中数学知识点大全
    初中数学知识点大全 第一章 实数 一. 重要概念 正整数 0 整数 (有限或无限循环性 分数 实数正无理数 (无限不循环小数 整数 有理数 正数 实数 有理数 负数 2.非负数:正实数与零的统称.(表为:x ≥0) 常见的非负数有: 性质: ...