Ahhhh adesso è già qualcosa!Originariamente inviato da blackguardian
tra ognuno di loro ci devo calcolare la distanza.![]()
Ma il "tra ognuno" intendi tra il precedente e il successivo oppure per ognuno la distanza rispetto a tutti gli altri???
Ahhhh adesso è già qualcosa!Originariamente inviato da blackguardian
tra ognuno di loro ci devo calcolare la distanza.![]()
Ma il "tra ognuno" intendi tra il precedente e il successivo oppure per ognuno la distanza rispetto a tutti gli altri???
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
per ognuno rispetto a tutti gli altri, ma questa è una cosa che ho quasi risolto, il mo problema è il precedente è il controllo di questo tipo di lettura del file che se inizia con 3 deve leggere le tre righe successive e creare oggetti Point ma non finisce li perche finite quelle tre righe successive ci sarà una riga come la prima che midrà come leggere le altre siccessive....se leggi il mio primo post è tutto spiegato bene...purtroppo è un po' complicato...
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!
Allora in ogni caso nel for di lettura devi mettere ogni Point che crei in un array o collezione.Originariamente inviato da blackguardian
per ognuno rispetto a tutti gli altri
Mi pare ovvio, se devi fare la distanza di ognuno rispetto a tutti gli altri ... devi averli già letti tutti! E quindi potrai fare i calcoli solo dopo la fine del ciclo di lettura.
Eh beh ma qui è poi solo tutto il ciclo di <lettura riga di info/lettura N righe> ripetuto più volte in loop.Originariamente inviato da blackguardian
finite quelle tre righe successive ci sarà una riga come la prima che midrà come leggere le altre siccessive....
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
non è che mi faresti un esempio...te ne sarei immensamente grato![]()
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!
Hai precisato che hai più "blocchi" composti da 1 riga+N righe. Quello che non ho capito è se nel calcolo delle distanze il "tutti" è riferito ad ogni singolo blocco o a tutti i blocchi (tutto il file).Originariamente inviato da blackguardian
non è che mi faresti un esempio...te ne sarei immensamente grato![]()
Supponiamo per il singolo blocco. Codice molto abbozzato (mica posso farti io il lavoro ....):
codice:String linea; while ((linea = br.readLine()) != null) { int numPunti; // parse della linea e assegnazione a numPunti. Point[] punti = new Point[numPunti]; for (int i = 0; i < numPunti; i++) { linea = br.readLine(); if (linea == null) { // Arrivare qui denota un errore nella forma del file. // Es. lancia una eccezione. } // parse della linea ed estrazione valori. punti[i] = new Point(....); } // Altri cicli per calcolare le distanze tra i punti nell'array }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ah ok li metti in un vettore...bene o male è chiaro...ora provo e poi ti faccio sapere...grazie mille.
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!
mi scatena un eccezione del tipo
java.lang.ArrayIndexOutOfBoundsException
ora lo ricontrollo e ti faccio vedere....
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!
ecco il codice che ho fatto...l'errore dovrebbe essere qui...codice:try{ FileReader fr = new FileReader("Input.txt");//istanza classe per la lettura del file dei pacchi BufferedReader br=new BufferedReader(fr);// istanza classe per leggere una riga di testo alla volta dei file dei pacchi String linea; int j=0; int z=0; Case[] casi = new Case[z]; Point[] punti = new Point [j]; while ((linea = br.readLine()) != null) { String parole[] = linea.split(" "); int valoriInt[]=new int[parole.length]; valoriInt[0]=Integer.parseInt(parole[0]); valoriInt[1]=Integer.parseInt(parole[1]); int N = valoriInt[0]; int M = valoriInt[1]; Case c = new Case(N,M); casi [z]= new Case (N,M); z++; System.out.println(casi[z]); for (int i = 0; i == N; i++) { linea = br.readLine(); String stringhe[] = linea.split(" "); int interi [] = new int[stringhe.length]; interi[0]=Integer.parseInt(stringhe[0]); interi[1]=Integer.parseInt(stringhe[1]); int x = interi[0]; int y = interi[1]; Point p = new Point(x,y); punti [j] = new Point (x,y); System.out.println(punti[j]); } } } catch (IOException ex) { ex.printStackTrace();
Case c = new Case(N,M);
casi [z]= new Case (N,M);
z++;
però non capisco il perche...
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!
Non ha senso che istanzi qui gli array di Case e Point .... visto che tanto j e z sono 0. E quindi array "vuoti" (senza spazio per gli elementi) che ti servono?Originariamente inviato da blackguardian
codice:int j=0; int z=0; Case[] casi = new Case[z]; Point[] punti = new Point [j];
Qui hai fatto un giro pazzesco con l'uso pure di un array (inutile) solo per poter assegnare i valori ad altre 2 variabili int.Originariamente inviato da blackguardian
codice:String parole[] = linea.split(" "); int valoriInt[]=new int[parole.length]; valoriInt[0]=Integer.parseInt(parole[0]); valoriInt[1]=Integer.parseInt(parole[1]); int N = valoriInt[0]; int M = valoriInt[1];
No, stesso giro di passaggi inutili con un array. E oltretutto la condizione del for i == N è palesemente sbagliata.Originariamente inviato da blackguardian
codice:for (int i = 0; i == N; i++) { linea = br.readLine(); String stringhe[] = linea.split(" "); int interi [] = new int[stringhe.length]; interi[0]=Integer.parseInt(stringhe[0]); interi[1]=Integer.parseInt(stringhe[1]); int x = interi[0]; int y = interi[1];
No no. Rivedi il tutto molto bene!
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ho provato e riprovato e l'eccezione me la scatena questa cosa qui...cioè quando aggiungo un nuovo oggetto nell'array
help!!!codice:casi[z]= new Case (N,M);![]()
Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!