Даны три квадратные матрицы вещественных чисел - Pascal ABC
Формулировка задачи:
Даны три квадратные матрицы вещественных числе A, N<=10 и B, М<=20,С,L<=30,. В той матрице, где минимальный элемент над побочной диагональю(диагональ не включая) наибольший,переставить местами четные и нечетные столбцы, а также упорядочить последний(уже в измененной матрице) столбец по убыванию
Вывести- исходные матрицы, минимальные элементы, и измененную матрицу,в задаче использовать и функции, и процедуры
Я сделала , но у меня она не выводит матрицы
Помогите пожалуйста, очень важно
Решение задачи: «Даны три квадратные матрицы вещественных чисел»
textual
Листинг программы
program one; type mas = array[1..30, 1..30] of real; var A: mas; B: mas; C: mas; N, M, L, i, j: integer; procedure vvod(var matrix: mas; u: integer); var i, j: integer; begin for i := 1 to u do begin for j := 1 to u do begin matrix[i, j] := random(10); end; end; end; procedure vivod(matrix: mas; u: integer); var i, j: integer; begin for i := 1 to u do begin for j := 1 to u do begin write( matrix[i, j], ' ' ); end; writeln end; end; function minimum( matrix: mas; u: integer): real; var i, j: integer; min: real; begin min := matrix[1, 1]; for i := 1 to u do begin for j := 1 to u-j do begin if matrix[i, j] < min then min := matrix[i, j]; end; end; minimum := min; end; procedure obmen(var matrix: mas; u: integer); var p, i, j: integer; buf: real; begin i := 1; p := n - 2; begin while i <= 1 do for j := 1 to u do begin buf := matrix[i, j]; matrix[i, j] := matrix[i + 1, j]; matrix[i + 1, j] := buf; i := i + 2; end; end; write(matrix); writeln; end; procedure por(var matrix: mas; u: integer); var i, j: integer; buf: real; begin i := u; for j := 1 to u do begin if matrix[i, j] < matrix[i, j + 1] then begin buf := matrix[i, j]; matrix[i, j] := matrix[i, j + 1]; matrix[i, j + 1] := buf; end; end; write(matrix); writeln end; begin writeln('введите N, M, L'); readln(N); readln(M); readln(L); vvod(A, N); vivod(A, N); writeln('<br>'); vvod(B, M); vivod(B, M); writeln('<br>'); vvod(C, L); vivod(C, L); writeln('minA=', minimum(A, N) ); writeln('minB=', minimum(B, M) ); writeln('minC=', minimum(C, L)); begin if (minimum(A, N) > minimum(B, M)) and (minimum(A, N) > minimum(C, L)) then begin obmen(A, N); por(A, N); vivod(A, N); end; begin if (minimum(B, M) > minimum(A,N)) and (minimum(B,M) > minimum(C, L)) then begin obmen(B,M); por(B,M); vivod(B,M); end; begin if (minimum(C,L) > minimum(B, M)) and (minimum(C,L) > minimum(A,N)) then begin obmen(C,L); por(C,L); vivod(C,L); end; end; end; end; end.
Объяснение кода листинга программы
- Ввод данных: N, M, L.
- Ввод матрицы A размером NxN.
- Вывод матрицы A.
- Ввод матрицы B размером MxM.
- Вывод матрицы B.
- Ввод матрицы C размером LxL.
- Вывод матрицы C.
- Нахождение минимального элемента в матрице A.
- Нахождение минимального элемента в матрице B.
- Нахождение минимального элемента в матрице C.
- Если минимальный элемент в матрице A больше, чем минимальный элемент в матрице B, и больше, чем минимальный элемент в матрице C, то выполняется процедура obmen для матрицы A.
- Вывод матрицы A.
- Если минимальный элемент в матрице B больше, чем минимальный элемент в матрице A, и больше, чем минимальный элемент в матрице C, то выполняется процедура obmen для матрицы B.
- Вывод матрицы B.
- Если минимальный элемент в матрице C больше, чем минимальный элемент в матрице A, и больше, чем минимальный элемент в матрице B, то выполняется процедура obmen для матрицы C.
- Вывод матрицы C.
- Все процедуры выполнены, и если условие не выполнено, то программа завершается.
- Цикл по пунктам 11-16 выполняется до тех пор, пока условие не будет выполнено.
- Выполняется процедура por для матрицы, у которой найдено минимальное значение.
- Вывод матрицы, для которой была выполнена процедура por.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д