Паскаль я не разбираюсь в этом языке
Создать массив из 16 элементов. Заполнить его целыми случайными числами в интервале от 1 до 11. Найти в нем количество чётных элементов. Отсортировать массив по убыванию. Заменить все чётные элементы на их количество. Вывести массив в строку с комментариями.

wista196 wista196    1   03.12.2020 16:50    3

Ответы
anelya1429 anelya1429  02.01.2021 16:52

begin

 var N: array of integer;

 SetLength(N,16);

 N.FillRandom(1,11);

 var Q:=N.FindAll(x -> x mod 2 = 0).Length;

 writeln('Количество четных элементов:',Q);

 N.Sort; Reverse(N);

 for var l:=N.Low to N.High do N[l]:=(N[l] mod 2 = 0)? Q:N[l];

 writeln('Полученный массив: ',N);

end.

Объяснение:

var N: array of integer; Вводим наш массив с числами

 SetLength(N,16); Устанавливаем его длину, 0 - первый элемент, 15 - последний, итого 16 ячеек

 N.FillRandom(1,11); Заполняем массив случайным образом числами от 1 до 11

 var Q:=N.FindAll(x -> x mod 2 = 0).Length; Находим количество четных элементов. x mod 2 остаток от деления каждого элемента на 2

 {Процедура FindAll заносит все значения, по условию в отдельный массив, через .Length смотрим его длину}

writeln('Количество четных элементов:',Q);

 N.Sort; Reverse(N); N.Sort - сортирует массив по возрастанию, а reverse() меняет последовательность на противоположную, соответственно, теперь он отсортирован по убыванию

 for var l:=N.Low to N.High do N[l]:=(N[l] mod 2 = 0)? Q:N[l];  От начала массива и до его конца, над каждым элементом смотрим - четный он или нет, если четный - заменяем на Q (число элементов)

 writeln('Полученный массив: ',N);

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика