Salve a tutti.
Allora, essendo imminente l'esame orale di Informatica ho deciso di svolgere i metodi sulle matrici che credo di aver in parte sbagliato nel corso dell'esame. Allora, come al solito posterò l'esercizio e la mia (pseudo)soluzione.
1) realizzare un metodo verificaMatrice che riceve una matrice di interi M, un intero x ed un intero y e restituisce true se il rapporto tra la somma dei primi x elementi ed il prodotto degli ultimi x elementi di ciascuna riga è minore di y;
Soluzione:
[I]import corejava.*;
public class esercizio{
public static boolean verificaMatrice(int [][]M,int x, int y, int n, int m){
int somma=0;
int prodotto=0;
for (int i=0;i<x;i++){
somma+=M[i][0];
}
for (int i=M[0].length-x;i<M[0].length-1;i++){
prodotto*=M[i][m];
}
if (somma/prodotto<y)
return true;
return false;
}
public static void main (String args[]){
int n=Console.readInt("Inserisci il numero delle righe");
int m=Console.readInt("Inserisci il numero delle colonne");
int[][]M=new int[n][m];
for (int i=0;i<n;i++){
for (int j=0;j<m;j++)
M[j]=Console.readInt("Inserisci il valore della cella");
}
int x=Console.readInt("Inserisci il valore di x");
int y=Console.readInt("Inserisci il valore di y");
System.out.println(verificaMatrice(M,x,y,n,m));
}
}
L'errore che mi restituisce è che sono andato fuori dall'array e non capisco come. Inoltre, nel caso la x superi il numero di elementi che sta su una riga (e dunque sarà necessario passare sull'altra), qual è il giusto for che mi permette di andare su un'altra riga e fermarmi all'opportuno valore (dettato dalla x)?
Grazie a tutti.

)soluzione.
Rispondi quotando
VVoVe:
Ecco il codice:
.
!
