Заданы 2 матрицы A(6,6), B(6,6). Выполнить указанные преобразования – 2 для той матрицы, которая отвечает заданному условию – 1 — Pascal(Паскаль)

Условие 1 – выполнить в подпрограмме FUNCTION, условие 2 – выполнить в подпрограмме PROCEDURE. Например, для матрицы, в которой max элемент в первой строке больше – (это условие 1) просуммировать элементы в каждом столбце – (это условие 2).
Условие 1: количество нулевых элементов больше;
Условие 2: Найти сумму всех элементов, расположенных до главной диагонали.

program PascalGuru;

uses crt;

type
  arr = array [1 .. 6, 1 .. 6] of integer;
  vector = array [1 .. 6] of integer;

var
  A, B: arr;
  i, j, s: integer;

  { ---------------------------------------- }
function countNull(X: arr): integer;
var
  i, j, rez: integer;
begin
  rez := 0;
  for i := 1 to 6 do
    for j := 1 to 6 do
      if X[i, j] = 0 then
        inc(rez);
  countNull := rez;
end;

{ ---------------------------------------- }
procedure summa(X: arr; var summa: integer);
var
  i: integer;
begin
  summa := 0;
  for i := 1 to 6 do
    summa := summa + X[i, i]
end;
{ ---------------------------------------- }

begin
  for i := 1 to 6 do
    for j := 1 to 6 do
      A[i, j] := -8 + random(26);

  for i := 1 to 6 do
    for j := 1 to 6 do
      B[i, j] := -8 + random(26);

  write('Vot matrica A:');
  for i := 1 to 6 do
  begin
    writeln;
    for j := 1 to 6 do
      write(A[i, j]:8, ' ');
  end;
  writeln;
  writeln;
  write('Vot matrica B:');
  for i := 1 to 6 do
  begin
    writeln;
    for j := 1 to 6 do
      write(B[i, j]:8, ' ');
  end;

  writeln;
  writeln;
  if countNull(A) > countNull(B) then
  begin
    summa(A, s);
    writeln('Summa gl.diag. matricy "A": ', s);
  end
  else
  begin
    summa(B, s);
    writeln('Summa gl.diag. matricy "B": ', s);
  end;

  readln;

end.

Leave a Comment

84 + = 89