Срочно. Напишите программу, которая заполняет массив случайными числами в диапазоне [a,...

0 голосов
24 просмотров

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


Информатика (1.0k баллов) | 24 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// 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
(150k баллов)
0

Брежнев

0

да

0

вы опоздали на 10 тыс. лет.

0

или 3500 (если речь идет о карликовых мамонтах)