Показать сообщение отдельно

  #10  
Старый 10.12.2009, 20:38
Thenno
Участник форума
Регистрация: 03.07.2009
Сообщений: 151
С нами: 8871700

Репутация: 41
По умолчанию

Ех, опоздал, но все же выложу и свой вариант.
Код:
const n=5;

type
  matrix=array[1..n, 1..n] of integer;

procedure readmatrix (var mas:matrix);
  var
    i,j:integer;
  begin
    for i:=1 to n do
      for j:=1 to n do
        readln (mas[i,j]);
  end;

function provmatrix (var mas:matrix):boolean;
  var
    i,j:integer;
    k:integer;
  begin
    provmatrix:=false;
    for i:=1 to n do
      begin
        for j:=1 to n do
          begin
            if mas [i,j] = 0 then
              k:=k+1;
            if k>1 then
              exit;
          end;
        k:=0;
      end;
    provmatrix:=true;
  end;

procedure sortmatrix (var mas:matrix);
  var
    i,j:integer;
    index:integer;
    mas2:matrix;
  begin
    for i:=1 to n do
      for j:=1 to n do
        begin
          if mas[j,i]=0 then
            begin
              for index:=1 to n do
                mas2[i,index]:=mas[j,index];
            end;
        end;
    mas:=mas2;
  end;
  
procedure writematrix (mas:matrix);
  var
    i,j:integer;
  begin
    writeln;
    for i:=1 to n do
      begin
        for j:=1 to n do
          write (mas[i,j], ' ');
        writeln;
      end;

  end;

var
  m:matrix;
begin
  readmatrix (m);
  if provmatrix (m) = true then
    begin
      sortmatrix (m);
      writematrix (m);
    end;
  readln;
end.
Вроде у StealthMaster'а заморочек побольше, у меня попробще для пониманию новичку, хотя, может быть, я и не прав.
 
Ответить с цитированием