/* Manipulations sur une classe triangle       */
/* en deux dimensions                          */

public class ManipulationTriangle2D {

/* Type agrege de stockage des informations    */
/* relatives a une position en deux dimensions */

  static class Position2D {
    double x = 0.0;
    double y = 0.0; };

/* Type agrege de stockage des informations    */
/* relatives a un triangle en deux dimensions  */

  static class Triangle2D {
    Position2D p0 = new Position2D();
    Position2D p1 = new Position2D();
    Position2D p2 = new Position2D(); };

/* Programme principal                         */

  public static void main(String [] args) {
    Triangle2D t = new Triangle2D();
    double surface;
    Ecran.afficherln("SVP, x & y du sommet 1?");
    t.p0.x = Clavier.saisirDouble();
    t.p0.y = Clavier.saisirDouble();
    Ecran.afficherln("SVP, x & y du sommet 2?");
    t.p1.x = Clavier.saisirDouble();
    t.p1.y = Clavier.saisirDouble();
    Ecran.afficherln("SVP, x & y du sommet 3?");
    t.p2.x = Clavier.saisirDouble();
    t.p2.y = Clavier.saisirDouble();
    surface = (t.p0.x-t.p1.x)*(t.p0.y+t.p1.y)+
              (t.p1.x-t.p2.x)*(t.p1.y+t.p2.y)+
              (t.p2.x-t.p0.x)*(t.p2.y+t.p0.y);
    surface = Math.abs(surface)/2.0;
    Ecran.afficherln("Surface: ",surface);
  }
}