x1 = (-b + math.sqrt(D))/2*a x2 = (-b - math.sqrt(d))/2*a
x1 = (-b + math.sqrt(D))/2*a x2 = (-b - math.sqrt(d))/2*a
FishHookВот я растяпа… спасибо огромное! а вариант с функцией нельзя переделать, чтобы с клавиатуры вводилось?
Astalможно
а вариант с функцией нельзя переделать, чтобы с клавиатуры вводилось?
a = float(input("a= ")) b = float(input("b= ")) c = float(input("c= ")) def PrintRoots(a, b, c): D = b**2 - 4 * a * c if D < 0: return None, None import math x1 = (-b + math.sqrt(D)) / 2 * a x2 = (-b - math.sqrt(D)) / 2 * a return x1, x2 print(PrintRoots(a, b, c))
s-y@Deep-Blue:~$ python3 test.py a= 44 b= 888 c= -777 (1626.3076246424503, -40698.30762464245) s-y@Deep-Blue:~$
def roots(a, b, c): D = b**2 - 4 * a * c print(D) if D < 0: return None, None import math x1 = (-b + math.sqrt(D)) / 2 * a x2 = (-b - math.sqrt(D)) / 2 * a return x1, x2 if __name__ == '__main__': a = float(input("a= ")) b = float(input("b= ")) c = float(input("c= ")) print(roots(a, b, c))
FishHookСпасибо за совет. Обязательно буду пользоваться.
Если учишься программировать, то иногда полезно вместо компьютера самому на бумажке пройти всю программу. Сделай это и поймешь зачем принт нужен.
x1 = (-b + math.sqrt(D)) / 2 * a x2 = (-b - math.sqrt(D)) / 2 * a
x1 = (-b + math.sqrt(D)) / (2 * a) x2 = (-b - math.sqrt(D)) / (2 * a)
agalenа скобки разве принципиальны у левой части в скобках приоритет, разве нет?
В книге косяк.
Вмето
x1 = (-b + math.sqrt(D)) / 2 * a
x2 = (-b - math.sqrt(D)) / 2 * a
должно быть
x1 = (-b + math.sqrt(D)) / (2 * a)
x2 = (-b - math.sqrt(D)) / (2 * a)
agalenдействительно корни есть… может другой учебник поискать.
Еще сразу после примера в книге написано:
“Итак, уравнение 3x2 + x = 0 корней не имеет” - это совсем те так (корни 0 и -1/3).