1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Сортировка матрицы по целой части элементов строки
Необходимо отсортировать матрицу(пузырьком) по целой часть элеметов K-й строки(строку K задаём) К примеру, есть матрица:
(1,5) (7,4) (8,1)
(5,1) (8,3) (3,3)
(9,1) (1,1) (0,5)
(4,3) (5,4) (5,2)
Пусть мы задаём K=3 Выписываем целую часть элементов 3-й строки:[9,1,0].После сортировки[0,1,9].Тогда столбцы,должны поменяться аналогично.Столбец,содержащий 0,5 идёт первым,1 идёт вторым,9 идёт третьим!
Что-то не так у меня распечатывается:Сначала выводится матрица 3х4 а потом 4х3!В чём проблема?Вот текст программы:
const n_rows = 4; n_cols = 3;
var arr: array[1 .. n_rows, 1 .. n_cols] of real; i, j, k, ii: integer; T: real;
begin write('k = '); readln(k);
{ Matrix do sortirovki } writeln('Ishodnaya matrix:'); Randomize; for i:=1 to n_cols do for j:=1 to n_rows do arr[i,j]:=Random(50);
for i:=1 to n_cols do begin for j:=1 to n_rows do write(arr[i,j]:4); writeln; end;
{ Sortirovka } for i := 1 to n_cols do for j := n_cols downto i + 1 do if trunc(arr[k, j - 1]) > trunc(arr[k, j]) then for ii := 1 to n_rows do begin T := arr[ii, j - 1]; arr[ii, j - 1] := arr[ii, j]; arr[ii, j] := T end;
{ Matrix posle sortirovki } writeln; writeln('Otsortirovannaya matrix:'); begin
for ii:=1 to n_rows do begin for j:=1 to n_cols do write(arr[ii,j]:4); writeln; end; end; end.