Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 28
  1. #11
    Si quell'errore l'ho capito, è che non mi torna perchè in eclipse invece mi da un errore diverso

  2. #12
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Sì, come dice Alex'87 il messaggio di errore è esplicativo: se dichiari una classe "public" il nome del file in cui la salvi deve essere lo stesso di tale classe. Comunque, visto che sei agli inizi non preoccuparti troppo di questi dettagli, prendili così come sono e ti saranno più chiari man mano che andrai avanti.

    Riguardo all'errore su Eclipse, probabilmente non hai specificato qualche percorso di cui ha bisogno, ad esempio il classpath... ma non usandolo non saprei dirti con precisione.
    In ogni caso, per ora ti consiglio di imparare lavorando solo con editor di testo e compilazione da linea di comando: l'utilizzo di ambienti IDE avanzati (come Eclipse o Netbeans) demandali a quando sarai un po' più esperto...!

  3. #13
    Ok ragazzi grazie mille
    Allora continuo con il terminale

    Sto sviluppando un programmino che generi un calendario di calcio (a scontri diretti) quindi è possibile che apri un nuovo topic se qualcosa non mi torna

    Grazie mille a tutti

  4. #14
    Ho un nuovo problema ora

    Una volta generata la matrice ho bisogno che ogni riga contenga solo numeri diversi (compresi tra 1 e 8) quindi che ogni numero ci sia solo una vota.

    Stavo pensando ad un algoritmo del genere:
    codice:
    import java.util.Random;
    
    public class prova2 {
    
        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 matrice[][] = 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++) {
                	for(int x=0;x<MATRIX_COLUMNS;x++){
                	
                		do{
                    // genero il numero casuale tra 1 e 8 
                			
                	int squadra = (int)(Math.random()*8)+1;
                		}
                		while(matrice[i][j]!=matrice[i][x] && x==j);
                	}
                	matrice[i][j] =squadra;
                	
    
                    // stampo la linea
                    System.out.print("[" + matrice[i][j]+ "]");
                }
    
                // stampo un carriage reutrn
                System.out.print("\n");
            }
        }
    }
    Ma durante la compilazione mi dice
    rova2.java:29: cannot find symbol
    symbol : variable squadra
    location: class prova2
    matrice[i][j] =squadra;
    ^
    1 error
    L'algoritmo è corretto? Dove sbaglio?

  5. #15
    Utente di HTML.it L'avatar di Lomio
    Registrato dal
    Jul 2010
    Messaggi
    160
    Prova a fare una cosa del genere:
    codice:
    import java.util.Random;
    
    public class prova2 {
    
        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 matrice[][] = 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++) {
                Vector<Integer> n = new Vector<Integer>();
                for (int j = 0; j < MATRIX_COLUMNS; j++) {
            
                	      int squadra = (int) (Math.random() * (8) + 1);
    
                           while (n.contains(squadra)) {
                               squadra = (int) (Math.random() * (8) + 1);
                           }
                          n.addElement(squadra);
                		
                	      matrice[i][j] =squadra;
                	
    
                    // stampo la linea
                    System.out.print("[" + matrice[i][j]+ "]");
                
    
                // stampo un carriage reutrn
                System.out.print("\n");
            }
        }
    }
    Prova così, però non sono sicuro funzioni!!!
    La legge e l'ordine saranno rispettati solo quando si concederà la giustizia a tutti indistintamente.

  6. #16
    Utente di HTML.it L'avatar di Lomio
    Registrato dal
    Jul 2010
    Messaggi
    160
    eccolo qua, l'ho provato!!!In quello postato precedentemente avevo messo pure una parentesi fuori posto e una mancante!

    Questo funziona correttamente:
    codice:
    import java.util.Random;
    import java.util.Vector;
    
    public class Prova2 {
    
    	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 matrice[][] = 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++) {
    			Vector<Integer> n = new Vector<Integer>();
    			for (int j = 0; j < MATRIX_COLUMNS; j++) {
    
    				int squadra = (int) (Math.random() * (8) + 1);
    
    				while (n.contains(squadra)) {
    					squadra = (int) (Math.random() * (8) + 1);
    				}
    				n.addElement(squadra);
    
    				matrice[i][j] = squadra;
    
    				// stampo la linea
    				System.out.print("[" + matrice[i][j] + "]");
    			}
    
    			// stampo un carriage reutrn
    			System.out.print("\n");
    		}
    	}
    }
    Ciaooo
    La legge e l'ordine saranno rispettati solo quando si concederà la giustizia a tutti indistintamente.

  7. #17
    anzi tutto grazie per la risposta Avere qualcosa di già funzionante è già un buon punto di partenza

    Solo che ci sono cose che io ancora non ho fatto come i vector ed altri comandi che non capisco
    Premsso che mi andrò a cercare su internet quei comandi che non capisco per cercare di capirli, c'è un metodo per fare la stessa cosa con l'algoritmo che avevo scritto prima io? Oppure è completamente sbagliato?

    Questo è quello che ho fatto ma mi da un errore nella variabile "squadra"

    codice:
    import java.util.Random;
    
    public class prova2 {
    
        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 matrice[][] = 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++) {
                	for(int x=0;x<MATRIX_COLUMNS;x++){
                	
                		do{
                    // genero il numero casuale tra 1 e 8 
                			
                	int squadra = (int)(Math.random()*8)+1;
                		}
                		while(matrice[i][j]!=matrice[i][x] && x==j);
                	}
                	matrice[i][j] =squadra;
                	
    
                    // stampo la linea
                    System.out.print("[" + matrice[i][j]+ "]");
                }
    
                // stampo un carriage reutrn
                System.out.print("\n");
            }
        }
    }
    prova2.java:30: cannot find symbol
    symbol : variable squadra
    location: class prova2
    matrice[i][j] =squadra;
    ^
    1 error

  8. #18
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    L'errore sta nel fatto che dichiari la variabile "squadra" all'interno del do-while e poi cerchi di utilizzarla all'esterno: non puoi farlo, in quanto "squadra" è locale al ciclo, fuori è come se non esistesse.

    Prova un codice di questo tipo (non ho il tempo di testarlo ora, provalo tu e se c'è qualcosa che non capisci chiedimi pure):

    codice:
    for (int j = 0; j < MATRIX_COLUMNS; j++) {
    
    // INIZIO NUOVO CODICE
    
    boolean unico;
    
    do
    {
      unico = true;
    
      matrice[i][j] = (int)(Math.random()*8)+1;
    
      for (int x = 0; x < j; x++)
      {
        if (matrice[i][j] == matrice[i][x])
        {
          unico = false;
        }
      }
    
    } while (!unico);
    
    // FINE NUOVO CODICE
    
    // stampo la linea
    System.out.print("[" + matrice[i][j]+ "]");
    Ti ho marcato i punti di INIZIO e FINE codice, così riesci a capire cosa devi sostituire in quello che hai scritto.
    L'algoritmo (non propriamente efficiente) comunque è praticamente analogo al tuo

  9. #19
    Utente di HTML.it L'avatar di Lomio
    Registrato dal
    Jul 2010
    Messaggi
    160
    Scusami ma adesso non riesco a risponderti e a provare a vedere dove sta l'errore, comunque i vector sono in pratica degl'array normali, solo che, e non è poco, hanno lunghezza variabile e non possono contenere tipi primitivi come int, double etc..
    Quando lo definisci tra parentesi <...> indichi il tipo, che come detto prima non può essere primitivo.
    addElements() non è altro che un metodo che aggiunge un oggetto, nel tuo caso di tipo Integer in coda al "vettore" ovvero alla fine.
    contains() è un altro metodo che controlla se il vettore contiene l'elemento passato tra le parentesi del metodo.
    La legge e l'ordine saranno rispettati solo quando si concederà la giustizia a tutti indistintamente.

  10. #20
    Grazie mille a tutti e due, entrambi gli script sono perfettamente funzionanti

    Ora non mi resta che ultimare un'ultima cos e poi ho fatto

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.