- 159
- 0
- 约1.51千字
- 约 6页
- 2020-06-11 发布于山东
- 举报
实验一 多项式解法
(一)实验目的
了解,掌握求解多项式两种算法,特别是秦九韶算法。并能编程实现这两种算法。
(二)实验项目内容
1.画出流程图。
2.分别用C或C#程序实现。
3.调试程序。
(三)实验报告撰写
流程图,程序代码,运行结果
实验一 多项式解法
实验报告
流程图
开始
开始
输入
K= n ?
输出 v
结束
1
2
3
=
K+1k
4
程序代码
秦九韶算法
#includeiostream
#include cstdlib
using namespace std;
class Qinjiushao//秦九韶类
{
public:
void get_n(int _inpt_num)
{
n=_inpt_num;
Arr_Init();
}
void get_arr()
{
for(int i=0;i=n;i++)
cin*(p+i);
}
void get_x(int _inpt)
{
x=_inpt;
}
int get_sum()
{
Calc();
return sum;
}
private:
int n,x;
int* p;
int sum;
void Arr_Init()//动态数组初始化
{
p=new int[n+1];
if(p==NULL)//检查是否分配成功
{
coutError!endl;
exit(0);
}
for(int i=0;i=n;i++)//默认赋0值
*(p+i)=0;
}
void Calc()
{
sum=(*(p))*x+(*(p+1));//n=1
for(int i=2;i=n;i++)
{
sum=sum*x+*(p+i);
}
}
};
int main()
{
Qinjiushao qd;
int n,x;
coutn=?\n:;//n次一元多项式
cinn;
qd.get_n(n);
coutArr=?(n+1 number needed)\n:;//按顺序输入数字,空格隔开即可
qd.get_arr();
coutx=?\n:;//x=?
cinx;
qd.get_x(x);
coutSum=qd.get_sum()endl;
return 0;
}
直接代入法
#includestdio.h
#define N 100
int main()
{
float f(float x,int i);
int i,n;
float a[N]={0.0};
float sum=0;float x;
printf(请输入n:\n);
scanf(%d,n);
printf(请输入x:\n);
scanf(%f,x);
for(i=0;i=n;i++)
{ printf(请输入a[%d]:\n,i);
scanf(%f,a[i]);
sum=sum+a[i]*f(x,i);}
printf(Pn(x0)=%f\n,sum);
getchar();
return 0;
}
float f(float x,int i)
{
float f=1.0;
while(i0)
{ f*=x; i--;}
return f;
}
运行结果【截图】
例:课本p11 引论习题3
求多项式 p(x)=x^5-3x^4+4x^2-x+1 在x=3时的值
秦九韶算法
直接代入法
原创力文档

文档评论(0)