Даны действительные числа a, b, c. Найдите все решения квадратного уравнения ax2 + bx + c = 0. Даны три действительных числа, a не равно 0. Выведите два действительных числа, если уравнение имеет два корня, одно действительное число – при наличии одного корня. При отсутствии действительных корней ничего выводить не нужно. Почему то пишет неправильное решение.
a = int(input()) b = int(input()) c = int(input()) d = (b**2) — (4*a*c) l = 2 * a if d == 0: print(-b/(2*a)) elif d > 0: print((-b + (d**(1/2))) / l, (-b — (d**(1/2))) / l)
Отслеживать
nikobellic
задан 31 окт 2019 в 19:28
nikobellic nikobellic
195 6 6 золотых знаков 9 9 серебряных знаков 17 17 бронзовых знаков
почему вы думаете, что корни — целые числа?
31 окт 2019 в 19:35
Два вопроса : 1) если правильно понимаю, у вам и коэффициенты и вывод корней -.целочисленные.
Почему? 2) Если дискриминант будет отрицательным, квадратный корень из него вычислится?
31 окт 2019 в 19:38
Источник: ru.stackoverflow.com
Алгебра 8 класс (Урок№28 — Решение квадратных уравнений вида ax2 + bx + c = 0.Формула корней кв.ур.)
Решить квадратное уравнение
Формулировка. Даны вещественные числа a, b и c, причем a отлично от 0. Решить квадратное уравнение ax 2 + bx + c = 0 или сообщить о том, что действительных решений нет.
Решение. Из алгебры известно, что:
– если D > 0, имеет два решения: , ;
– если D = 0, имеет единственное решение: ;
Следовательно, нам необходимо вычислить дискриминант (заведем для него вещественную переменную d типа real) и в зависимости от его значения организовать ветвления. Сначала нужно проверить, имеет ли уравнение действительные решения (для решений заведем переменные x1 и x2 типа real). Если да, и если дискриминант не равен нулю, то вычисляем оба решения по формулам, а если дискриминант равен нулю, то вычисляем единственное решение. Если же действительных решений нет, выводим текстовое сообщение об этом. Основной алгоритм можно проиллюстрировать следующей блок-схемой:

Три нерасшифрованных блока представляют собой стандартные операторы вывода. Разберем их подробнее:
1) При выводе двух корней выражение будет выглядеть следующим образом:
x1 := (-b + sqrt(d)) / 2 * a;
x2 := (-b — sqrt(d)) / 2 * a;
writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2);
При этом выводимое выражение будет выглядеть так: ‘x1 = m, x2 = n’, где синим цветом выделены однозначные текстовые константы, которые берутся из списка аргументов writeln, красным – вычисленные значения x1 и x2. Причем корни выведены в форматированном виде: число после первого двоеточия задает ширину поля вывода для переменной вместе с точкой (при нехватке поля она будет расширено программой), а число после второго двоеточия – количество выводимых дробных знаков (его при работе программы изменить нельзя);
6.3 Квадратное уравнение. «Поколение Python»: курс для начинающих. Курс Stepik
2) При выводе одного корня – все то же самое, только выводится один корень:
3) При отсутствии действительных корней выводим сообщение:
writeln(‘No real solutions!’);
В итоге внутренний условный оператор с телом включительно будет выглядеть так:
if d <> 0 then begin
x1 := (-b + sqrt(d)) / 2 * a;
x2 := (-b — sqrt(d)) / 2 * a;
writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2)
Код:
- program QuadraticEquation;
- var
- a, b, c, d, x1, x2: real;
- begin
- readln(a, b, c);
- d := b * b — 4 * a * c;
- if d >= 0 then begin
- if d <> 0 then begin
- x1 := (-b + sqrt(d)) / 2 * a;
- x2 := (-b — sqrt(d)) / 2 * a;
- writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2)
- end
- else begin
- x1 := -(b / 2 * a);
- writeln(‘x = ‘, x1:4:2)
- end
- end
- else begin
- writeln(‘No real solutions!’);
- end
- end.
Источник: pascalzadachi.ru
Konark-Web / Квадратное уравнение (Python)
Даны действительные коэффициенты a, b, c, при этом a != 0. Решите квадратное уравнение ax²+bx+c=0 и выведите все его корни.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| import math |
| a = float(input()) |
| b = float(input()) |
| c = float(input()) |
| D = b ** 2 — 4 * a * c |
| if D == 0: |
| x1 = (-b — math.sqrt(D)) / (2*a) |
| print(x1) |
| elif D > 0: |
| x1 = (-b — math.sqrt(D)) / (2*a) |
| x2 = (-b + math.sqrt(D)) / (2*a) |
| if x1 > x2: |
| print(x2, x1) |
| else: |
| print(x1, x2) |
Источник: gist.github.com