GAECHKA
Твоя помощница в решении задач

Даны две квадратные матрицы n-го порядка (матрицы заполнены произвольно случайными целыми числами из диапазонов [-5; 15]

Даны две квадратные матрицы n-го порядка (матрицы заполнены
произвольно случайными целыми числами из диапазонов [-5; 15] и [-
15; 5] соответственно). Сравнить количества отрицательных элементов
в матрицах.
0
вопрос задан

Источник


1 ответ
program Project1;
const
  maxelem = 25;
type
  TArr = array [1..maxelem,1..maxelem] of integer;
 
procedure RandomInfInMatrix (var arr: TArr; narr,marr,leftval,rightval: integer);
// Процедура для заполнения двумерного массива случайными числами.
var
   i,j: integer;
begin
for i:= 1 to narr do
    for j:= 1 to marr do
      arr[i,j]:= leftval + random(rightval - leftval + 1) ;
 
end;
 
procedure InfOutMatrix (arr: TArr; narr,marr: integer);
// Процедура для вывода элементов массива на экран.
var
   i,j: integer;
begin
  for i:= 1 to narr do
    begin
    for j:= 1 to marr do
      Write(arr[i,j]:4);
      Writeln;
    end;
end;
 
function NumberNegativeElementMatrix (arr: TArr; narr,marr: integer): integer;
// Функция для подсчета отрицательных элементов двумерного массива.
var
   i,j: integer;
   num: integer;
begin
  num:= 0;
  for i:= 1 to narr do
    for j:= 1 to marr do
        if arr[i,j] 0 then
          inc(num);
  NumberNegativeElementMatrix:= num;
end;
 
 
var
  a,b:TArr;  // Переменная для хранения массива.
  n: integer;  // Переменные для хранения значения количества строк и столбцов.
  neg1,neg2: integer; // Переменные для хранения значения количества отрицательных элементов в матрице.
begin
  Randomize;
  Write('Введите значение размерности матрицы: ');
  Readln(n);
  RandomInfInMatrix(a,n,n,-5,15);
  Writeln('Исходная матрица #1: ');
  InfOutMatrix(a,n,n);
  RandomInfInMatrix(b,n,n,-15,5);
  Writeln('Исходная матрица #2: ');
  InfOutMatrix(b,n,n);
  neg1:= NumberNegativeElementMatrix(a,n,n);
  neg2:= NumberNegativeElementMatrix(b,n,n);
  if neg1 > neg2 then
     writeln ('Количество отрицательных элементов в матрице #1 больше, чем в матрице #2 и равно ',neg1)
  else
    if neg1 then
      writeln ('Количество отрицательных элементов в матрице #2 больше, чем в матрице #1  и равно ',neg2)
      else
        writeln ('Количество отрицательных элементов в матрице #1 и в матрице #2 равно и составляет ',neg1);
  readln;
end.