Const m=4; n=15; var i,j,j0: integer; a:array[1..m,1..n] of integer; jExit,iExit:Boolean; begin Randomize; for i:=1 to m do begin writeln; for j:=1 to n do begin a[i,j]:=random(2); write(a[i,j]:2) end end; writeln; j:=0; jExit:=false; repeat j:=j+1; i:=1; iExit:=false; if a[i,j]=0 then begin repeat i:=i+1; if a[i,j]<>0 then iExit:=true until iExit or (i=m); if i=m then jExit:=true end until jExit or (j=n); if a[i,j]=0 then writeln('Нулевой столбец ',j) else writeln('Нет нулевых столбцов'); end.
16/2=8 (Остаток 0)
8/2=4 (Ос. 0)
4/2=2 (ост 0)
2/2=1(ост. 0)
32(10)=100000(2)
53/2=26(остаток 1)
26/2=13(остаток 0)
13/2=6(осаток 1)
6/2=3(Остаток 0)
3/2=1(остаток)1
53(10)=110101(2)
80/2=40(остаток 0)
40/2=20(остаток 0)
20/2=10(остаток 0)
10/2=5(остаток 0)
5/2=2(остаток 1)
2/2=1 (остаток 0)
80(10)=1010000(2)
96/2=48(остаток 0)
48/2=24(остаток 0)
24/2=12(остаток 0)
12/2=6(остаток 0)
6/2=3(остаток 0)
3/2=1(остаток 1)
96(10)=1100000
128/2=64(остаток 0)
64/2=32(остаток 0)
32/2=16(остаток 0)
16/2=8(Остаток 0)
8/2=4(остаток 0)
4/2=2(остаток 0)
2/2=1(остаток 0)
128(10)=10000000(2)
var
i,j,j0: integer;
a:array[1..m,1..n] of integer;
jExit,iExit:Boolean;
begin
Randomize;
for i:=1 to m do begin
writeln;
for j:=1 to n do begin
a[i,j]:=random(2);
write(a[i,j]:2)
end
end;
writeln;
j:=0; jExit:=false;
repeat
j:=j+1; i:=1; iExit:=false;
if a[i,j]=0 then begin
repeat
i:=i+1;
if a[i,j]<>0 then iExit:=true
until iExit or (i=m);
if i=m then jExit:=true
end
until jExit or (j=n);
if a[i,j]=0 then writeln('Нулевой столбец ',j)
else writeln('Нет нулевых столбцов');
end.
Тестовый пример:
0 1 1 1 1 0 1 0 1 0 0 0 0 0 1
0 0 1 0 1 0 0 0 1 1 0 0 0 0 0
1 1 0 0 0 1 0 1 1 1 1 1 0 1 1
1 1 1 0 1 0 1 0 0 1 0 1 0 1 0
Нулевой столбец 13