|
朋友给孩子做题不知道答案问我,我数学也还给老师了。尴尬,只有用python了。装了回B
代码如下:
import math
def rs(a,b,c,x):#验算程序
f = a*x*x+b*x+c
return f
def yh(a,b,c,x,n):#优化程序
# 优化
m = round(math.pow(0.1,n),n)
x1 = round(x,n)
while rs(a,b,c,x1)>m:
n=n+1
x1=x1 = round(x,n)
n = rs(a,b,c,x1)
return x1,n
#主程序
print("一元二次方程求解程序")
print("格式为:ax^2+bx+c=0")
a=0
b=0
c=0
d=0
#输入参数,确保为数字
a = input("请输入a的值(必须为数字):")
while b==0:
try:
a = float(a)
#确保a不为0
if a!=0:
b=1
else:
b=0
a = input("请输入a的值(必须为数字):")
except ValueError:
a = input("请输入a的值(必须为数字):")
b=0
b = input("请输入b的值(必须为数字):")
while c==0:
try:
b = float(b)
c = 1
except ValueError:
b = input("请输入b的值(必须为数字):")
c = 0
c = input("请输入c的值(必须为数字):")
while d==0:
try:
c = float(c)
d = 1
except ValueError:
c = input("请输入c的值(必须为数字):")
d = 0
d=0
while d==0:
n = input("保留到小数点后几位(必须为1--15整数):")
try:
n=int(n)
if n>0 and n<=15:
d=1
except:
d=0
#开始计算
d = b * b- 4 * a * c
if d<0:
print( '无实根')
if d==0:
x=-b/(2*a)
print("只有一个答案:",x)
# 验算
print("验算结果", rs(a, b, c, x))
print("保留到小数点后",n,"位的值为",yh(a,b,c,x,n)[0])
print("保留到小数点后", n, "位的验算结果为", yh(a, b, c, x, n)[1])
if d>0:
x1=(-b+math.sqrt(d))/(2*a)
x2=(-b-math.sqrt(d))/(2*a)
print('答案有两个值:')
print("第一个为近似值):",x1)
#验算
print("第一个值验算结果(近似值):",rs(a,b,c,x1))
x1 = yh(a, b, c, x1, n)
print("保留到小数点后", n, "位的值为", x1[0])
print("保留到小数点后", n, "位的验算结果为", x1[1])
print("\n")
print("第二个为近似值):", x2)
print("第二个值验算结果(精确值):", rs(a, b, c, x2))
x2 = yh(a, b, c, x2, n)
print("保留到小数点后", n, "位的值为", x2[0])
print("保留到小数点后", n, "位的验算结果为", x2[1])
复制代码到文件,扩展名为“py”。在装个python就能运行。
下载地址:https://www.python.org/downloads/windows/ |
|