public class TestInclusionAvecStructure { //////////////////////////////////////////////////// /* Type agrege de stockage d'une position du plan */ static class Position2D { double x = 0.0; double y = 0.0; }; /* Type agrege de stockage d'un cercle du plan */ static class Cercle2D { Position2D centre = new Position2D(); double rayon = 1.0; }; /* Test de l'inclusion d'une position du plan */ /* dans un cercle du plan */ static boolean testInclusion(Position2D p, Cercle2D c) { double dx; double dy; double distance; boolean inclus; dx = p.x-c.centre.x; dy = p.y-c.centre.y; distance = Math.sqrt(dx*dx+dy*dy); inclus = ( distance <= c.rayon ); return inclus; } //////////////////////////////////////////////////// /* Saisie au clavier des coordonnees */ /* d'une position du plan */ static void saisirPosition2D(Position2D p) { Ecran.afficher("SVP, x? "); p.x = Clavier.saisirDouble(); Ecran.afficher("SVP, y? "); p.y = Clavier.saisirDouble(); } /* Saisie au clavier des parametres de definition */ /* d'un cercle du plan */ static void saisirCercle2D(Cercle2D c) { Ecran.afficher("SVP, rayon? "); c.rayon = Clavier.saisirDouble(); saisirPosition2D(c.centre); } /* Programme principal */ public static void main(String [] args) { Cercle2D c = new Cercle2D(); boolean inclus; Position2D p = new Position2D(); Ecran.afficherln("SVP, position du point: "); saisirPosition2D(p); Ecran.afficherln("SVP, parametres du cercle: "); saisirCercle2D(c); inclus = testInclusion(p,c); Ecran.afficherln("Le point est inclus :",inclus); } }