Другие языки программирования и технологии

Помогите плизз....в долгу не останусь....Кто знает Паскаль!!??

Ведь пустяковая задача. Вы бы хоть показали свои попытки.. .

Ищем последний столбец, содержащий только положительные элементы

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;

Описание переменных и остальное оформление самостоятельно. Вывод матрицы, тоже.
Игорь Шубин
Игорь Шубин
59 613
Лучший ответ
за сколько сделать?
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.

работает.
Вывод из матрицы - это код который необходим для выхода из нее.