
Originariamente inviata da
Alex'87
Beh... Intanto ti consiglio di seguire le convenzioni Java per la nomenclatura e indentazione, in modo da rendere più leggibile il tuo codice.
Poi ti suggerisco di leggere gli errori segnalati dal compilatore, che in genere sono abbastanza chiari.
Ad esempio, "The method filtroMedia(int[][]) is undefined for the type mediamatrice" ti dice che il metodo "filtroMedia(int[][])" non esiste: basta controllare un attimo per vedere che il tuo metodo si chiama filtromedia(int[][]).
Poi... all'interno di media usi i e j ma non sono dichiarati da nessuna parte...
Sull'algoritmo in sè non mi esprimo, non ho tempo di guardarmelo tutto ^^
Praticamente il problema era che java mi dava errore perché ho copiato una parte di testo da un PDF e dunque mi dava errore perché c'erano dei caratteri diversi nascosti. Ho risolto riscrivendo la parte copiata e con i tuoi aggiustamenti ed infatti è giusto. mi sembrava molto strano!!
codice:
public class ciao{ public static void main(String args[]){
int[][]M={{100,100,48,48},
{215,100,56,56},
{100,48,215,56},
{215,215,56,56}};
int[][]N={{100,48},
{215,215}};
int[][] Media= filtroMedia(M);
for(int i = 0; i < Media[0].length; i++){
for(int j = 0; j < Media.length; j++)
System.out.print(Media[i][j]+" ");
System.out.println();
}
}
public static int[][] filtroMedia(int[][]M){
int[][]Mmedia=new int[M.length][M[0].length];
for(int i=0;i<M.length;i++)
for(int j=0;j<M[0].length;j++)
Mmedia[i][j]=media(i,j,M);
return Mmedia;
}
public static int media(int rig,int col,int[][]M){
int cont=0; int i=rig; int j=col;
if(rig==0 && col==0){
cont=M[0][0]+M[0][1]+M[1][0];
return cont/3;
}
if(rig==3 && col==3){
cont=M[2][2]+M[3][2]+M[2][3];
return cont/3;
}
if(rig==0 &&col==3){
cont=M[0][2]+M[1][2]+M[1][3];
return cont/3;
}
if(rig==3 &&col==0){
cont=M[2][0]+M[2][1]+M[3][1];
return cont/3;
}
if(rig==0 &&col!=0 &&col!=3){
cont=M[0][j-1]+M[1][j-1]+M[1][j]+M[1][j+1]+M[0][j+1];
return cont/5;
}
if(rig==3 &&col!=0 &&col!=3){
cont=M[3][j-1]+M[2][j-1]+M[2][j]+M[2][j+1]+M[3][j+1];
return cont/5;
}
if(col==0 &&rig!=0 &&rig!=3){
cont=M[i-1][0]+M[i-1][1]+M[i][1]+M[i+1][1]+M[i+1][0];
return cont/5;
}
if(col==3 &&rig!=0 &&rig!=3){
cont=M[i-1][3]+M[i-1][2]+M[i][2]+M[i+1][2]+M[i+1][3];
return cont/5;
}
if(rig!=0 && rig!=3 && col!=0 && col!=3){
cont=M[i-1][j-1]+M[i-1][j]+M[i-1][j+1]+M[i][j-1]+M[i][j+1]+M[i+1][j-1]+M[i+1][j]+M[i+1][j+1];
return cont/8;
}
return -1;
}
}