Подскажите пожалуйста один момент. Я создаю объект класса многоугольник, вызываю метод и получаю результат на экране. Почему не отрабатывает метод с подсчетом площади треугольника?В чем проблема?
class Polygon {
int sideLengths[];
int numSides =0;
public Polygon(int [] lengths){
sideLengths = lengths;
numSides = lengths.length;
}
public int perimeter() {
int sum = 0;
for (int i = 0 ; i < sideLengths.length ;i++) {
sum += sideLengths[i];
}
return sum;
}
}
class Triangle extends Polygon {
public Triangle(int [] lengths) {
super(lengths);
numSides = 3;
}
public Triangle () {
this(new int[3]);
}
public double area (){
double s = perimeter()/2;
//формула Герона
return Math.sqrt(s*(s- sideLengths[0])*(s- sideLengths[1])*(s - sideLengths[2]));
}
}
public class ThirdLab {
public static void main(String[] args) {
int[] lengths = new int[]{2, 2, 3};
Polygon test_polygon = new Polygon(lengths);
double t = test_polygon.perimeter();
int[] lengths1 = new int[]{2, 2, 3};
Triangle triangle1 = new Triangle(lengths1);
double t1 = triangle1.area();
System.out.println(t);
System.out.println(t1);
}
}
System.out.printlnвывести код вpublic double area (){? Кст, уже тут вижу проблемуdouble s = perimeter()/2;- у васperimeterвозвращаетint, делите тоже на целое число, поэтому потеряется дробная часть, нужно или возвращать изperimeterвещественное число или делить на вещественное:double s = perimeter() / 2.0;– gil9red Oct 01 '21 at 06:45