Помогите с паскалем
"Дана матрица размера М х Н.Упорядочить её строки так,чтобы их минимальные элементы образовывали убывающую последовательность.
Для отладки программы исходный массив сформировать с помощью генератора случайных чисел"
Не могу понять как премещать строки в матрице и следовательно как их упорядочить по минимальному элементу...
Помогите пожалуйста
перемещение строк в матрице.Паскаль
Допустим, нужно поменять местами строки X и Y.
Тогда создаем переменную, представляющую собой одномерный массив, по размеру равный размеру строки исходного массива. Дальше копируем поэлементно строку X в переменную, затем - строку Y в строку X, затем переменную в строку Y. При этом можно применить стандартный алгоритм сортировки обменом.
Тогда создаем переменную, представляющую собой одномерный массив, по размеру равный размеру строки исходного массива. Дальше копируем поэлементно строку X в переменную, затем - строку Y в строку X, затем переменную в строку Y. При этом можно применить стандартный алгоритм сортировки обменом.
Ни что так не ограничивает фантазию программиста, как компилятор...
О,точно...Спасибо огромное =)
"При этом можно применить стандартный алгоритм сортировки обменом." - вот эту фразу не понял...Ибо не знаю что это за алгоритм
А ещё вопрос,мне минимальный элемент строки сравнивать с минимальными элемнтами всех строк или только с мин. элементом предыдущей строки???
Наверно со всеми??
"При этом можно применить стандартный алгоритм сортировки обменом." - вот эту фразу не понял...Ибо не знаю что это за алгоритм
А ещё вопрос,мне минимальный элемент строки сравнивать с минимальными элемнтами всех строк или только с мин. элементом предыдущей строки???
Наверно со всеми??
Вообще вот процедура сортировки, думаю разберетесь, что к чему:
[syntax='Delphi']
procedure Sort;
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=A[j-1];
if K>A[j] then
begin
A[j-1]:=A[j];
A[j]:=k;
end;
end;
end;
[/syntax]
[syntax='Delphi']
procedure Sort;
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=A[j-1];
if K>A[j] then
begin
A[j-1]:=A[j];
A[j]:=k;
end;
end;
end;
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Вроде бы разобрался...
Спасибо большое за помощь =)
Спасибо большое за помощь =)
begin {формирование одномерного массива из минимальных элементов}
for i:=1 to m do
begin
min:=a[i,1];
begin
for j:=1 to n do
begin
if a[i,j]<=min then min:=a[i,j];
b:=min;
end;
end;
end;
end;
begin {перестановка строк согласно одномерному массиву}
for i:=m downto 1 do
for k:=2 to i do
begin
if b[k]>b[k-1] then
begin
for j:=1 to n do
begin
c[k]:=a[k,j];
a[k,j]:=a[k-1,j];
a[k-1,j]:=c[k];
end;
end;
end;
одномерный массив вроде правильно формирует,а вот перестановка строк работает неправильно...Почему не пойму
вот начало и конец проги,если вдруг понадобится
program z10;
uses crt;
const m=8;
n=9;
var a: array [1..m,1..n] of real;
i,k,j:integer;
min:real;
b: array [1..m] of real;
c: array [1..n] of real;
begin randomize;
clrscr;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(10)+1;
write(' ',a[i,j]:3:0);
end;
writeln;
end;
begin
writeln;
end;
............................................
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
write(' ',a[i,j]:3:0);
end;
writeln;
end;
end;
end;
readkey;
end.