Задание №2 Разработать модуль, в котором определить простейшие процедуры: 1.ввода...

0 голосов
39 просмотров

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


Информатика (335 баллов) | 39 просмотров
0

Массив квадратный? Если да, то сумму только главной диагонали, или и главной и побочной?

0

сумму диагональных элементов 3-х массивов

0

Мой вопрос остался без ответа)))

0

или и главной и побочной.доброе утро!

Дан 1 ответ
0 голосов
Правильный ответ
Версия языка: 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
(150k баллов)
0

спасибо большое