Получить новую матрицу умножением элементов двух исходных - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая обеспечивает работу с консолью.
- Затем определяется константа nmax, которая ограничивает размер матрицы до 10 строк и 10 столбцов.
- Далее объявляются две переменные типа array[1..nmax,1..nmax] of integer - a и b, которые будут использоваться для хранения исходной и измененной матрицы соответственно.
- Затем объявляются три переменные - n, i и j, которые будут использоваться для итерации по строкам, столбцам и элементам матрицы.
- Следующий блок repeat-until используется для получения от пользователя размера матрицы.
- Внутри repeat-until выводится запрос на ввод размера матрицы, а затем считывается введенное значение.
- После этого выводится исходная матрица A.
- Для каждой строки матрицы (от i=1 до n) выполняется цикл for j=1 до n.
- Внутри цикла вычисляется максимальное значение в текущей строке (mx).
- Затем выполняется цикл for j=1 до n.
- Если значение b[i,j] больше mx, то mx присваивается значение b[i,j].
- После этого выполняется цикл for j=1 до n.
- Внутри цикла значение a[i,j] умножается на mx и выводится на экран.
- После вывода значения a[i,j] выполняется оператор end, который завершает цикл.
- Затем выводится символ новой строки, чтобы перейти к следующей строке матрицы.
- После этого выводится измененная матрица А.
- Для каждой строки матрицы (от i=1 до n) выполняется цикл for j=1 до n.
- Внутри цикла значение a[i,j] умножается на mx и выводится на экран.
- После вывода значения a[i,j] выполняется оператор end, который завершает цикл.
- Конец программы.