В матрице элементы строк разместить в следующем порядке: сначала все отрицательные,затем все положительные,в той последовательности в которой они располагаются в исходной матрице — Pascal(Паскаль)

uses crt;
const n=6; {количество строк}
m=8; {количество столбцов}
var a:array[1..n,1..m] of real;{тип матрицы}
i,j,k,l:byte;
x:real;{переменная буфер при перестановке обменом}
begin
clrscr;
randomize;
Writeln('Ishodnaya matrica:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=10*random-4;
write(a[i,j]:5:1);
end;
writeln;
end;
for i:=1 to n do {идем по строкам вниз}
begin
k:=0; {пока отрицательных нет}
for j:=1 to m do {идем по строке}
if a[i,j]<0 then {находим отрицательный}
begin
inc(k); {считаем его}
x:=a[i,j]; {запоминаем значение}
for l:=j downto k+1 do {от этого элемента до элемента с порядковым номером к+1}
a[i,l]:=a[i,l-1]; {сдвигаем все элементы на 1 вправо, отрицательный исчезает}
a[i,k]:=x;{а на освободившееся место в позиции к вставляем этот элемент}
end;
end;
writeln('Rezultat:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:5:1);
writeln;
end;
readln
end.uses crt;
const n=6; {количество строк}
m=8; {количество столбцов}
var a:array[1..n,1..m] of real;{тип матрицы}
i,j,k,l:byte;
x:real;{переменная буфер при перестановке обменом}
begin
clrscr;
randomize;
Writeln('Ishodnaya matrica:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=10*random-4;
write(a[i,j]:5:1);
end;
writeln;
end;
for i:=1 to n do {идем по строкам вниз}
begin
k:=0; {пока отрицательных нет}
for j:=1 to m do {идем по строке}
if a[i,j]<0 then {находим отрицательный}
begin
inc(k); {считаем его}
x:=a[i,j]; {запоминаем значение}
for l:=j downto k+1 do {от этого элемента до элемента с порядковым номером к+1}
a[i,l]:=a[i,l-1]; {сдвигаем все элементы на 1 вправо, отрицательный исчезает}
a[i,k]:=x;{а на освободившееся место в позиции к вставляем этот элемент}
end;
end;
writeln('Rezultat:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:5:1);
writeln;
end;
readln
end.

Leave a Comment

− 1 = 1