Найти с поддержкою лямбда функцию сумму элемента матрицы .

Отыскать с помощью лямбда функцию сумму элемента матрицы .

Задать свой вопрос
Амина Жуковкина
на каком языке?
Васька Чехров
Паскаль
Анастасия Ортис
Это вопрос либо утверждение? Мне без различия.
Артемий Берестенев
Да.
Витя Горленко
2-ое.
1 ответ
// PascalABC.NET 3.2, сборка 1449 от 23.05.2017
// Внимание! Если программка не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('*** Начальная матрица [',n,',',n,'] ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  Writeln('S=',a.ElementsWithIndexes
    .Where(y-gt;(y[0]gt;=a.RowCount div 2) and (y[1]gt;=a.ColCount div 2))
    .Select(y-gt;y[2]).Sum)
end.

Пример
Количество строк/столбцов в матрице: 8
*** Исходная матрица [8,8] ***
 -73 -79  -1  19 -58  79 -18 -81
 -71  78  27  59  -6   4 -95  36
 -95 -47 -94 -86  66 -37   6  12
 -96 -42 -43 -78  34 -53  29  91
 -65   2  59   3 -26 -16 -63  22
  -4 -18  97  65 -70  78  78   9
 -36 -64   8 -69 -34  74 -17  63
  15  87  15  84  22 -39 -16  82
--------------------------------
S=147

Если не устраивают лямбда-выражения, а нужна конкретно функция, можно написать так:

type
  Mat=array[,] of integer;
 
begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('*** Начальная матрица [',n,',',n,'] ***');
  var a:Mat:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var PartSum:Mat-gt;integer;
  PartSum:=x-gt;x.ElementsWithIndexes
    .Where(y-gt;(y[0]gt;=x.RowCount div 2) and (y[1]gt;=x.ColCount div 2))
    .Select(y-gt;y[2]).Sum;
  Writeln('S=',PartSum(a))
end.

Николай Шематьков
Ошибочно написал
Софья Бормосова
Where(y->not(a.RowCount<= n/2) and not(a.ColCount<=n/2)
Карамеева Евгения
Тоже вычленяет 4 часть
Urodlichenko Anton
Только не знаю как сумму написать
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт