标题 【第4周第2编写代码实现一元二次方程ax2+bx+c=0的根。
时间: 2023-05-23 07:05:36 浏览: 93
】
A:以下是实现一元二次方程ax²+bx+c=0的根的代码:
```python
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b**2 - 4*a*c
if delta < 0:
print("无解")
elif delta == 0:
root = (-b) / (2*a)
print("方程的根为:", root)
else:
root1 = (-b + math.sqrt(delta)) / (2*a)
root2 = (-b - math.sqrt(delta)) / (2*a)
print("方程的两根为:", root1, "和", root2)
```
其中,`math.sqrt()`函数用于求平方根。首先用户输入方程的系数a、b、c,然后计算判别式delta,根据delta的值输出方程的根。如果delta小于0,则无实数根;如果delta等于0,则方程有唯一的根;如果delta大于0,则方程有两个实数根。
相关问题
控制结构: (1)编写一个默认值参数day=Monday的名为DaySelect的函数。具体要求:输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。分别调用wednesday、Tuesday并返回相应的值。 (2)编写一个名为SearchRoot的函数,包含默认值参数a=1和形参b、c,用于实现求一元二次方程ax2+bx+c=0(a≠0)的根。任取三个实参a, b, c,并输出结果。
好的,以下是Python的代码实现:
```python
# DaySelect函数
def DaySelect(day="Monday"):
if day[0].lower() == "w":
return "Wednesday"
elif day[0].lower() == "t":
if len(day) > 1 and day[1].lower() == "u":
return "Tuesday"
elif len(day) > 1 and day[1].lower() == "h":
return "Thursday"
else:
return "Invalid input"
elif day[0].lower() == "f":
return "Friday"
elif day[0].lower() == "s":
if len(day) > 1 and day[1].lower() == "a":
return "Saturday"
elif len(day) > 1 and day[1].lower() == "u":
return "Sunday"
else:
return "Invalid input"
else:
return "Invalid input"
# SearchRoot函数
def SearchRoot(a=1, b=1, c=1):
if a == 0:
return "a不能为0"
else:
delta = b**2 - 4*a*c
if delta > 0:
x1 = (-b + delta**0.5) / (2*a)
x2 = (-b - delta**0.5) / (2*a)
return "该一元二次方程有两个实根:x1 = {:.2f}, x2 = {:.2f}".format(x1, x2)
elif delta == 0:
x = -b / (2*a)
return "该一元二次方程有一个实根:x = {:.2f}".format(x)
else:
return "该一元二次方程无实根"
```
使用示例:
```python
# 调用DaySelect函数
print(DaySelect("tue")) # 输出Tuesday
print(DaySelect("thu")) # 输出Thursday
print(DaySelect("f")) # 输出Friday
print(DaySelect("Sa")) # 输出Saturday
print(DaySelect("x")) # 输出Invalid input
# 调用SearchRoot函数
print(SearchRoot(2, 3, -1)) # 输出该一元二次方程有两个实根:x1 = 0.50, x2 = -1.00
print(SearchRoot(1, 2, 1)) # 输出该一元二次方程有一个实根:x = -1.00
print(SearchRoot(2, 1, 2)) # 输出该一元二次方程无实根
```
任务描述 本关任务:编写一个能求解一元二次方程的小程序。 一元二次方程ax 2 +bx+c=0 a、b、c三个系数由测试集读入,根据三个系数来求解x的值则应为: 1、a=0 时输出: x=−c/b 2、b 2 −4ac=0时输出: x1=x2=−b/2a 3、b 2 −4ac>0时输出: x1=(−b+sqrt(b 2 −4ac))/2a,x2=(−b−sqrt(b 2 −4ac))/2a 4、b 2 −4ac<0时输出: x1=(−b/2a+sqrt(4ac−b 2 )/2aj),x2=(−b/2a−sqrt(4ac−b 2 )/2aj) 其中, x1的实部为−b/2a,虚部为sqrt(4ac−b 2 )/2a x2的实部为−b/2a,虚部为−sqrt(4ac−b 2 )/2a 这里sqrt的使用方法见相关知识1,复数的生成方法见相关知识2 例如: 测试集数据读入a、b、c的值为 0; 2; 4 输出为 x= -2.0 #使用 print("x=",x) 语句输出 测试集数据读入a、b、c的值为 1; -1; -2 输出为 x1= 2.0 x2= -1.0 #使用 print("x1=",x1,"x2=",x2) 语句输出 测试集数据读入a、b、c的值为 1; 2; 3 输出为 x1= (-1+1.4142135623730951j) x2= (-1-1.4142135623730951j) 相关知识 1、求平方根:sqrt的用法 sqrt是math库里的一个函数,求平方根,使用前需要引入math, 本题目在第一行已经为大家引入该模块,后面直接使用math.sqrt函数即可,不用再次import math 使用方法如下: import math a=3 b=4 x=math.sqrt(a2+b3) #调用math.sqrt求根下 a平方加b的三次方 print('x=',x) x的值就是根下a平方加b的三次方 2、复数生成:complex的用法 complex是python中生成一个复数的方法。使用方法如下: a=2 b=3 c=complex(a,b) #调用complex生成了一个实部为a,虚部为b的复数c print(c) 则会输出: (2+3j) ####测试说明 平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。 开始你的任务吧,祝你成功! 用python解答
本任务要求编写一个能够解一元二次方程的小程序。根据输入的三个系数a、b、c,程序需要输出方程的解x。具体的解法如下:
1. 当a=0时,方程退化为一元一次方程,此时解为x=-c/b。
2. 当b^2-4ac=0时,方程有两个相等的实数根,此时解为x1=x2=-b/2a。
3. 当b^2-4ac>0时,方程有两个不相等的实数根,此时解为x1=(-b+sqrt(b^2-4ac))/2a,x2=(-b-sqrt(b^2-4ac))/2a。
4. 当b^2-4ac<0时,方程有两个共轭复数根,此时解为x1=(-b/2a+sqrt(4ac-b^2)/2aj),x2=(-b/2a-sqrt(4ac-b^2)/2aj)。其中,j表示虚数单位,sqrt表示平方根。
例如,当输入的系数为a=0,b=2,c=4时,根据第一种情况,方程的解为x=-c/b=-4/2=-2.0。
阅读全文