Реализовать функцию нахождения вещественных корней квадратного уравнения. Если корней несколько, то корни возвращаются из функции отсортированными по возрастанию.
Проверить работу функции при следующих ситуациях:
a функция возвращает строку “error”a = 1, b = 0, c = -1, которые задают положительный дискриминант, функция возвращает список из двух вещественных корней: [-1, 1].a = 1, b = 0, c = 0, которые задают нулевой дискриминант, функция возвращает список из одного вещественного корня: [0]a = 1, b = 0, c = 1, которые задают отрицательный дискриминант, функция возвращает пустой список вещественных корней: []Дополнительно. Для сильных духом и телом: Проверить работу функции при следующих ситуациях:
a = 1, b = 0, c = -1E-7, функция возвращает список из двух вещественных корней: [-3E-4, 3E-4], с точностью до 4 знака.a = 1, b = -1E+10, c = -1, функция возвращает список из двух вещественных корней: [-1E-10, 1E+10], с точностью до 11 знака.a = 1, b = 0, c = -1E-8, функция возвращает список из одного вещественного корня: [0] , с точностью до 7 знака.Всё просто! Возвести число в степень .
Научный формат записи вещественного числа (подробнее 1, подробнее 2)
1E+6 — один миллион: 1E-6 — одна миллионная: Почему на компьютере : объяснение
Два числа с плавающей точкой простыми операторами >, >= , <, <= == сравнивать НЕЛЬЗЯ!
Одинаковыми числами с плавающей точкой считаются те, чей модуль разности меньше некоторого eps (эпсилон).
let a = 0.1*3
let b = 0.3
console.log(a == b) // False
let eps = 1E-7
console.log(Math.abs(a - b) < eps) // True
eps = 1E-17
console.log(Math.abs(a - b) < eps) // False
// ---
a = 1.1
b = 1.15
eps = 1E-1
console.log(Math.abs(a - b) < eps) // True (1 знак после запятой совпал)
eps = 1E-2
console.log(Math.abs(a - b) < eps) // False (2 знака после запятой не совпали)
Таким образом число eps задаёт точность сравнения.
На практике обычно берут eps = 1E-7. Т.е. сравнение с точностью до седьмого знака после запятой.
а? работа идёт с приведенным квадратным уравнениемЭто просто функция, которая возвращает 1 или -1:
таким образом:
Просто реализуйте её в виде отдельной функции.