// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(10,10,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var s:=a.ElementsWithIndexes;
var SumDiag:=s.Where(x->x[1]=x[2]).Sum(x->x[0]);
Writeln('Сумма элементов на главной диагонали ',SumDiag);
Writeln('Искомое количество элементов ',s.Where(x->x[0]end.
Пример
*** Исходная матрица ***
35 15 -56 -90 -87 -60 -82 -4 -72 9
-9 -48 -45 -62 -48 95 57 -26 12 68
34 72 10 -6 -12 15 -68 -11 -92 70
-68 -52 -12 36 -61 -53 -82 18 -93 34
87 89 -39 -87 67 -45 95 -77 -10 56
-48 99 62 44 16 62 -95 49 22 -3
-92 28 -12 -42 -23 -57 63 18 98 -94
77 -61 -33 77 80 45 12 -3 26 -67
20 -91 99 -49 18 -68 -14 43 -79 -23
-58 -31 96 10 26 -40 1 -97 35 25
----------------------------------------
Сумма элементов на главной диагонали 168
Искомое количество элементов 57