Перемножить матрицы - Pascal ABC (131350)
Формулировка задачи:
Написал прогу с помощью процедур, препод просит написать теперь с помощью функции. Помогите пожалуйста, не разберусь никак.
Заданы двумерные массивы A, B, C одинаковых размерностей. Вычислить A*B, B*C, A*C.
Найти максимальный элемент в каждой получившийся матрицы, помогите плз) Заранее спасибо.
Решение задачи: «Перемножить матрицы»
textual
Листинг программы
program matr; type mas=array[1..3,1..3] of integer; function pr(x,y:mas):mas; var i,j,k:integer; s:integer; begin for i:=1 to 3 do for j:=1 to 3 do begin s:=0; for k:=1 to 3 do s:=s+x[i,k]*y[k,j]; result[i,j]:=s; end; end; function maximum(z:mas):integer; var i,j:integer; begin result:=z[1,1]; for i:=1 to 3 do for j:=1 to 3 do if z[i,j]>result then result:=z[i,j]; end; function vvod:mas; var i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do result[i,j]:=random(20); end; function vivod(x:mas):byte; var i,j:integer; begin for i:=1 to 3 do begin for j:=1 to 3 do write(x[i,j]:4); writeln; end; result:=0; end; var a,b,c,d,e,f:mas; a1,b1,c1,d1,e1,f1:byte; begin randomize; a:=vvod; writeln('a'); a1:=vivod(a); b:=vvod; writeln('b'); b1:=vivod(b); c:=vvod; writeln('c'); c1:=vivod(c); writeln('a*b'); d:=pr(a,b); d1:=vivod(d); writeln('max=',maximum(d)); writeln('b*c'); e:=pr(b,c); e1:=vivod(e); writeln('max=',maximum(e)); writeln('a*c'); f:=pr(a,c); f1:=vivod(f); writeln('max=',maximum(f)); end.
Объяснение кода листинга программы
Список действий в коде:
- Объявление типа массива mas и функции pr, которая принимает два массива этого типа и возвращает массив этого типа.
- Внутри функции pr объявление трёх вложенных циклов, которые перебирают элементы массивов x и y.
- Вложенные циклы выполняют умножение элементов матриц x и y, сохраняя результат в массив s.
- Результат умножения записывается в элемент массива result.
- Объявление функции maximum, которая принимает массив z и возвращает максимальное значение элемента этого массива.
- Внутри функции maximum объявление двух вложенных циклов, которые перебирают элементы массива z.
- Если элемент z[i,j] больше текущего максимального значения, то обновляется значение текущего максимального значения.
- Объявление функции vvod, которая возвращает случайный массив.
- Внутри функции vvod объявление двух вложенных циклов, которые заполняют массив случайными числами.
- Объявление функции vivod, которая принимает массив и возвращает его в виде последовательности строк.
- Внутри функции vivod объявление двух вложенных циклов, которые перебирают элементы массива.
- Каждый элемент выводится на экран с помощью функции write.
- Создание шести массивов a, b, c, d, e, f.
- Вызов функции vvod для каждого из массивов a, b, c.
- Вывод содержимого каждого массива на экран с помощью функции vivod.
- Вычисление произведения массивов a и b, сохранение результата в массив d.
- Вычисление произведения массивов b и c, сохранение результата в массив e.
- Вычисление произведения массивов a и c, сохранение результата в массив f.
- Вычисление максимального значения в массиве d и вывод его на экран.
- Вычисление максимального значения в массиве e и вывод его на экран.
- Вычисление максимального значения в массиве f и вывод его на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д