Buonasera. Dovrei scrivere un programma (l'ambiente usato è Eclipse) che data un matrice quadrata stampi la matrice stessa, la diagonale principale, quella secondaria e ne calcoli i rispettivi prodotti. Sono bloccato sul prodotto. Ecco il codice che ho compilato.
codice:
MainWindow finestra = new MainWindow();
InputBox inDati = new InputBox(finestra);
OutputBox uDati = new OutputBox(finestra);
finestra.setVisible(true);
//numero righe = numero colonne
int n_righe = inDati.getInteger("Quanti righe e colonne ha la matrice quadrata?");
int n_colonne = n_righe;
int dim = n_righe;
int prodotto_diagonale_principale = 0;
int prodotto_diagonale_secondaria = 0;
//dichiarato matrice
int [][] m = new int [n_righe][n_colonne];
//riempio la matrice
for (int i=0; i<n_righe; i++){
for (int j=0; j<n_colonne; j++)
m[i][j]=inDati.getInteger("Inserisci il valore in posizione ["+i+"] ["+j+"]");
}
for (int i=0; i<n_righe; i++){
for (int j=0; j<n_colonne; j++)
uDati.print(m[i][j]+ " ");
uDati.printLine("");
}
uDati.setVisible(true);
uDati.print("Diagonale principale: ");
for (int i = 0; i < n_righe; i++) {
for (int j = 0; j < n_righe; j++) {
if (i == j) {
uDati.print(m[i][j] + " ");
}
}
}
uDati.printLine("");
uDati.print("Diagonale secondaria: ");
for (int i = 0; i < n_righe; i++) {
for (int j = 0; j < n_righe; j++) {
if ((i + j) == (dim -1)) {
uDati.print(m[i][j] + " ");
}
}
}
uDati.printLine("");
uDati.print("Il prodotto dei valori della diagonale principale vale: ");
for (int i=0; i<n_righe; i++){
for (int j=0; j<n_righe; j++){
if(i == j){
prodotto_diagonale_principale *= m [n_righe][n_colonne];
uDati.print(prodotto_diagonale_principale + " ");
}
}
}
uDati.printLine("");
uDati.print("Il prodotto dei valori della diagonale secondaria vale:");
for (int i=0; i<n_righe; i++){
for (int j=0; j<n_righe; j++){
if ((i + j) == (dim -1)) {
prodotto_diagonale_secondaria *= m [n_righe][n_colonne];
uDati.print(prodotto_diagonale_secondaria + " ");
}
}
}
Ringrazio tutti per il possibile aiuto. Non capisco proprio cosa ci sia che non funziona!