Дан целочисленный массив из 200 элементов, в котором записаны значения последовательных результатов измерений. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который выполняет выбраковку данных в массиве: если максимальный чётный элемент массива меньше максимального нечётного, все чётные элементы заменяются на нули, иначе все нечётные элементы заменяются на нули. Например, для исходного массива из восьми элементов: 7 1 3 2 14 5 9 6 программа должна вывести (по одному числу в строке) числа 0 0 0 2 14 0 0 6 Язык Паскаль
var arr: array[1..200] of integer; i, max_even, max_odd: integer;
begin // заполнение массива arr for i := 1 to 200 do arr[i] := random(10001); // случайное значение от 0 до 10000
max_even := -1; max_odd := -1;
// поиск максимальных четного и нечетного элементов for i := 1 to 200 do begin if (arr[i] mod 2 = 0) and (arr[i] > max_even) then max_even := arr[i] else if (arr[i] mod 2 = 1) and (arr[i] > max_odd) then max_odd := arr[i]; end;
// фильтрация массива if max_even < max_odd then begin for i := 1 to 200 do begin if arr[i] mod 2 = 0 then arr[i] := 0; end; end else begin for i := 1 to 200 do begin if arr[i] mod 2 = 1 then arr[i] := 0; end; end;
// вывод отфильтрованного массива for i := 1 to 200 do writeln(arr[i]);
program FilterArray;
var
arr: array[1..200] of integer;
i, max_even, max_odd: integer;
begin
// заполнение массива arr
for i := 1 to 200 do
arr[i] := random(10001); // случайное значение от 0 до 10000
max_even := -1;
max_odd := -1;
// поиск максимальных четного и нечетного элементов
for i := 1 to 200 do
begin
if (arr[i] mod 2 = 0) and (arr[i] > max_even) then
max_even := arr[i]
else if (arr[i] mod 2 = 1) and (arr[i] > max_odd) then
max_odd := arr[i];
end;
// фильтрация массива
if max_even < max_odd then
begin
for i := 1 to 200 do
begin
if arr[i] mod 2 = 0 then
arr[i] := 0;
end;
end
else
begin
for i := 1 to 200 do
begin
if arr[i] mod 2 = 1 then
arr[i] := 0;
end;
end;
// вывод отфильтрованного массива
for i := 1 to 200 do
writeln(arr[i]);
end.