Используя подпрограмму ранжирования, найти сумму - PascalABC.NET
Формулировка задачи:
Используя подпрограмму ранжирования, найти сумму 3-х наибольших по модулю элементов массива:
Т= (-1,2,1,-1,-4,0,2,5,3,-2,1)
Распечатать массив после ранжирования.
Решение задачи: «Используя подпрограмму ранжирования, найти сумму»
textual
Листинг программы
begin var a: array of integer := (-1, 2, 1, -1, -4, 0, 2, 5, 3, -2, 1); a.Println; a := a.OrderBy(v -> abs(v)).ToArray; writelnformat('Сортированный массив: {0}{2}Сумма 3-х наибольших по модулю: {1}', a.JoinIntoString, a.Reverse.Take(3).Sum, NewLine); end.
Объяснение кода листинга программы
- Создается массив
a
с элементами-1, 2, 1, -1, -4, 0, 2, 5, 3, -2, 1
- Массив
a
выводится на экран с помощьюa.Println
- Массив
a
сортируется по модулю с помощьюa := a.OrderBy(v -> abs(v)).ToArray
- Выводится отсортированный массив
a
с помощьюwritelnformat('Сортированный массив: {0}{2}Сумма 3-х наибольших по модулю: {1}', a.JoinIntoString, a.Reverse.Take(3).Sum, NewLine)
- Выводится сумма трех наибольших элементов массива
a
с помощьюa.Reverse.Take(3).Sum
- Используется
NewLine
для перехода на новую строку - В итоге выводится строка отформатированного вывода, включающая отсортированный массив и сумму трех наибольших элементов массива.