Программисту было поручено написать программу нахождения суммы отрицательных элементов одномерного массива. Программист разработал
программу, но допустил в ней одну ошибку. Текст программы с ошибкой
представлен ниже:
program n1;
var
k, s: integer;
a: array [1..8] of integer;
begin
for k := 1 to 8 do readln(a[k]);
s := 0;
for k := 1 to 8 do
if a[k] < 0 then s := s + a[1];
writeln(s);
end.
1) Каким окажется ответ после исполнения этой программы, если в качестве
элементов массива будут введены числа 1, 2, 3, 4, -1, -2, -3, -4?
2) Как исправить программу, чтобы она решала поставленную перед
программистом задачу?
1.
program n1;
var
k, s: integer;
a: array [1..8] of integer;
begin
for k := 1 to 8 do readln(a[k]); // с клавиатуры вводится массив из 8
s := 0; элементов
for k := 1 to 8 do
if a[k] < 0 then s := s + a[1]; // в цикле 4 раза к s прибавляют 1-ый элемент
writeln(s); // выводится s
end.
ответ: 4(т.к 1-ый элемент массива 1 и в нём 4 отрицательных элемента)
2.
Надо строку if a[k] < 0 then s := s + a[1];
Заменить на строку if a[k] < 0 then s := s + a[k];
Объяснение: