Информатика, вопрос задал ThisisMYNICKNAME , 2 года назад

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


ThisisMYNICKNAME: Ну пж

Ответы на вопрос

Ответил zhoramalushevpegkpk
1

Ответ:

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);

Приложения:

ThisisMYNICKNAME: "Найти в нем количество чётных элементов. Отсортировать массив по убыванию. Заменить все чётные элементы на их количество"
А где?
zhoramalushevpegkpk: Что именно? Все шаги я привел в объяснении. То что вы перечислили уже есть в коде
Новые вопросы