@Test
  public void testClasserParAire() throws Exception {

    ListeFormes listeFormes = new ListeFormes();
    ClasseurFormes classeur;

    listeFormes.ajouterForme(new Rectangle(10, 20, 30, 50, 13)); // carre
    listeFormes.ajouterForme(new Ovale(10, 20, 30, 14)); // cercle a=3600
    listeFormes.ajouterForme(new Ligne(10, 20, 30, 40, 45)); // ligne
    listeFormes.ajouterForme(new Rectangle(30, 20, 50, 90, 12)); // rectangle
    listeFormes.ajouterForme(new Ovale(40, 30, 10, 20, 34)); // ovale a=800

    classeur = new ClasseurFormes(listeFormes);
    listeFormes = classeur.getListeFormes();

    classeur.classerParAire(true);
    listeFormes.premiere();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) Math.sqrt(20 * 20 + 20 * 20)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 45;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == 600
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 13;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) (Math.PI * 20 * 10)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 34;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == 1400
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 12;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) (Math.PI * 30 * 30)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 14;

    classeur.classerParAire(false);
    listeFormes.premiere();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) (Math.PI * 30 * 30)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 14;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == 1400
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 12;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) (Math.PI * 20 * 10)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 34;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == 600
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 13;
    listeFormes.suivant();
    assert listeFormes.getNoeudCourant().getForme().getAire() == (int) Math.sqrt(20 * 20 + 20 * 20)
        && listeFormes.getNoeudCourant().getForme().getNumeroSequence() == 45;
  }
Exemple #2
0
 public static void main(String[] args) {
   Scanner scanner = new Scanner(System.in);
   ArrayList<Integer> srcList = new ArrayList<Integer>();
   ArrayList<Integer> countList = new ArrayList<Integer>();
   while (scanner.hasNextInt()) {
     int src = scanner.nextInt();
     int count = scanner.nextInt();
     srcList.add(src);
     countList.add(count);
   }
   DecimalFormat format = new DecimalFormat(".00");
   for (int i = 0; i < srcList.size(); i++) {
     double srcDbl = srcList.get(i);
     double sum = 0;
     for (int j = 0; j < countList.get(i); j++) {
       sum += srcDbl;
       srcDbl = Math.sqrt(srcDbl);
     }
     System.out.println(format.format(sum));
   }
   scanner.close();
 }