Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2012 19:53:19

paraffine9208
Зарегистрирован: 2012-08-19
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с if else

Добрый вечер!
Нужно реализовать нахождение корней квадратного уравнения.

Есть код:

a=float(raw_input('vvedute pervoe 4uslo: '))
b=float(raw_input('vvedute 2-e 4uslo: '))
c=float(raw_input('vvedute 3-e 4uslo: '))
D = b**2 - 4*a*c
if D > 0:
	x1 = (-b + (b**2 - 4*a*c))/2*a
else:
	x1 = kopneu_net
print x1
raw_input()

Ошибка в if-е, но не могу найти её.

Отредактировано paraffine9208 (Ноя. 12, 2012 19:55:13)

Офлайн

#2 Ноя. 12, 2012 20:01:23

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Проблема с if else

x1 = 'корней нет'

Отредактировано adray (Ноя. 12, 2012 20:02:08)

Офлайн

#3 Ноя. 12, 2012 20:05:45

paraffine9208
Зарегистрирован: 2012-08-19
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с if else

Спасибо!

Офлайн

#4 Ноя. 12, 2012 20:08:50

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Проблема с if else

D = b**2 - 4*a*c
if D > 0:
	x1 = (-b + (b**2 - 4*a*c)**0.5)/2*a
else:
	x1 = kopnu_ectb_npocTo_OHu_KoMnJleKcHbIe
print x1
raw_input()

Офлайн

#5 Ноя. 12, 2012 20:09:54

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Проблема с if else

Это не единственная ошибка

  • корень считается неверно
  • в случае D < 0 лучше бросать исключение, а еще лучше - считать в комплексных числах

Отредактировано adray (Ноя. 12, 2012 20:15:07)

Офлайн

#6 Ноя. 12, 2012 20:20:55

paraffine9208
Зарегистрирован: 2012-08-19
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с if else

Как считать в комплексных числах?

Офлайн

#7 Ноя. 12, 2012 20:27:37

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Проблема с if else

paraffine9208
Как считать в комплексных числах?
import cmath
cmath.sqrt(D) #результат - комплексное число

Офлайн

#8 Ноя. 13, 2012 00:04:20

paraffine9208
Зарегистрирован: 2012-08-19
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с if else

Не понял. В моей задаче как применить?

Офлайн

#9 Ноя. 13, 2012 06:49:12

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Проблема с if else

x1 = (-b + cmath.sqrt(b**2 - 4*a*c))/2*a

Офлайн

#10 Ноя. 13, 2012 07:27:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Проблема с if else

paraffine9208
Как считать в комплексных числах?
>>> d = -3.5
>>> c = d ** 0.5
>>> c
(1.1455143524174501e-16+1.8708286933869707j)
>>>
во втором питоне не работает



Отредактировано py.user.next (Ноя. 13, 2012 07:30:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version