Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сортировка выбором двумерного массива

Автор: Onyx_007 14.02.2017 3:25

Дана матрица A[1..n,1..m] целых чисел. Напишите программу, которая переставит строки матрицы А таким образом, чтобы элементы последнего столбца стали упорядоченными в убывающем порядке. Для упорядочивания использовать метод сортировки посредством выбора и не использовать дополнительную матрицу. Измененную матрицу вывести на экран.

Автор: Федосеев Павел 14.02.2017 5:01

program test;

const
n = 5;
m = 4;
type
TMatrix = array[1..n, 1..m] of integer;

procedure ShowMatrix(const A: TMatrix; n, m: integer);
var
i, j: integer;
begin
for i := 1 to n do
begin
for j := 1 to m do
Write(A[i, j]: 4);
writeln;
end;
end;

procedure Sort(var A: TMatrix; n, m: integer);
var
i, j, k, min: integer;
temp: integer;
begin
for i := 1 to n do
begin
min := i;
for j := i + 1 to n do
if A[i, m] < A[j, m] then
min := j;
for k := 1 to m do
begin
temp := A[i, k];
A[i, k] := A[min, k];
A[min, k] := temp;
end;
end;
end;

var
i, j: integer;
A: TMatrix;
begin
randomize;
for i := 1 to n do
for j := 1 to m do
A[i, j] := random(100);
ShowMatrix(A, n, m);
writeln;
Sort(A, n, m);
ShowMatrix(A, n, m);
end.

Автор: Onyx_007 14.02.2017 19:42

Огромное спасибо )