Page 43 - MATINF Nr. 9-10
P. 43

Algoritmul fill s , i aplicat , ii                                                              43




             void cit (){
            int i,j;
            fin >>m>>n;
            for(i=1;i<=m;i++)
                       for(j=1;j<=n;j++)
                                 fin >>a[i][j];
            }
             void fill(int i, int j){
            int k,n,in ,jn;
            a[i][j] = 0;
            for(k=0;k<8; k++){ // deplasarea in cele 8 directii
                       in = i + dl[k];
                       jn = j + dc[k];
                       if(in >=1 && in <=m && jn >=1 && jn <=n && a[in][jn] == 1)
                                 fill(in ,jn);
            }
            }

             void afis (){
            int i,j;
            for(i=1;i<=m;i++){
                       for(j=1;j<=n;j++)
                                 fout <<a[i][j]<<" ";
                       fout <<endl;
            }
            }
            int main (){
            cit ();
            // determinam x0 , y0
            int i,j;
            for(i=1;i<=m;i++)
                       for(j=1;j<=n;j++)
                                 if(a[i][j]==1){
                                           x0 = i; i=m+1;
                                           y0 = j; j=n+1;
                                 }
             fill(x0 ,y0); // stergem obiectul
             afis ();
             return 0;
            }



            4    Determinarea num˘arului de obiecte dintr-o fotografie



            Se d˘a o fotografie alb negru codificat˘a printr-un tablou bidimensional cu m linii, n coloane s , i
            elemente 0, 1 (0 – pixel alb, 1 – pixel negru). Fotografia cont , ine obiecte ca ˆın problema din
            Sect , iunea 3. Determinat , i num˘arul de obiecte cont , inute de fotografie. Dimensiunile tabloului
            bidimensional s , i elementele lui se dau ˆın fis , ierul foto2.in. Num˘arul de obiecte se va scrie ˆın
            fis , ierul foto2.out.

                Exemplu
                foto2.in

              6 8
              1 0 0 0 0 1 1 0
              0 0 0 0 0 1 1 0
              1 0 0 0 0 0 0 1
   38   39   40   41   42   43   44   45   46   47   48