import java.io.*; // om klasse BufferedReader te hebben /** Een mathematisch punt wordt gedefinieerd door * twee coordinaten. We veronderstellen dat de * coordinaatassen loodrecht op elkaar staan * en op gelijke afstanden geijkt zijn. */ class Punt { /** de horizontale coordinaat van het punt */ public int x; /** de verticale coordinaat van het punt */ public int y; } /** Hulpklasse om het gebruik van de klasse Punt * te illustreren. */ class BerekenAfstand { /** Berekent de afstand tussen twee gegeven punten * met behulp van de regel van Pythagoras. */ public static double afstand(Punt p, Punt q) { int deltax = p.x - q.x, deltay = p.y - q.y; int afstKwadr = deltax * deltax + deltay * deltay; double afst = Math.sqrt(afstKwadr); // vierkantswortel return afst; } /** Leest een geheel getal van het toetsenbord */ public static int leesInt() throws IOException { // declareer toetsenbord als invoerstroom BufferedReader toetsenbord = new BufferedReader(new InputStreamReader(System.in)); // lees een hele lijn String tekst = toetsenbord.readLine(); // zet String om naar int int resultaat = Integer.parseInt(tekst); return resultaat; } /** Leest een punt van het toetsenbord. De gebruiker * moet twee keer na elkaar een geheel getal, gevolgd * door ENTER typen. Het eerste getal wordt de * x-coordinaat van het punt, het tweede de y-coordinaat. */ public static Punt leesPunt() throws IOException { Punt p = new Punt(); System.out.print("x = "); p.x = leesInt(); System.out.print("y = "); p.y = leesInt(); return p; } /** Leest twee punten van het toetsenbord en berekent * en toont hun onderlinge afstand. */ public static void main(String[] args) throws IOException { Punt p, q; System.out.println("Coordinaten eerste punt"); p = leesPunt(); System.out.println("Coordinaten tweede punt"); q = leesPunt(); double afstand = afstand(p, q); // genereer netjes geformatteerde uitvoer System.out.println("afstand ((" + p.x + "," + p.y + "),(" + q.x + "," + q.y + ")) = " + afstand); } }