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'а заморочек побольше, у меня попробще для пониманию новичку, хотя, может быть, я и не прав.