c0problema "fotografiei""determina numarul de obiecte dintr-o fot
ografie.Obiectele din fotografie sunt codificate cu 1,iar celelalte sunt 0.Porni nd de la prima unitate determinata se cauta unitati adiacente pe cele 8 directii ,care sunt puse pe 0 eliminandu-se astfel obiectul identificat*/ #include <stdio.h> #include <conio.h> #define N 10 #define M 15 int F[N][M]={{0,0,0,0,0,0,0}, {0,1,0,1,0,1,0}, {0,0,0,0,0,0,0}, {0,1,0,0,1,0,0}, {0,0,1,0,0,1,0}, {0,0,1,1,0,1,0}, {0,0,0,0,0,0,0},}; int i,j,n=5,m=5; void obiect(int i,int j, int F[N][M]){ if(F[i][j]==1){ F[i][j]=0; obiect(i-1,j,F); obiect(i-1,j+1,F); obiect(i,j+1,F); obiect(i+1,j+1,F); obiect(i+1,j,F); obiect(i+1,j-1,F); obiect(i-1,j,F); obiect(i,j-1,F); obiect(i-1,j-1,F); } } void main(void){ int il,ic,nr_ob=0; clrscr(); for(ic=1;ic<=m;ic++){ F[0][ic]=0; F[n+1][ic]=0;} for(il=1;il<=m;il++){ F[il][0]=0; F[il][m+1]=0;} for(il=1;il<n;il++){ printf("\t"); for(ic=1;ic<m+2;ic++) printf("%2d",L[il][ic]); printf("\n\n"); } printf("\nCoordonate obiecte(stanga-sus):\n"); do{ il=0; do{il++; ic=0; do ic++; while(ic<m+1&&F[il][ic]==0);} while(il<n+1&&F[il][ic]==0); if(F[il][ic]&&ic<<m+1&&il<n+1){ printf("\n\tObiect %d:(%d,%d)\n", nr_ob+1, il, ic); obiect(il,ic,F); nr_ob++; } }while(il<n+1||ic<m+1); printf("\n\tNumar obiecte %i\n", nr_ob); getch();}