Найти максимальный элемент матрицы среди стоящих на диагоналях и поменять с элементом, стоящим на пересечении диагоналей - Pascal
Формулировка задачи:
Дана матрица А(n m). n - нечетное , все элементы различные. Найти максимальный элемент среди стоящих на обеих диагоналях и поменять его местами с элементом , стоящим на пересечении этих диагоналей.
Решение задачи: «Найти максимальный элемент матрицы среди стоящих на диагоналях и поменять с элементом, стоящим на пересечении диагоналей»
textual
Листинг программы
uses crt; const nmax=15; var a:array[1..nmax,1..nmax] of integer; n,i,j,mx,imx,jmx,x:integer; begin clrscr; randomize; repeat write('Размер матрицы, нечетное число от 3 до ',nmax,' n='); readln(n); until(n in [3..nmax])and odd(n); writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(50); write(a[i,j]:3); end; writeln; end; mx:=a[1,1]; imx:=1; jmx:=1; for i:=1 to n do begin if a[i,i]>mx then begin mx:=a[i,i]; imx:=i; jmx:=i; end; if a[i,n-i+1]>mx then begin mx:=a[i,n-i+1]; imx:=i; jmx:=n-i+1; end; end; writeln('Максимальный элемент на диагоналях a[',imx,',',jmx,']=',mx); if(imx=jmx)then writeln('Максимальный элемент на пересечении диагоналей') else begin writeln('Обмен максимального с элементом на пересечении диагоналей:'); x:=a[imx,jmx]; a[imx,jmx]:=a[n div 2+1,n div 2+1]; a[n div 2+1,n div 2+1]:=x; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln end end; readln end.
Объяснение кода листинга программы
- Объявлены переменные: n, i, j, mx, imx, jmx, x (тип: integer) a (тип: array[1..nmax,1..nmax] of integer)
- В цикле повторяется выполнение программы с различными размерами матрицы (от 3 до nmax) до тех пор, пока размер матрицы будет нечетным числом от 3 до nmax.
- Выводится сообщение об исходной матрице (15 строк по n).
- В каждой строке выводятся значения элементов матрицы (по 3 цифры каждого элемента через пробел).
- Определяются начальные значения для переменных mx, imx, jmx.
- Циклом проходится каждый элемент матрицы (по строкам).
- Если текущий элемент больше значения mx, то обновляются значения mx, imx, jmx.
- Если текущий элемент больше значения mx, но находится не на главной диагонали, то выполняется обмен с элементом на пересечении диагоналей.
- Выводится сообщение о максимальном элементе на диагоналях матрицы.
- Если imx=jmx, то выводится сообщение о максимальном элементе на пересечении диагоналей.
- Если imx≠jmx, то выполняется обмен максимального элемента с элементом на пересечении диагоналей.
- Выводится сообщение о новой матрице (15 строк по n).
- Циклом проходится каждая строка новой матрицы (по элементам).
- В каждой строке выводятся значения элементов новой матрицы (по 3 цифры каждого элемента через пробел).
- Циклом проходится каждая строка новой матрицы (по элементам).
- Завершается выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д