Расположите в обратном порядке элементы массива, которые расположены перед максимальным элементом массива. - PascalABC.NET
Формулировка задачи:
Дан одномерный числовой массив размера K, значения элементов в котором различны. Расположите в обратном порядке элементы массива, которые расположены перед максимальным элементом массива.
. Вспомогательный массив не*используйте. Вывод элементов измененного массива осуществите в строку.
буду благодарна
Решение задачи: «Расположите в обратном порядке элементы массива, которые расположены перед максимальным элементом массива.»
textual
Листинг программы
begin var a := ArrRandom(ReadlnInteger('K =')).Println; var indexmax := a.Select((v, i) -> v = a.Max ? i : -1).OrderByDescending(v -> v).First; a := a.Take(indexmax).Reverse + a.Skip(indexmax); write('Изменённый массив: ', a.JoinIntoString); end.
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Создаётся массив
a
размеромK
с помощью функцииArrRandom()
. - Выводится на экран размер массива
K
. - Находится индекс максимального элемента массива
a
с помощью функцииSelect
, в которую передаётся лямбда-выражение, отбирающее пары элементов, где второй элемент (индекс) равен максимальному значениюa
, а первый элемент (значение) равен текущему значению переменнойv
. Если такое условие выполняется, то возвращается индекс. Если такого условия нет, то возвращается-1
. - Полученный список индексов сортируется в порядке убывания с помощью функции
OrderByDescending
. - Из полученного списка индексов выбирается первый элемент (наибольший индекс) с помощью функции
First
. - Изменяется порядок элементов массива
a
: сначала берутся элементы с индексами отindexmax
до 0 с помощью функцииTake
, а затем к полученному массиву добавляются элементы с индексами от 0 доindexmax-1
с помощью функцииSkip
. - Полученный изменённый массив выводится на экран с помощью функции
write
, в которую передаётся строка форматаИзменённый массив:
, а также переменнаяa
, преобразованная в строку с помощью методаJoinIntoString
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д