В матрице среди элементов лежащих ниже главной диагонали найти первый минимальный элемент - Pascal ABC
Формулировка задачи:
В квадратной матрице N*N среди элементов лежащих НИЖЕ главной диагонали найти первый минимальный элемент.Определить его номер строки.Поменять местами строку,в которой найден этот элемент со строкой с заданным номером К
Решение задачи: «В матрице среди элементов лежащих ниже главной диагонали найти первый минимальный элемент»
textual
Листинг программы
const nmax=20; var a:array[1..nmax,1..nmax] of integer; n,i,j,mn,imn,k,x:integer; begin randomize; repeat write('Размер матрицы от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; 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; mn:=a[2,1]; imn:=2; for i:=2 to n do for j:=1 to i-1 do if a[i,j]<mn then begin mn:=a[i,j]; imn:=i; end; writeln('Первый минимальный элемент=',mn,' в строке ',imn); repeat write('Введите номер строки для обмена от 1 до ',n,' <>',imn,' k='); readln(k); until(k in [1..n])and(k<>imn); for j:=1 to n do begin x:=a[imn,j]; a[imn,j]:=a[k,j]; a[k,j]:=x; end; writeln('Обмен строк ',imn,' и ',k); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; end.
Объяснение кода листинга программы
- Создается константа nmax, которая определяет максимальное значение индекса в матрице.
- Создается переменная a, которая представляет собой матрицу размером от 2 до nmax на 1 до nmax.
- Задаются переменные n, i, j, mn, imn и k, которые будут использоваться в цикле.
- Запускается цикл повторения, в котором пользователю предлагается ввести размер матрицы от 2 до nmax.
- Внутри цикла создается строка исходной матрицы.
- Запускается вложенный цикл, в котором обновляется значение переменной mn и переменной imn. Если текущий элемент a[i,j] меньше mn, то mn обновляется на текущий элемент, а imn обновляется на i.
- После завершения вложенного цикла выводится сообщение с первым минимальным элементом и его строкой.
- Запускается еще один цикл повторения, в котором пользователю предлагается ввести номер строки для обмена от 1 до n.
- Внутри цикла обновляется временная переменная x, которая будет использоваться при обмене строк.
- Запускается еще один вложенный цикл, в котором происходит обмен строк.
- После завершения вложенного цикла выводится сообщение об обмене строк.
- Выводится окончательный результат - матрица после обмена строк.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д