codice:
import java.io.*;

public class Cluster {
    public static void main(String args[])
    {
        try{
            // preparo i file input/output
        FileReader inputcluster = new FileReader("cluster.txt");
        BufferedReader cluster = new BufferedReader(inputcluster);
        
        FileReader inputcerchi = new FileReader("cerchi.txt");
        BufferedReader cerchi = new BufferedReader(inputcerchi);
        
        FileWriter fileOutput = new FileWriter("output.txt");
        PrintWriter output = new PrintWriter(fileOutput);
               
        
        // lettura della riga di coordinate dei punti (da cluster.txt)
        String cPunto = cluster.readLine();
        String[] coordinataP = cPunto.split("\\s");
        
        //converto in double
        double xPunto = Double.parseDouble(coordinataP[0]);
        double yPunto = Double.parseDouble(coordinataP[1]);
        
        //preparo l'output
        output.println("Cluster (" + xPunto + " " + yPunto + "): ");
        
        
        
        //lettura di coordinate da cerchi.txt
        String cCerchio = cerchi.readLine();
        String[] coordinataC = cCerchio.split("\\s");
        
        // conversione in double delle coordinate
        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
        // calcolanto la distanza tra il centro del cerchio e il punto
        double distanza = pitagora(xPunto, yPunto, xCerchio, yCerchio);
        // se la distanza è minore o uguale al raggio
        // il cerchio contiene il punto
        if (distanza <= rCerchio)
            output.println(xCerchio + " , " + yCerchio + " raggio: " + rCerchio);
        
        
        
        output.close();

        }
        catch (IOException e){
        System.out.println("Errore: " + e);}
    }


    public static double pitagora(double xPunto, double yPunto, double xCerchio, double yCerchio)
    {
        return (Math.rqst(((xPunto - xCerchio) * (xPunto - xCerchio)) + ((yPunto - yCerchio) * (yPunto - yCerchio))));
    }

}
Il codice che ho scritto è imperfetto, perchè legge e confronta solo la
prima riga, dovrei mettere un doppio ciclo che mi legge il punto, legge
il cerchio, confronta le coordinate, legge un altro cerchio, confronta
le coordinate, finiti i cerchi legge un altro punto e riparte con la
lettura e il confronto con i cerchi.
cosa uso per mettere un ciclo?


inoltre, dovrei stampare anche ogni cluster(punto) e le coordinate del
cerchio più vicino per ognuno, cosa posso fare per memorizzare (e non
solamente stampare) i cerchi che contengono il punto?(non c'è un numero
predefinito di cerchi e punti, quindi dovrebbe essere una soluzione
adatta) in modo che poi posso trovare il più vicino?

scusate le richieste che potranno essere banali, ma sono alle prime armi
e questo esercizio era un pò più laborioso degli altri che ho fatto fin'ora

Grazie dell'aiuto che mi avete dato fino ad ora(spero che mi aiuterete anche per quest'altre cose)