
Добавлю от себя чуть-чуть
1. Алгоритма уравнения не существует! Ведь алгоритм - это последовательность действий, приводящая к определённому результату, поэтому правильней будет алгоритм решения или алгоритм нахождения корней.
2. В условии не уточнено - всех корней или только действительных, если всех - то случай D<0 тоже нужно корректно обрабатывать.
3. Если заранее не известно, квадратное ли уравнение задано, то есть на входе просто тройка чисел(a,b,c), алгоритм должен обязательно анализировать на a=0, b=0, c=0.
4. В качестве ответа на вопрос задачи подойдёт и любой численный алгоритм нахождения корней уравнения, например, дихотомию(деление отрезка, содержащего корень, пополам).
При этом, замечу, только численные алгоритмы дают решения даже для уравнений, степени выше 2.
Вот как, оказывается, интересно и сколько вопросов и вариантов может быть при анадизе даже такой простенькой задачки.
готово
Объяснение:
1)
program minimum;
var
i, n, k: integer;
min: real;
A: array of real;
begin
Write('Введите размер массива: ');
ReadLn(n);
SetLength(A, n);
for i := 0 to n - 1 do
begin
Write('Введите A[',i,']=');
ReadLn(A[i]);
end;
min := A[0];
for i := 1 to n - 1 do
if A[i] < min then
begin
min := A[i];
k := i;
end;
WriteLn('Минимальный элемент - A[',k,'] = ', min);
end.
2)
program summa;
var
i, t, sum: integer;
A: array of integer;
begin
Write('Введите размер массива: ');
ReadLn(t);
SetLength(A, t);
for i := 0 to t - 1 do
begin
A[i] := round(random(120) - 60);
WriteLn('A[', i, '] = ', A[i]);
if A[i] > 20 then sum := sum + a[i];
end;
WriteLn('Сумма чисел, больших 20 = ', sum);
end.
3)
program massiv;
var
i, k: integer;
A: array[0..13] of integer;
begin
for i := 0 to 13 do
begin
A[i] := round(random(27) + 3);
WriteLn('A[', i, '] = ', A[i]);
if A[i] > 13 then k := k + 1;
end;
WriteLn('Количество чисел, больших 13 равно ', k);
end.