Версия языка: PascalABC.Net 3.2, сборка 1437 от 03.05.2017
1. Сохраняем текст модуля в файле garnaga.pas и выполняем компиляцию (Ctrl+F9)
unit garnaga;
interface
type Mass2d=array [,] of integer;
function GetMass(rand:boolean:=true):Mass2d;
function SumDiag(a:Mass2d):integer;
implementation
function 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)
end
end;
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]
end
end;
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 2
8 3 4
7 0 5
Sдиаг=208