Получить новую матрицу умножением элементов двух исходных - Pascal ABC

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

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

1.Даны два двумерных массива целых чисел A и В размером N на N. Получить новую матрицу умножением элементов каждой строки 1-й матрицы на наибольшее из значений элементов соответствующей строки 2-й матрицы. 2.Даны два двумерных массива целых чисел A и В размером N на N. Получить новую матрицу умножением элементов каждой строки 1-й матрицы на наибольшее из значений элементов соответствующей строки 2-й матрицы.

Решение задачи: «Получить новую матрицу умножением элементов двух исходных»

textual
Листинг программы
uses crt;
const nmax=10;
var a,b:array[1..nmax,1..nmax] of integer;
    n,i,j,mx:integer;
begin
randomize;
repeat
write('Размер матриц до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Исходная матрица A:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln('Исходная матрица B:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    b[i,j]:=random(20);
    write(b[i,j]:4);
   end;
  writeln;
 end;
writeln('Нажмите Enter для продолжения');
readln;
writeln('Измененная матриуа А:');
for i:=1 to n do
 begin
  mx:=b[i,1];
  for j:=2 to n do
  if b[i,j]>mx then mx:=b[i,j];
  for j:=1 to n do
   begin
    a[i,j]:=a[i,j]*mx;
    write(a[i,j]:4);
   end;
  writeln
 end;
end.

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

  1. В начале кода подключается библиотека crt, которая обеспечивает работу с консолью.
  2. Затем определяется константа nmax, которая ограничивает размер матрицы до 10 строк и 10 столбцов.
  3. Далее объявляются две переменные типа array[1..nmax,1..nmax] of integer - a и b, которые будут использоваться для хранения исходной и измененной матрицы соответственно.
  4. Затем объявляются три переменные - n, i и j, которые будут использоваться для итерации по строкам, столбцам и элементам матрицы.
  5. Следующий блок repeat-until используется для получения от пользователя размера матрицы.
  6. Внутри repeat-until выводится запрос на ввод размера матрицы, а затем считывается введенное значение.
  7. После этого выводится исходная матрица A.
  8. Для каждой строки матрицы (от i=1 до n) выполняется цикл for j=1 до n.
  9. Внутри цикла вычисляется максимальное значение в текущей строке (mx).
  10. Затем выполняется цикл for j=1 до n.
  11. Если значение b[i,j] больше mx, то mx присваивается значение b[i,j].
  12. После этого выполняется цикл for j=1 до n.
  13. Внутри цикла значение a[i,j] умножается на mx и выводится на экран.
  14. После вывода значения a[i,j] выполняется оператор end, который завершает цикл.
  15. Затем выводится символ новой строки, чтобы перейти к следующей строке матрицы.
  16. После этого выводится измененная матрица А.
  17. Для каждой строки матрицы (от i=1 до n) выполняется цикл for j=1 до n.
  18. Внутри цикла значение a[i,j] умножается на mx и выводится на экран.
  19. После вывода значения a[i,j] выполняется оператор end, который завершает цикл.
  20. Конец программы.

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

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