Ведь пустяковая задача. Вы бы хоть показали свои попытки.. .
Ищем последний столбец, содержащий только положительные элементы
LastJ := 1;
for j:=M downto 2 do begin {цикл от последнего до второго столбца (первый найденный будет искомым) }
Found := True; {предположим это "наш" столбец}
for i:=1 to N do
if A[i,j] <= 0 then Found := False; {в столбце имеется отрицательный или нулевой элемент}
if Found then begin LastJ := j; Break; end; {столбец нашелся, дальше не ищем}
end;
А теперь будем менять столбцы местами используя буферную переменную.
for i:=1 to N do begin
Buf := A[i,1];
A[i,1] := A[i, LastJ];
A[i,LastJ] := Buf;
end;
Описание переменных и остальное оформление самостоятельно. Вывод матрицы, тоже.
Другие языки программирования и технологии
Помогите плизз....в долгу не останусь....Кто знает Паскаль!!??
за сколько сделать?
program P;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a: array[0..31,0..31] of integer;
j,l,m,n: integer;
b: boolean;
procedure entermatrix;
begin
write('ener m=');
readln(m);
write('ener n=');
readln(n);
for j := 0 to m - 1 do
for l := 0 to n - 1 do
begin
write('a[',j,',',l,']=');
readln(a[j,l]);
end;
end;
procedure showmatrix;
begin
for j := 0 to m - 1 do
begin
for l := 0 to n - 1 do
write(a[j,l],' ');
writeln;
end;
readln;
end;
procedure swap;
label me;
begin
for l := n-1 downto 0 do
begin
b:= true;
for j := 0 to m - 1 do
if a[j,l]<=0 then b:= false;
if b then
begin
for j := 0 to m - 1 do
begin
a[j,l]:=a[j,0] xor a[j,l];
a[j,0]:=a[j,0] xor a[j,l];
a[j,l]:=a[j,0] xor a[j,l];
end;
goto me;
end;
end;
me:
end;
begin
entermatrix;
swap;
showmatrix;
end.
работает.
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a: array[0..31,0..31] of integer;
j,l,m,n: integer;
b: boolean;
procedure entermatrix;
begin
write('ener m=');
readln(m);
write('ener n=');
readln(n);
for j := 0 to m - 1 do
for l := 0 to n - 1 do
begin
write('a[',j,',',l,']=');
readln(a[j,l]);
end;
end;
procedure showmatrix;
begin
for j := 0 to m - 1 do
begin
for l := 0 to n - 1 do
write(a[j,l],' ');
writeln;
end;
readln;
end;
procedure swap;
label me;
begin
for l := n-1 downto 0 do
begin
b:= true;
for j := 0 to m - 1 do
if a[j,l]<=0 then b:= false;
if b then
begin
for j := 0 to m - 1 do
begin
a[j,l]:=a[j,0] xor a[j,l];
a[j,0]:=a[j,0] xor a[j,l];
a[j,l]:=a[j,0] xor a[j,l];
end;
goto me;
end;
end;
me:
end;
begin
entermatrix;
swap;
showmatrix;
end.
работает.
Вывод из матрицы - это код который необходим для выхода из нее.
Похожие вопросы
- Взлом rar архива кто знает как можно его взломать??? В долгу не останусь!!!
- кто знает паскаль?
- Помогите кто знает Паскаль
- знающие паскаль, вопрос к вам
- кто знает Паскаль помогите написать програмку
- Помогите мне, дела в том что я знаю только паскаль, а тут мне дали си, в котором я ничего не понимаю
- Помогите пожалуйста (pascal). В долгу не останусь ;)
- Помогите срочняк!!! Забыл пароль от своего компа чё делать? Помогите плизз!!!
- Люди, можно ли поставить компьютер на таймер выключения,???Какие есть программы, или как, помогите плизз...
- Помогите плизз с C++