Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Creazione matrice con numeri casuali!

    Allora dovrei creare una matrice formata da 5 righe ed 8 colonne. In ogni riga ci vanno messi 8 numeri generati casualmente (tra 1 e 8).
    Stavo facendo cosi:
    codice:
    public class cal {
    	public static void main(String args[]){
    		
    	 int a[][]=new int[5][8];
    	 
    	 for(int i=0;i<=a[0].length;i++){
    		 for(int j=0;j<=a.length;j++){
    			//Genera un numero casuale tra 0 e 8;
    			 int x = (int)(Math.random()*8);
    			  a[j][i]= x;
    		 }
    	 }
    	 
    	 for(int i=0;i<=a[0].length;i++){
    		 for(int j=0;j<=a.length;j++){
    			 System.out.print(a[j][i]+" ");
    		 }
    		 System.out.println("");
    	 }
    	 
    	}
    }
    Solo che mi da un sacco di errori

  2. #2
    Utente di HTML.it L'avatar di Lomio
    Registrato dal
    Jul 2010
    Messaggi
    160
    Prova a mettere al posto di
    codice:
     for(int i=0;i<=a[0].length;i++){
    		 for(int j=0;j<=a.length;j++){
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    codice:
     for(int i=0;i<5;i++){
    		 for(int j=0;j<8;j++){

  3. #3
    niente mi da come errore (eclipse)
    codice:
    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.java:190)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Ma forse va importato prima il package math?

  4. #4
    Utente di HTML.it L'avatar di Lomio
    Registrato dal
    Jul 2010
    Messaggi
    160
    credo tu debba settare il classpath!!!

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gagginaspinnata
    Ma forse va importato prima il package math?
    Il package java.math non ti serve e la classe Math che usi fa parte di java.lang, importato in automatico.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    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.

    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".

    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?

  7. #7
    Ecco a te:


    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");
            }
        }
    }
    come output restituisce una cosa del genere:

    codice:
    [8][8][2][1][7][3][5][2]
    [5][6][6][6][4][2][8][7]
    [8][5][4][6][1][8][5][5]
    [6][7][3][4][1][2][3][7]
    [3][8][8][3][2][4][8][6]

  8. #8
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Esattamente come l'avrei fatto io!
    Tranne per l'apertura delle graffe, che trovo più leggibili alla linea successiva... questione di gusti

  9. #9
    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-Maranoesktop 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

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gagginaspinnata
    Mentre se provo a compilare dal terminale mi da:
    codice:
    MacBook-Pro-15-di-Mauro-Maranoesktop 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
    Sai leggere l'inglese? C'è scritto chiaramente cosa devi fare
    class RandomMatrix is public, should be declared in a file named RandomMatrix.java
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.