Версия языка: PascalABC.Net 3.2, сборка 1437 от 03.05.20171. Сохраняем текст модуля в файле garnaga.pas и выполняем компиляцию (Ctrl+F9)unit garnaga;interfacetype Mass2d=array [,] of integer;function GetMass(rand:boolean:=true):Mass2d;function SumDiag(a:Mass2d):integer;implementationfunction GetMass(rand:boolean):Mass2d;begin var n:=ReadInteger('Количество строк/столбцов в массиве:'); if rand=true then begin var a:=ReadInteger('Минимальное значение для заполнения:'); var b:=ReadInteger('Максимальное значение для заполнения:'); Result:=MatrRandom(n,n,a,b) end else begin Writeln('Вводите элементы массива:'); Result:=ReadMatrInteger(n,n) endend;function SumDiag(a:Mass2d):integer;begin Result:=0; var n:=a.RowCount-1; for var i:=0 to n do Result+=a[i,i]+a[i,n-i]; if n.IsEven then begin n:=n div 2; Result-=a[n,n] endend;end.
2. Создаем новый файл и помещаем в него программу, использующую созданный модульuses garnaga;begin var a:=GetMass; a.Println; Writeln; var b:=GetMass; b.Println; Writeln; var c:=GetMass(false); Writeln; Writeln('Sдиаг=',SumDiag(a)+SumDiag(b)+SumDiag(c))end.
3. Запускаем программу на выполнение.Пример работы:Количество строк/столбцов в массиве: 4Минимальное значение для заполнения: -20Максимальное значение для заполнения: 35 4 -14 -14 26 26 -6 12 22 13 10 -20 26 -3 22 14 -4Количество строк/столбцов в массиве: 5Минимальное значение для заполнения: 0Максимальное значение для заполнения: 50 13 48 5 12 2 43 31 45 35 23 36 30 6 47 42 11 8 29 36 39 11 33 14 48 29Количество строк/столбцов в массиве: 3Вводите элементы массива:1 6 28 3 47 0 5Sдиаг=208