用C++解决一元二次方程根的问题集锦Word格式文档下载.docx
- 文档编号:13768826
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:13
- 大小:18.51KB
用C++解决一元二次方程根的问题集锦Word格式文档下载.docx
《用C++解决一元二次方程根的问题集锦Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用C++解决一元二次方程根的问题集锦Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
if(delta<
-ESSP)
Thisequationhasnorealroot."
endl;
elseif(delta>
ESSP)
root1=(-b+sqrt(delta))/(2*a);
root2=(-b-sqrt(delta))/(2*a);
Thisequtionhastwounequalizeroots:
root1<
root2<
}
else
root1=-b/(2*a);
Thisequtionhastwoequalizeroots:
}
二
结构化编程方法:
//fortworoots
intmain()
doublea,b,c,rp,ip;
//方程系数
doublex1,x2;
//方程的根
doubled;
//根的判别式
inputa,b,c(方程系数):
a>
b>
if(a==0)
这不是二元一次方程"
d=b*b-4*a*c;
if(d>
=0)
if(d==0)
x1=-b/(2*a);
只有一个实根:
x1<
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
有二个实根:
and"
x2<
{rp=-d/(2*a);
ip=sqrt(-d)/(2*a);
x1=rp+ip;
x2=rp-ip;
有二个虚根:
i"
return0;
简单的类对象:
#include"
iostream.h"
math.h"
classFindRoot
private:
floata,b,c,d;
public:
FindRoot(floatx,floaty,floatz);
voidFind();
voidDisplay();
};
FindRoot:
:
FindRoot(floatx,floaty,floatz)
a=x;
b=y;
c=z;
d=b*b-4*a*c;
voidFindRoot:
Find()
if(d>
0)
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(a*a);
elseif(d==0)
x1=x2=(-b)/(2*a);
doublerp=-d/(2*a);
doubleip=sqrt(-d)/(2*a);
x1=rp+ip;
x2=rp-ip;
Display()
x1="
\nx2="
x1=x2="
'
i'
x2="
FindRootobj(1,2,3);
obj.Find();
obj.Display();
三
根据要求编写程序。
①从键盘输入三个实数a、b、c分别作为一个一元二次方程ax2+bx+c=0的三个系数。
使用系
统给出的平方根函数,编写一段程序,使之求出这个方程的两个根。
其中,求△=b2-4*a*c
的功能要以函数形式出现。
(提示:
求根公式,△<
0时方程无解)
②已知a1=1,a2=1,当n大于等于2时,a(n+1)=3*a-a(n-1),要求用递归函数输出a1到a8。
①
#include"
stdio.h"
floata,b,c,x1,x2,disc,realpart,imagpart;
printf("
请输入三个数值\n"
);
scanf("
%f%f%f"
&
a,&
b,&
c);
disc=b*b-4*a*c;
该方程不是一元二次方程组\n"
elseif(disc==0)
x1=(-b)/(2*a);
x2=(-b)/(2*a);
x1=%.2f\tx2=%.2f\n"
x1,x2);
elseif(b*b-4*a*c>
x1=(-b)+sqrt(disc);
x2=(-b)-sqrt(disc);
b²
-4ac<
0,该方程没有实根\n"
②
inta[8]={0};
intgetResult(intn)
if(n==1||n==2)
return1;
return3*getResult(n-1)-getResult(n-2);
inti;
a[0]=1;
a[1]=1;
for(i=2;
i<
8;
i++)
a[i]=getResult(i+1);
for(i=0;
a%d=%d\n"
i+1,a[i]);
四
用C语言编写一个程序,计算一元二次方程的解(x1,x2)。
一元二次方程:
Ax2+Bx+C=0(假设A=4,B=6,C=1)
按顺序输入a,b,c
stdlib.h"
intmain(){
floata,b,c;
%f"
a);
b);
%f\n"
(-b+sqrt(b*b-4*a*c))/2/a);
(-b-sqrt(b*b-4*a*c))/2/a);
system("
pause"
五
解一元二次方程的C++程序
#include<
iomanip.h>
voidsqrt1(double,double);
voidsqrt2(double,double);
voidprinter(double,double);
请输入a,b,c:
if(b*b-4*a*c!
=0)
if(b*b-4*a*c)
sqrt1(x1,x2);
printer(x1,x2);
sqrt2(x1,x2);
voidsqrt1(doublex1,doublex2)//b*b-4ac>
0
if(a!
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
setw(5)<
if(b==0)
if(c==0)
x为任意解"
无解"
x1=x2=-c/b;
voidsqrt2(doublex1,doublex2)//b*b-4ac=0
x1=x2=-b/(2*a);
voidprinter(doublex1,doublex2)//b*b-4ac<
chari='
//i后面为虚部
x1=(-b/(2*a))+(i*(sqrt(b*b-4*a*c)/(2*a)));
x2=(-b/(2*a))-(i*(sqrt(b*b-4*a*c)/(2*a)));
\t"
六
用C++编几个程序
1编写一个程序求一元二次方程的解。
讨论下述情形:
(1)a=0,不是二次方程。
(2)b^2-4ac=0,有两个相等实根。
(3)b^2-4ac>
0,有两个不等实根。
(4)b^2-4ac<
0,有两个复根(表示成x+yi,x-yi)。
2.编写一个程序,打印下列图形:
1
12
123
1234
12345
3.编写一个函数将一nxn矩阵转置(即a[i][j]与a[j][i]的值交换),然后编写一main()
函数调用它(取n=3)。
第1个我记得书上有例题的
第2个:
stdio.h>
for(inti=1;
=5;
for(intj=1;
j<
=i;
j+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 解决 一元 二次方程 问题 集锦