实验题目:一元多项式运算
班级:13 级数学一班 姓名: 张保昌 学号:2013433037 日期:2014—10—09
一、需求分析
1.问题描述;
设计一个简单的一元稀疏多项式加减及求导运算器。
2.基本要求的功能要求;
(1)输入多项式时可以按任意次序输入各项的数据(输入并建立多项式A 与 B),
不必按指数有序;在算法中实现建立按指数有序的多项式。
(2)计算多项式 A 与 B 的和,即建立多项式 A+B。
(3)按照指数升序次序,输出多项式 A、B、A+B。
(4)计算多项式 A 与 B 的差,即建立多项式 A-B;
(5) 计算多项式 A 的导函数 Aˊ 。
3.测试数据。
6 11 6 9 9 11
(1)(x+3x -8.6x )+(6-3x +21x )=6+x+21x -8.6x
-3 2 9 ―3 2 12 2 9 12
(2)(3x -x+4.1x -1.2x )+(―3x -5.1x +7.8x )=-x-x -1.2x +7.8x
3 3
(3)(x+x )+(―x―x )=0
2 3 2 3
(4)(x+x +x )+0=x+x +x
2 3 2 3
(5)(x+x +x )—(x+x +x )=0
2 3 2
(6) (x+x +x )ˊ=1+2x+3x
二、概要设计
1.本程序所用的抽象数据类型的定义;
typedef struct pnode
{
double coef; /*系数域*/
int exp; /*指数域*/
struct pnode *next; /*指针域,*/
}polynode, *polylink;
polylink insert_list(polylink h,char o); //输入多项式。
polylink order_list(polylink h); //按指数升序排列
polylink simply_list(polylink h); //初步整理(合并多项式,并删除系数为零的式子)
polylink add(polylink a,polylink b); //加法运算
polylink opposite(polylink b); //将减法统归为加法
polylink derivative(polylink a); //求导函数
void list_display(polylink h,char o); //输出显示
void index(); //菜单函数
2.模块划分。
1)主函数模块。2)加法运算模块 3)减法运算模块 4)导数模块。
评论0
最新资源