Найти max элементы в матрицах А и В (MaxA и MaxB соответственно) - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Найти max элементы в матрицах А и В (MaxA и MaxB соответственно). Если MaxA>MaxB, то вычислить C=A*B, иначе вычислить C=B*A. Вывести: А, В, А1, В1, S. В4х4, где Вij={0, если i не равно j 1, иначе i=1..4, j=1..4

Решение задачи: «Найти max элементы в матрицах А и В (MaxA и MaxB соответственно)»

textual
Листинг программы
const
  n=4;
type tarray=array[1..n,1..n] of integer;
var a,b,c:tarray;
    i,j,max1,max2:integer;
begin
max1:=-999;
randomize;
writeln('massiv A');
for i:=1 to n do begin
  for j:=1 to n do begin
    a[i,j]:=random(18)-9;
    write(a[i,j],' ');
    if a[i,j]>max1 then max1:=a[i,j];
    end;
  writeln;
  end;
writeln('max1=',max1,'');
writeln('massiv B');
for i:=1 to n do
  for j:=1 to n do
    b[i,j]:=0;
for i:=1 to n do begin
  for j:=1 to n do begin
    if i=j then begin
      b[i,j]:=1;
      end;
    write(b[i,j],' ');
    max2:=1;
    end;
  writeln;
  end;
writeln('max2=',max2,'');
if max1=max2 then writeln('max1=max2') else begin
  if max1>max2 then begin
    writeln('max1>max2');
    writeln('massiv C');
    for i:=1 to n do begin
      for j:=1 to n do begin
        c[i,j]:=a[i,1]*b[1,j]+a[i,2]*b[2,j]+a[i,3]*b[3,j]+a[i,4]*b[4,j];
        write(c[i,j],' ');
        end;
      writeln;
      end;
    end else begin
    writeln('max1<max2');
    writeln('massiv C');
    for i:=1 to n do begin
      for j:=1 to n do begin
        c[i,j]:=b[i,1]*a[1,j]+b[i,2]*a[2,j]+b[i,3]*a[3,j]+b[i,4]*a[4,j];
        write(c[i,j],' ');
        end;
      writeln;
      end;
    end;
  end;
readln;
end.

Объяснение кода листинга программы

  1. В начале программы объявляются константы и переменные:
    • n - размерность матрицы (4х4).
    • tarray - тип матрицы (массив размерности 1..n,1..n).
    • a,b,c - переменные этого типа.
    • i,j,max1,max2 - целочисленные переменные для работы с циклами.
  2. Инициализация:
    • max1 устанавливается в -999, чтобы начальное значение максимального элемента было некорректным.
    • randomize для инициализации генератора случайных чисел.
    • writeln('massiv A') - вывод заголовка для первой матрицы.
    • for i:=1 to n do begin - внешний цикл по строкам матрицы.
    • for j:=1 to n do begin - внутренний цикл по столбцам матрицы.
    • a[i,j]:=random(18)-9; - генерация случайного числа от -9 до 18 для элемента матрицы.
    • write(a[i,j],' '); - вывод элемента матрицы с пробелом после него.
    • if a[i,j]>max1 then max1:=a[i,j]; - проверка, является ли текущий элемент максимальным и обновление значения max1, если это так.
    • end; - выход из внутреннего цикла.
    • writeln; - переход на новую строку после вывода всех элементов строки.
    • end; - выход из внешнего цикла.
    • writeln('max1=',max1,''); - вывод значения max1 и завершающего символа.
    • Аналогично вышеуказанному алгоритму, обрабатывается вторая матрица b, но вместо случайных чисел используются единицы для элементов по диагонали.
    • max2:=1; - инициализация max2 единицей, так как все элементы матрицы b равны единице.
    • writeln('max2=',max2,''); - вывод значения max2 и завершающего символа.
    • Если max1 не равно max2, то выполняется одна из двух ветвей условного оператора:
    • Если max1 больше max2, то выполняется первая ветвь:
    • writeln('max1>max2'); - вывод сообщения о том, что max1 больше max2.
    • writeln('massiv C'); - вывод заголовка для третьей матрицы.
    • for i:=1 to n do begin - внешний цикл по строкам матрицы.
    • for j:=1 to n do begin - внутренний цикл по столбцам матрицы.
    • c[i,j]:=a[i,1]*b[1,j]+a[i,2]*b[2,j]+a[i,3]*b[3,j]+a[i,4]*b[4,j]; - вычисление элемента третьей матрицы как сумма произведений соответствующих элементов первых двух матриц.
    • write(c[i,j],' '); - вывод элемента матрицы с пробелом после него.
    • end; - выход из внутреннего цикла.
    • writeln; - переход на новую строку после вывода всех элементов строки.
    • end; - выход из внешнего цикла.
    • readln; - чтение строки от пользователя для завершения программы.
  3. Ввод и вывод управляются функциями readln и writeln, которые обеспечивают корректный обмен данными между программой и пользователем.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы