Матрица A[n;m] состоит из нулей и единиц. Какова в ней длина самой длинной цепочки подряд стоящих нулевых элементов по горизонтали, вертикали и диагонали(главной и побочной) — Pascal(Паскаль)

program massiv;
uses crt;
var
i,j,m,n:byte;
k,x:integer;
a:array[1..100,1..100] of byte;
begin
clrscr;
randomize;
write('n=');readln(n);
write('m=');readln(m);
for i:=1 to n do
 for j:=1 to m do
  a[i,j]:=random(2);
writeln('Massiv');
for i:=1 to n do
 begin
  for j:=1 to m do
   write(a[i,j]:3);
  writeln;
 end;
 
x:=0;
 
{Po strokam}
for i:=1 to n do
 begin
  k:=0;
 for j:=1 to m do
  begin
   if a[i,j]=0 then k:=k+1;
   if (a[i,j]=1) or (j=m) then
   begin
    if k>x then x:=k;
    k:=0;
   end;
  end;
 end;
 writeln('Samaya dlinnaya cepochka podryad stoyashih 0 po goriz=',x);
 
{po stolbcam}
x:=0;
for j:=1 to m do
 begin
  k:=0;
 for i:=1 to n do
  begin
   if a[i,j]=0 then k:=k+1;
   if (a[i,j]=1) or (i=n) then
   begin
    if k>x then x:=k;
    k:=0;
   end;
  end;
 end;
writeln('Samaya dlinnaya cepochka podryad stoyashih 0 po vertikali=',x);
 
{po glavnoy diag}
k:=0;x:=0;
if n>m then n:=m;
for i:=1 to n do
 begin
 if a[i,i]=0 then k:=k+1;
 if (a[i,i]=1) or (i=n) then
  begin
   if k>x then x:=k;
   k:=0;
  end;
 end;
writeln('Samaya dlinnaya cepochka podryad stoyashih 0 po glavnoy diag=',x);
 
{Po pobochnoy}
k:=0;  x:=0;
if m<n then n:=m;
for i:=1 to n do
 begin
  if a[i,m-i+1]=0 then k:=k+1;
  if (a[i,m-i+1]=1) or (i=n) then
  begin
   if k>x then x:=k;
   k:=0;
  end;
 end;
writeln('Samaya dlinnaya cepochka podryad stoyashih 0 po pobochnoy diag=',x);
 
readln
end.

Leave a Comment

33 + = 39