Количество прямоугольников равно количеству их верхних левых углов. Т.к. прямоугольники не пересекаются и не прикасаются друг к другу, то слева и сверху от л.в. угла прямоугольника должны быть нули (или границы массива). Код, котрым это можно реализовать, следущий:
| Код | Const n=10 Const m=12 Private Sub main() Dim A(0 to n-1, 0 to m-1) As Byte Dim i as long, j as long Dim fi as boolean, fj as boolean Dim s as long ---------------------'здесь должен быть код, в котором матрицу заполняют s=0 For i=0 to n-1 For j=0 to m-1 If A(i,j)=1 then fi=(i=0) If not(fi) then fi=(A(i-1,j)=0) fj=(j=0) If not(fj) then fj=(A(i,j-1)=0) If fi and fj then s=s+1 end if Next j Next i MsgBox s End sub
| |