Дан целочисленный массив из 200 элементов, в котором записаны значения последовательных результатов измерений. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который выполняет выбраковку данных в массиве: если максимальный чётный элемент массива меньше максимального нечётного, все чётные элементы заменяются на нули, иначе все нечётные элементы заменяются на нули. Например, для исходного массива из восьми элементов:
7 1 3 2 14 5 9 6
программа должна вывести (по одному числу в строке) числа
0 0 0 2 14 0 0 6
Язык Паскаль
Answers & Comments
{PascalABC}
Program Begenjov1997;
const
n = 200; {Количество элементов массива}
m = 10000; {Максимально возможное значение элемента}
var
a:array[1..n] of integer;
i, chet,nech: integer;
s:string;
begin
s:='**** -=Alphaeus=- ****';
for i:=1 to 22 do begin write(s[i]); sleep(60) end;
{заполняем массив случайными числами}
writeln; randomize;
for i:=1 to n do a[i]:=random(m+1);
{Ищем максимальный чётный и максимальный нечётный элементы}
chet:=a[1];nech:=a[1];
for i:=2 to n do
begin
if (a[i]>chet) and (a[i] mod 2 = 0) then chet:=a[i];
if (a[i]>nech) and (a[i] mod 2 <> 0) then nech:=a[i];
end;
{сравниваем чёт и нечет, заменяем нужное на нули и выводим}
writeln;
for i:=1 to n do
begin
if (chet>nech) and (a[i] mod 2 = 0) then a[i]:=0;
if (nech>chet) and (a[i] mod 2 <> 0) then a[i]:=0;
writeln(a[i]:4);
end;
end.