Добавлю от себя чуть-чуть
1. Алгоритма уравнения не существует! Ведь алгоритм - это последовательность действий, приводящая к определённому результату, поэтому правильней будет алгоритм решения или алгоритм нахождения корней.
2. В условии не уточнено - всех корней или только действительных, если всех - то случай D<0 тоже нужно корректно обрабатывать.
3. Если заранее не известно, квадратное ли уравнение задано, то есть на входе просто тройка чисел(a,b,c), алгоритм должен обязательно анализировать на a=0, b=0, c=0.
4. В качестве ответа на вопрос задачи подойдёт и любой численный алгоритм нахождения корней уравнения, например, дихотомию(деление отрезка, содержащего корень, пополам).
При этом, замечу, только численные алгоритмы дают решения даже для уравнений, степени выше 2.
Вот как, оказывается, интересно и сколько вопросов и вариантов может быть при анадизе даже такой простенькой задачки.
Черный ящик( в информатике) - система, внутреннее устройство которой неизвестно. То есть, мы имеем общее представление о том, что делает эта система, какую информацию на вход нужно подать и то, что система должна вывести, при этом не знаем как она это делает(механизм работы данной системы неизвестен).
Примеры подобной системы:
Любые технические устройства для обычного человека являются тем самым "черным ящиком". Известно, для чего они предназначены, но как они выполняют свою функцию - неизвестно.
Для человека, который не является программистом, любая программа на компьютере - "черный ящик".
В программировании один из примеров черного ящика - вызов функции из библиотеки с неизвестным исходным кодом. Известно, как вызвать эту функцию, известен формат входных и выходных данных, а по какому алгоритму действует функция - неизвестно.
x: integer;
function R(n: integer): real;
begin
R:=n*3.14/180;
end;
begin
readln(x);
writeln(x, ' градусов = ', R(x), ' рад.');
end.