В двумерном массиве вставить перед всеми столбцами, в которых нет отрицательных элементов, второй столбец — Pascal(Паскаль)

uses
  Crt;
const
  N = 4;
  M = 4;
var
  a: array [1..N, 1..2*M] of integer;
  i,j,k,Mmax,cR: integer;
  fl: boolean;
begin
  ClrScr;
  Mmax := M;
  cR := 2;
  WriteLn('Matrix A:');
  for i := 1 to N do
  begin
    for j := 1 to M do
    begin
      a[i, j] := Random(8) - 4;
      Write(a[i, j]:2, ' ');
    end;
    WriteLn;
  end;
  j := M;
  while j > 0 do
  begin
    fl := true;
    for i := 1 to N do
      if a[i, j] < 0 then
      begin
        fl := false;
        break;
      end;
    if fl then
    begin
      Inc(Mmax);
      for i := 1 to N do
        for k := Mmax downto j + 1 do
          a[i, k] := a[i, k - 1];
      if j < 2 then
        Inc(cR);
      if j <> 2 then
        for i := 1 to N do
          a[i, j] := a[i, cR];
    end;
    Dec(j);
  end;
  WriteLn('Result:');
  for i := 1 to N do
  begin
    for j := 1 to Mmax do
      Write(a[i,j]:2, ' ');
    WriteLn;
  end;
end.

Leave a Comment

80 − = 77