№2 разработать модуль, в котором определить простейшие процедуры: 1.ввода двумерного массива 2.вычисления суммы его диагональных элементов. в программе вычислить общую сумму диагональных элементов 3-х массивов. нужен паскаль abc.net
Версия языка: 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
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