Colocviu POO 2015-2016

De la WikiLabs
Jump to navigationJump to search

Să se scrie o clasă seriaf.poo.colocviu.Point3D care să stocheze coordonatele unui punct în spațiul tri-dimensional în virgulă mobilă cu dublă precizie.

Reguli suplimentare:

  1. Clasa Point3D trebuie să aibă un constructor cu 3 argumente de tip double: x, y și z
  2. Clasa Point3D trebuie să aibă o metodă double getEuclidianDistance(Point3D anotherPoint) care să calculeze distanța euclidiană între punctul curent și punctul primit ca argument.
  3. Clasa Point3D trebuie să aibă o metodă double getManhattanDistance(Point3D anotherPoint) care să calculeze distanța Manhattan între punctul curent și punctul primit ca argument.

Să se scrie o clasă seriaf.poo.colocviu.Triangle care să stocheze date referitoare la un triunghi.

Reguli suplimentare:

  1. Clasa Triangle trebuie să aibă un constructor cu 3 argumente de tip Point3D ce reprezintă vârfurile triunghiului. Dacă oricare două puncte se suprapun, sau dacă punctele sunt colineare, se va arunca o excepție de tip IllegalArgumentException cu mesajul “Punctele nu formeaza un triunghi”.
  2. Clasa Triangle trebuie să aibă trei metode: boolean isEquilateral(), boolean isIsosceles() și boolean isRightAngled() care să întoarcă true dacă triunghiul este echilateral, isoscel sau respectiv dreptunghic.

ATENȚIE: Două numere de tip double se consideră egale dacă diferența dintre ele, în modul, este mai mică decât 0.0001.

Să se scrie o clasă seriaf.poo.colocviu.Main, executabilă, care folosindu-se de un obiect de tip java.util.Scanner să citească 9 valori de tip double dintr-un fișier specificat ca prim argument la execuție, și folosindu-se de clasele de mai sus să afișeze:

  • "Triunghiul este echilateral. " dacă este echilateral
  • "Triunghiul este isoscel. " dacă este isoscel
  • "Triunghiul este dreptunghic.\n" dacă este dreptunghic

Vezi clasa java.lang.Math.