Используя подпрограмму ранжирования, найти сумму 2-х наименьших и 2-х наибольших по...

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

Используя подпрограмму ранжирования, найти сумму 2-х наименьших и 2-х наибольших по модулю элементов массива:

Т= (-2,3,-1,4,-5,2,1,0,1,2,1,-3,5)


Информатика (27 баллов) | 43 просмотров
0

Нужно произвести сортировку массива и найти сумму 2-х наименьших и 2-х наибольших по модулю элементов массива

0

При это всё должно быть в процедуре

0

Ну да, а в конце, в теле программы просто вызвать её

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1599 от 17.12.2017
// Внимание! Если программа не работает, обновите версию!

procedure Astento;
begin
  var T:=Arr(-2,3,-1,4,-5,2,1,0,1,2,1,-3,5);
  var s:=T.OrderBy(p->Abs(p)); // последовательность памяти не занимает
  Writeln('Сумма двух наименьших по модулю: ',s.Take(2).Sum);
  Writeln('Сумма двух наибольших по модулю: ',s.TakeLast(2).Sum)
end;  

begin
  Astento
end.

Результат
Сумма двух наименьших по модулю: -1
Сумма двух наибольших по модулю: 0

Замечание: в данном случае "ранжированная" последовательность была такой: 0 -1 1 1 1 -2 2 2 3 -3 4 -5 5


(150k баллов)