В одновимірному масиві визначити суму додатніх елементів. Знайти добуток елементів, розташованих між максимальним по модулю та мінімальним по модулю елементами масиву. (Лазарус)
Ответы
Ответ:
program ArrayOperations;
var
arr: array of Integer;
i, sum, max_idx, min_idx, prod: Integer;
max_val, min_val: Integer;
begin
// ініціалізуємо масив
SetLength(arr, 10);
arr[0] := 2;
arr[1] := -5;
arr[2] := 8;
arr[3] := 3;
arr[4] := -1;
arr[5] := 7;
arr[6] := -4;
arr[7] := 9;
arr[8] := 0;
arr[9] := -2;
// знаходимо суму додатніх елементів масиву
sum := 0;
for i := 0 to Length(arr) - 1 do
begin
if arr[i] > 0 then
sum := sum + arr[i];
end;
WriteLn('Сума додатніх елементів: ', sum);
// знаходимо максимальний і мінімальний елементи за модулем
max_idx := 0;
min_idx := 0;
max_val := abs(arr[0]);
min_val := abs(arr[0]);
for i := 1 to Length(arr) - 1 do
begin
if abs(arr[i]) > max_val then
begin
max_idx := i;
max_val := abs(arr[i]);
end;
if abs(arr[i]) < min_val then
begin
min_idx := i;
min_val := abs(arr[i]);
end;
end;
// знаходимо добуток елементів, що знаходяться між максимальним і мінімальним елементами
prod := 1;
if max_idx < min_idx then
begin
for i := max_idx + 1 to min_idx - 1 do
begin
prod := prod * arr[i];
end;
end
else
begin
for i := min_idx + 1 to max_idx - 1 do
begin
prod := prod * arr[i];
end;
end;
WriteLn('Добуток елементів, розташованих між максимальним та мінімальним елементами: ', prod);
end.