var
i, n, j: integer;
y: array[1..100] of word;
begin
writeln('введите размер матрицы:');
readln(n);
for i:=1 to n do
begin
write('y[',i']=');
readln(y);
end;
writeln('массив y');
for i := 1 to n do write (y , ' ');
writeln;
for j:=1 to n-1 do
for i:=1 to n-j do
if y > y[i+1] then
begin
b:=y;
y:=y[i+1];
y[i+1]:=b;
end;
writeln('упорядоченная матрица');
for i:=1 to n do
write(y. ' ');
writeln;
end.
Упорядочить элементы матриц(Pascal)
Поделитесь исходником (на Паскале), заранее спасибо!
Не надо убирать мои замечания.Я уберу сам,когда посчитаю нужным[COLOR="Red"]Нарушение -5 баллов за некорректное поведение.[/COLOR]
Как я понимаю матрица - это двумерный массив, и циклов должно быть два, как мне сделать в моём примере ещё один вложенный цикл?
Код:
type
massive1 = array [0..n, 0..m] of integer;
var arr : massive1;
var z,y:integer;
Procedure Swap(var a, b: integer);
var q : integer;
begin
q:=a;
a:=b;
b:=q;
end;
procedure BubbleSort(var Mas: massive1, k : integer);
var i, j: index1;
begin
for i := (N-2) downto 0 do
for j := 0 to i do
if Mas[j,k] > Mas[j+1,k] then Swap(Mas[j,k], Mas[j+1,k]);
end;
Begin
for z:= 1 to m do
begin
BubbleSort(Arr, z);
end;
Writeln('упорядоченная матрица');
for z := 1 to n do
begin
for y := 1 to m do
begin
Write(arr[z,y]);
end;
Writeln;
end;
end.
massive1 = array [0..n, 0..m] of integer;
var arr : massive1;
var z,y:integer;
Procedure Swap(var a, b: integer);
var q : integer;
begin
q:=a;
a:=b;
b:=q;
end;
procedure BubbleSort(var Mas: massive1, k : integer);
var i, j: index1;
begin
for i := (N-2) downto 0 do
for j := 0 to i do
if Mas[j,k] > Mas[j+1,k] then Swap(Mas[j,k], Mas[j+1,k]);
end;
Begin
for z:= 1 to m do
begin
BubbleSort(Arr, z);
end;
Writeln('упорядоченная матрица');
for z := 1 to n do
begin
for y := 1 to m do
begin
Write(arr[z,y]);
end;
Writeln;
end;
end.
Вроде так. Если есть баг, исправьте внизу
Цитата: user32.dll
Вроде так. Если есть баг, исправьте внизу
твой код вообще не работает.
Код:
uses crt;
const
n=4;
m=4;
var
matrix:array[1..n,1..m]of integer;
i,j,k,swap:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to m do
matrix[i,j]:=random(11)-5;
for i:=1 to n do
begin
for j:=1 to m do
write(' ',matrix[i,j]);
writeln;
end;
for i:=1 to n do
begin
for j:=1 to m-1 do
for k:=1 to m-j do
if matrix[i,k] < matrix[i,k+1] then
begin
swap:=matrix[i,k];
matrix[i,k]:=matrix[i,k+1];
matrix[i,k+1]:=swap;
end;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
write(' ',matrix[i,j]);
writeln;
end;
readln;
end.
const
n=4;
m=4;
var
matrix:array[1..n,1..m]of integer;
i,j,k,swap:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to m do
matrix[i,j]:=random(11)-5;
for i:=1 to n do
begin
for j:=1 to m do
write(' ',matrix[i,j]);
writeln;
end;
for i:=1 to n do
begin
for j:=1 to m-1 do
for k:=1 to m-j do
if matrix[i,k] < matrix[i,k+1] then
begin
swap:=matrix[i,k];
matrix[i,k]:=matrix[i,k+1];
matrix[i,k+1]:=swap;
end;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
write(' ',matrix[i,j]);
writeln;
end;
readln;
end.