Построить новую матрицу, которая не содержит строку с минимальным элементом - Pascal
Формулировка задачи:
Написать программу поиска номера строки и столбца максимального и минимального
элемента заданной матрицы. Построить новую матрицу, которая не содержит строку с
минимальным элементом и столбец с максимальным элементом исходной матрицы.
Решение задачи: «Построить новую матрицу, которая не содержит строку с минимальным элементом»
textual
Листинг программы
type TMass = Array Of Array Of ShortInt; procedure PrintMass(const ar : TMass); var i, j : Byte; begin for i := 0 to Length(ar) - 1 do begin for j := 0 to Length(ar[i]) - 1 do Write(ar[i, j]:4); WriteLn; end; WriteLn; end; function GenMass(const ar : TMass; const x, y : Byte) : TMass; var i, j, k, l : Byte; Result : TMass; begin k := 0; SetLength(Result, Length(ar) - 1, Length(ar[0]) - 1); for i := 0 to Length(ar) - 1 do begin if (i <> x) then begin l := 0; for j := 0 to Length(ar[i]) - 1 do if (j <> y) then begin Result[k, l] := ar[i, j]; Inc(l); end; Inc(k); end; end; GenMass := Result; end; procedure FindID(const ar : TMass; var x, y : Byte; const state : Boolean); var i, j : Byte; temp : ShortInt; begin x := 0; y := 0; temp := ar[0, 0]; temp := ar[0, 0]; for i := 0 to Length(ar) - 1 do for j := 0 to Length(ar[i]) - 1 do if ((state And (ar[i, j] < temp)) Or (Not state And (ar[i, j] > temp))) then begin x := i; y := j; temp := ar[i, j]; end; end; procedure InitMass(var ar : TMass); var i, j, n, m : Byte; begin repeat Write('Input n: '); ReadLn(n); until (n > 0); repeat Write('Input m: '); ReadLn(m); until (m > 0); SetLength(ar, n, m); for i := 0 to n - 1 do for j := 0 to m - 1 do ar[i, j] := Random(199) - 99; PrintMass(ar); end; var arr, arr2 : TMass; x1, x2, y1, y2 : Byte; begin Randomize; InitMass(arr); FindID(arr, x1, y1, true); FindID(arr, x2, y2, false); arr2 := GenMass(arr, x1, y2); PrintMass(arr2); end.
Объяснение кода листинга программы
В этом коде используется язык программирования Pascal. Вот список описаний переменных и процедур в коде:
- TMass - это тип, который представляет собой массив массивов целых чисел короткого типа.
- arr, arr2 - это переменные типа TMass, которые используются для хранения и манипулирования матрицами.
- x1, x2, y1, y2 - это переменные типа Byte, которые используются для поиска строк с минимальным элементом в матрице.
- state - это логическое значение, используемое в процедуре FindID для определения критериев поиска.
- n, m - это переменные типа Byte, которые используются для ввода размеров матрицы в процедуре InitMass.
- i, j, k, l - это переменные типа Byte, которые используются в качестве счетчиков в различных циклах в процедурах GenMass и FindID.
- temp - это временная переменная типа ShortInt, которая используется для сравнения элементов матрицы в процедуре FindID.
- Random(199) - это функция, которая генерирует случайное число в диапазоне от 0 до 198 и используется для инициализации элементов матрицы в процедуре InitMass. Вот краткое описание каждой процедуры:
- PrintMass - процедура для печати содержимого матрицы arr.
- GenMass - функция для создания новой матрицы, исключая строку с минимальным элементом.
- FindID - процедура для поиска строк с минимальным элементом в матрице.
- InitMass - процедура для инициализации матрицы и ввода ее размеров. В основной части программы сначала инициализируется матрица arr, затем находятся строки с минимальным элементом в матрице arr, и, наконец, создается новая матрица arr2, которая не содержит строку с минимальным элементом, и выводится на экран.