Напишите программу, которая заполняет массив случайными числами в диапазоне [a, b] и сортирует его “домиком” – до половины в порядке возрастания, затем – в порядке убывания. количество элементов в массиве может быть любое! с объяснениями и откуда что взялось?

Morozob Morozob    3   13.09.2019 08:40    0

Ответы
DaraMarkos DaraMarkos  07.10.2020 11:29
// PascalABC.NET 3.3, сборка 1590 от 03.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var (a,b,n):=ReadInteger3('Интервал [a,b] и число элементов;');
  var M:=ArrRandom(n,a,b); M.Println; // заполнение и вывод массива
  var k:=n div 2; // середина массива
  M:=(M[:k].OrderBy(t->t)+M[k:].OrderByDescending(t->t)).ToArray;
  M.Println
end.

Примеры
Интервал [a,b] и число элементов; -50 50 19
-12 -45 5 28 -43 -45 21 4 -44 49 7 -30 1 24 -23 2 -17 -48 32
-45 -45 -44 -43 -12 4 5 21 28 49 32 24 7 2 1 -17 -23 -30 -48

Интервал [a,b] и число элементов; 0 1 30
0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика