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;
}
}