[C++] punti isolati

di il
1 risposte

[C++] punti isolati

Ragazzi mi potreste dare una mano in questo esercizio, la traccia è questa:
Si realizzi un programma che, mediante opportuni sottoprogrammi, legga da tastiera una matrice di
soli 0 e 1 di dimensioni scelte dall'utente, che rappresenta una immagine bitmap monocromatica. Il
programma determini se l'immagine contiene o meno punti isolati, ovvero esiste almeno un uno che
non risulti adiacente ad almeno un altro uno, o se non contiene alcuna immagine, oppure se
rappresenta un rettangolo completamente vuoto o pieno, lo comunichi all'utente e stampi la matrice
che rappresenta l'immagine.
Sono riuscito a fare tutto, ma per i punti isolati non riesco a farlo andare, mi sapreste dire dove sbaglio?? ciao e grazie in anticipo.

PS noterete che nn ci sn puntatori in questo esercizio, il motivo è che nn li posso usare xD devo svolgere questo esercizio senza puntatori
#include <cstdlib>
#include <iostream>

using namespace std;
void matrice(bool m[][100], int r, int c);
void video(bool m[][100], int r, int c);
void intacco(bool m[][100], int r, int c);
void puntoisolato(bool m[][100], int r, int c);

int main(int argc, char *argv[])
{
bool m[100][100];
int r,c;
cout<<"R= ";
cin>>r;
cout<<"C= ";
cin>>c;
matrice(m,r,c);
video(m,r,c);
intacco(m,r,c);
puntoisolato(m,r,c);
    system("PAUSE");
    return EXIT_SUCCESS;
}
void matrice(bool m[][100], int r, int c)
{
 int i,j;
 for(i=0; i<r; i++)
 {
   for(j=0; j<c; j++)
     { 
        cout<<"Inserire l'elemento ["<<i<<"]["<<j<<"]= ";
        cin>>m[i][j];
     }
 }
}
void video(bool m[][100], int r, int c)
{
 int i,j;
 for(i=0; i<r; i++)
 {
   for(j=0; j<c; j++)
     { 
        cout<<m[i][j]<<" ";
     }
 cout<<endl;
 }
}
void intacco(bool m[][100], int r, int c)
{
 int i,j,somma=0;
 for(i=0; i<r; i++)
 {
   for(j=0; j<c; j++)
     { 
     somma+=m[i][j];
 }
}
if(somma==0)
        {
        cout<<"Rettangolo completamente vuoto"<<endl;
        }
        int d=r*c;
if(somma==d)
{
        cout<<"Rettangolo completamente pieno"<<endl;
}
}
void puntoisolato(bool m[][100], int r, int c)
{
 int i,j;

       if(m[i][j-1]!=m[i][j])
        {
        cout<<"Esistono punti isolati"<<endl;

        }
}

1 Risposte

  • Re: [C++] punti isolati

    Un punto isolato è quello che se parti da i-1, j-1 e arrivi a i+1,j+1 non devi trovare mai un 1.
Devi accedere o registrarti per scrivere nel forum
1 risposte