На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран сумму всех отрицательных чисел последовательности и максимальное число в последовательности. Известно, что вводимые числа по абсолютной величине не превышают 1000. Программист написал программу неправильно. var s,i,x,mx: integer; begin mx := 0; s := 0; for i := 1 to 4 do begin read (x); if x < 0 then s := x; if x > mx then mx := x; end; writeln(s); writeln(mx) end. Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе чисел -5 2 -4 3. 2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ. 3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Пример последовательности: -1 -3 -5 -7. В этом случае программа все равно выведет правильный ответ.
Ошибки в программе:
В строке if x < 0 then s := x; нужно заменить оператор присваивания на оператор сложения, чтобы суммировать все отрицательные числа: if x < 0 then s := s + x;
Исправленный вариант программы: var s,i,x,mx: integer; begin mx := 0; s := 0; for i := 1 to 4 do begin read (x); if x < 0 then s := s + x; if x > mx then mx := x; end; writeln(s); writeln(mx) end.
При вводе чисел -5 2 -4 3 программа выведет:
-4
2
Пример последовательности: -1 -3 -5 -7. В этом случае программа все равно выведет правильный ответ.
Ошибки в программе:
В строке if x < 0 then s := x; нужно заменить оператор присваивания на оператор сложения, чтобы суммировать все отрицательные числа: if x < 0 then s := s + x;Исправленный вариант программы:
var
s,i,x,mx: integer;
begin
mx := 0;
s := 0;
for i := 1 to 4 do
begin
read (x);
if x < 0 then
s := s + x;
if x > mx then
mx := x;
end;
writeln(s);
writeln(mx)
end.