public class App { public static void main(String[] args) throws Exception { Triangolo triangolo = new Triangolo(); triangolo.lati = 3; triangolo.misure[0] = 3.0; triangolo.misure[1] = 4.0; triangolo.misure[2] = 5.0; System.out.println("Numero di lati: " + triangolo.lati); System.out.println("Lunghezza lato 1: " + triangolo.misure[0]); System.out.println("Lunghezza lato 2: " + triangolo.misure[1]); System.out.println("Lunghezza lato 3: " + triangolo.misure[2]); System.out.println("Perimetro: " + triangolo.perimetro()); System.out.println("Semiperimetro: " + triangolo.semiperimetro()); System.out.println("Area: " + triangolo.area()); } } class Poligono { public int lati = 3; public double[] misure = new double[lati]; public double perimetro() { int sum = 0; for (int i = 0; i < lati; i++) { sum += misure[i]; } return sum; } public double semiperimetro() { return perimetro()/2; } } class Triangolo extends Poligono { public double area() { double a = misure[0]; double b = misure[1]; double c = misure[2]; double p = semiperimetro(); double result = p*(p-a)*(p-b)*(p-c); return Math.sqrt(result); } } class Rettangolo extends Poligono { private double latolungo() { double roba = 0; for (int i = 0; i < 4; i++) { if (misure[i] > roba) { roba = misure[i]; } } return roba; } private double latocorto() { double roba = Double.MAX_VALUE; for (int i = 0; i < 4; i++) { if (misure[i] < roba) { roba = misure[i]; } } return roba; } public double area() { return latolungo()*latocorto(); } } class Quadrato extends Poligono { public double area() { return misure[0]*misure[0]; } } class Pentagono extends Poligono { public double area(double lato) { double constarea = 1.72; return misure[0]*misure[0]*constarea; } }