Форум сайта python.su
0
Помогите исправить ошибку (квадратное уравнение)
Итак попытался написать программу для нахождения корней кв. уравнения
a = float(input(“Введите a: ”))
b = float(input(“Введите b: ”))
c = float(input(“Введите c: ”))
z = (b*b-4.0*a*c)
d = sqrt(z)
x1 = 0
x2 = 0
if d>0:
x1 = ((-b) + d)/(2.0*a)
x2 = ((-b) - d)/(2.0*a)
print(x1, x2)
elif d==0:
x12= (-b)/(2.0*a)
print(x12)
else:
print(“Корней нет”)
exit=input('Нажмите ENTER')
вроде бы все не плохо(имхо=/)
но когда запускаю программу ввожу значения a, b, c и выдает вот такое:
================================
>>>
Введите a: 1.0
Введите b: -8.0
Введите c: 7.0
Traceback (most recent call last):
File “E:\python\yrav.py”, line 5, in <module>
d = sqrt(z)
NameError: name ‘sqrt’ is not defined
>>>
Не хочет считать корень. Как будто не знает команды sqrt что делать, объясните поподробней новичку.
Отредактировано artem-droshnev (Июль 24, 2012 19:54:17)
Офлайн
5
import math
math.sqrt(z)
…
PS Когда ж вы научитесь код оформлять правильно
Офлайн
857
неправильно записано, никакого z там не должно быть
дискриминант - это d = b * b - 4 * a * c
находишь дискриминант, а потом вычисляешь корень из дискриминанта
корень можно вычислять через возведение в степень 1/2 - это d ** 0.5, а math.sqrt(), вроде бы, может быть поскоростнее
(и когда дискриминант меньше нуля, корни у уравнения есть (в поле комплексных чисел), поэтому надо писать, что корней нет во множестве действительных чисел - “действительных корней нет”)
Офлайн
31
http://www.ex.ua/view/14563475
Вроде в третьем уроке точь в точь такое уравнение
В .avi http://www.ex.ua/view/15390954
Отредактировано sanodin (Июль 25, 2012 22:08:07)
Офлайн
0
# -*- coding: utf-8 -*- import math a=input(u"a=") b=input(u"b=") c=input(u"c=") try: D=b*b-4*a*c if D<0: print u"Нет решения" else: X1=(-b+math.sqrt(D))/(2*a) X2=(-b-math.sqrt(D))/(2*a) print u"X1=", X1 print u"X2=", X2 except ZeroDivisionError: X=-b/c print u"X1,2=", X finally: print u"Конец программы"
Офлайн
52
То есть, если у нас коэффициент ‘a’ равен нулю, у нас получится два корня по-вашему? Причем корни неверные, потому что int / int = int.
a=0 b=1 c=2 X1,2= -1 Конец программы
a=0 b=1 c=0 Конец программы Traceback (most recent call last): File "qua.py", line 16, in <module> X=-b/c ZeroDivisionError: integer division or modulo by zero
a=jaja Traceback (most recent call last): File "qua.py", line 3, in <module> a=input(u"a=") File "<string>", line 1, in <module> NameError: name 'jaja' is not defined a= Traceback (most recent call last): File "qua.py", line 3, in <module> a=input(u"a=") File "<string>", line 0 ^ SyntaxError: unexpected EOF while parsing
Отредактировано fata1ex (Июль 27, 2012 07:25:25)
Офлайн