Прога частично напоминает морской бой. Задается поле, на нем можно расставлять острова (один квадрат –ик один остров). После расставления островов, прога должна сосчитать их кол-во.
Народ, подскажите алгоритм выполнения подсчета островов или блок схему процедуры подсчета островов.
Процедура подсчета островов:
..... Procedure Schet; Var n:integer; begin n:=mx*my; for wy:=1 to my do for wx:=1 to mx do if (Z[wx,wy]=1) and (Z[wx,wy+1]<>1) and (Z[wx+1,wy]<>1) and (Z[wx,wy-1]<>1) and (Z[wx-1,wy]<>1) then begin Inc(n); Z[wx,wy]:=n; end; for wy:=1 to my do for wx:=1 to mx do if (Z[wx,wy]=1) and (Z[wx,wy+1]<mx*my) and (Z[wx+1,wy]<mx*my) and (Z[wx,wy-1]<mx*my) and (Z[wx-1,wy]<mx*my) then begin Inc(n); Z[wx,wy]:=n; end else if(Z[wx,wy]=1) then begin if (Z[wx,wy+1]>mx*my) then Z[wx,wy]:=Z[wx,wy+1]; if (Z[wx+1,wy]>mx*my) then Z[wx,wy]:=Z[wx+1,wy]; if (Z[wx,wy-1]>mx*my) then Z[wx,wy]:=Z[wx,wy-1]; if (Z[wx-1,wy]>mx*my) then Z[wx,wy]:=Z[wx-1,wy]; end; write(n-mx*my); end; .....
Я как бы сделал блок схему, и алгоритм проги, но мне сказали после условия "Если поле заполнено", подробно расписать, как происходит подсчет островов.