wow ragazzi quante risposte
Grazie a tutti!
Allora provo a rispondere a tutti
Il package java.math non ti serve e la classe Math che usi fa parte di java.lang, importato in automatico.
Si è vero, scusa l'ignoranza ma non sono molto esperto
Per la generazione casuale dei numeri ti suggerisco di utilizzare la classe Random
codice:
import java.util.Random;
public class ...
. . .
Random random = new Random();
// CICLO 1
// CICLO 2
a[j][i] = random.nextInt(8);
. . .
In questo modo ti genererà numeri (pseudo)casuali compresi fra 0 e 7 inclusi. Non è chiaro se vuoi includere anche 8 come valore valido (in tal caso diventa .nextInt(9)), ma tieni presente che in ogni caso la tua (int)(Math.random() * 8) non ti restituirà mai 8.
Non ho mai usato la funzione random. Ora me la studio un po' cosi vedo di capire bene come funziona
Noto che nel codice c'è lo stesso errore ripetuto più volte: devi impostare le condizioni di uscita dei cicli con "minore" stretto, non "minore o uguale".
Come sopra, sono ancora un dilettante
Per l'errore di esecuzione, in mancanza di informazioni più dettagliate sull'ambiente operativo, mi associo alla risposta di Lomio: hai impostato il percorso in cui eclipse si aspetta di trovare le classi di esecuzione?
Di che informazioni avete bisogno che ve lo do? Su eslipse non ho impostato nulla ho lasciato tutto cosi com'è
Ma eclipse, in passato, mi ha sempre dato errori strani durante la compilazione (guarda sotto)
codice:
import java.util.Random;
public class RandomMatrix {
private static final int MATRIX_ROWS = 5;
private static final int MATRIX_COLUMNS = 8;
public static void main(String[] args){
// creo la matrice con il numero di righe e colonne definite
int matrix[][] = new int[MATRIX_ROWS][MATRIX_COLUMNS];
// creo il generatore di numeri random
Random random = new Random();
// cliclo l'array bidimensionale
for (int i = 0; i < MATRIX_ROWS; i++) {
for (int j = 0; j < MATRIX_COLUMNS; j++) {
// genero il numero casuale tra 1 e 8 e lo inserisco nell'array bidimensionale
matrix[i][j] = random.nextInt(8) + 1;
// stampo la linea
System.out.print("[" + matrix[i][j]+ "]");
}
// stampo un carriage reutrn
System.out.print("\n");
}
}
}
Anzi tutto grazie per il codice che è molto chiaro e me lo custodirò gelosamente
però quando lo vado a lanciare in eclipse continuano i problemi di cui sopra:
Exception in thread "main" java.lang.NoClassDefFoundError: cal
Caused by: java.lang.ClassNotFoundException: cal
at java.net.URLClassLoader$1.run(URLClassLoader.java: 202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 07)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 48)
Mentre se provo a compilare dal terminale mi da:
MacBook-Pro-15-di-Mauro-Marano

esktop mauromarano$ javac cal.java
cal.java:3: class RandomMatrix is public, should be declared in a file named RandomMatrix.java
public class RandomMatrix {
^
1 error
Vi ringrazio nuovamente per il grande supporto