avevo già in mente di buttare il mio e rifare il prog da capo
ho preso la strada sbagliata (vedi risultato qui sotto :rollo: )
meglio farlo più suddiviso come hai detto tu (Andrea 1979) così posso manipolarlo moooolto meglio
OK grazie mille

PS: mi vergogno pure a far vedere il progetto semi finito(funzionante), però eccovelo lo stesso (non so se o :maLOL: )


codice:
 
import java.io.*;

public class Cluster {
    public static void main(String args[])
    {
        try{
            
            // preparo i file cluster e output
            FileReader inputcluster = new FileReader("cluster.txt");
            BufferedReader cluster = new BufferedReader(inputcluster);
        
            FileWriter fileOutput = new FileWriter("output.txt");
            PrintWriter output = new PrintWriter(fileOutput);

            //cicla tra i vari punti(cluster)
            for(int count2 = 0; count2 < 1000; count2++){
                
                //apre il flusso ad ogni punto per evitare il difetto di continuazione
                FileReader inputcerchi = new FileReader("cerchi.txt");
                BufferedReader cerchi = new BufferedReader(inputcerchi);
                
                //dichiaro il minimo e la stringa per trovare il cerchio con
                //centro più vicino al punto
                double rMinimo = 100;
                String rMinimoS = "";
        
                // lettura della riga da cluster.txt
                String cPunto = cluster.readLine();
                
                //se la riga è piena (non è nulla)
                if(cPunto != null){
                    
                    //taglia la stringa in 2(le coordinate)
                    String[] coordinataP = cPunto.split("\\s");
                    
                    //converto in double le due substringhe e trovo le coordinate
                    double xPunto = Double.parseDouble(coordinataP[0]);
                    double yPunto = Double.parseDouble(coordinataP[1]);
                    
                    //preparo l'output del cluster
                    output.println("Cluster (" + xPunto + " " + yPunto + "): ");
                    
                    //output in console
                    System.out.println("Cluster (" + xPunto + " " + yPunto + "):");
                    
                    //cicla tra i vari cerchi
                    for(int count = 0; count < 1000; count++){
                        
                        //lettura della riga da cerchi.txt
                        String cCerchio = cerchi.readLine();
                        
                        // se la riga è piena (non è nulla)
                        if(cCerchio != null){
                            
                            //taglia la stringa in 3 subStringhe
                            String[] coordinataC = cCerchio.split("\\s");

                            // conversione in double delle coordinate e del raggio
                            double xCerchio = Double.parseDouble(coordinataC[0]);
                            double yCerchio = Double.parseDouble(coordinataC[1]);
                            double rCerchio = Double.parseDouble(coordinataC[2]);
        
                            // verifica se il cerchio contiene il punto
                            // calcolando la distanza tra il centro del cerchio e il punto
                            //richiamando il metodo pitagora
                            double distanza = pitagora(xPunto, yPunto, xCerchio, yCerchio);
                            
                            //se la distanza è minore del raggio
                            //cioè se il punto è contenuto
                            if (distanza <= rCerchio){
                                //stampa le coordinate del cerchio
                                output.println(xCerchio + " , " + yCerchio + " raggio: " + rCerchio);
                                //calcolo per trovare il cerchio con il centro più vicino al punto
                                if (rCerchio <= rMinimo){
                                    rMinimo = rCerchio;
                                    rMinimoS = (xCerchio + " " + yCerchio);
                                }
                            }
                        }
                        //se la riga è nulla, incrementa il count di 2000 
                        //per interrompere il ciclo
                        else
                            count += 2000;
                    }
                    //stampa linea vuota per ordinare l'output
                    output.println("");
                    //stampa il cerchio con il centro più vicino al punto
                    System.out.println(rMinimoS + " : " + rMinimo + "\n");
                }
                //se la riga è nulla, incrementa il count2 di 2000 
                //per interrompere il ciclo
                else
                    count2 += 2000;
                //chiusura del file cerchi.txt
                cerchi.close();
            }
            //chiusura dei file output e cluster.txt
            output.close();
            cluster.close();
            
        }//gestore delle eccezioni
        catch (IOException e){
        System.out.println("Errore: " + e);}
    }
    
    //metodo pitagora che calcola la distanza tra due punti
    public static double pitagora(double xPunto, double yPunto, double xCerchio, double yCerchio)
    {
        return (Math.sqrt(((xPunto - xCerchio) * (xPunto - xCerchio)) + ((yPunto - yCerchio) * (yPunto - yCerchio))));
    }
}