Дан вектор размером n, отсортировать первую половину вектора по убыванию

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

Дан вектор размером n, отсортировать первую половину вектора по убыванию


Информатика (23 баллов) | 113 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 var V := ArrRandom(ReadInteger('n='), -50, 50);

 V.Println;

 var k := V.Length;

 k := (k.IsOdd ? (k + 1) : k) div 2;

 V := (V[:k].OrderByDescending(t -> t) + V[k:]).ToArray;

 V.Println;

end.

Пример

n= 13

27 -32 47 -45 33 28 -39 20 26 3 19 -35 5

47 33 28 27 -32 -39 -45 20 26 3 19 -35 5


image
(654k баллов)
0

Если надо "продолжить", вопрос так и нужно давать, прикладывая Ваш код.

0

Что это значит "V.Println;" ?

0

и вот это "V := (V[:k].OrderByDescending(t -> t) + V[k:]).ToArray;" ?

0

Чтобы люди понимали, что Вам нужно не современное решение в 6 строчек, а архаичное в два с половиной десятка строк.

0

V.Println означает требование вывести содержимое V

0

Если программу загрузить, то подведя курсор к любому незнакомому месту, получаете подсказку что это.

0

V[:k] - это срез (часть) массива от его начала, до элемента с индексом k

0

Блин, а можно как нибудь по проще написать?

0

У Вас неверная терминология. Если есть два решения, одно в 6 строк, а второе, например, в 25, ясно что проще то, которое короче. Другой вопрос, что лично Вам оно непонятно, но это же Ваша проблема, верно же? Исходит она от того, что Вы не указали версию языка, в которой нужен код. Более того, Вы ВООБЩЕ НЕ НАПИСАЛИ, что код нужен на Паскале!

0

Могли получить код на С, Джаве, Питоне, Бейсике...