Вставить метод isTriangleRightAngled в метод getTriangleSquare
Помогите, пожалуйста. Необходимо вставить метод isTriangleRightAngled в getTriangleSquare. То есть перед расчет площади метод должен проверять, можно ли построить такой треугольник. Если можно, то он должен выдавать саму площадь, если нельзя, то либо фразу "Нельзя построить треугольник", либо "-1.0".
// метод должен использовать абсолютное значение radius
public static double getCircleSquare(double radius) // прощадь круга
{
double s = Math.PI * Math.pow(radius, 2);
// S=πR²
return s;
}
// метод должен использовать абсолютное значение radius
public static double getSphereVolume(double radius) // объём сферы
{
double v = 4 / 3 * Math.PI * Math.pow(radius, 3);
// V=1⅓πR³
return v;
}
public static boolean isTriangleRightAngled(double a, double b, double c)
{
if(a < b + c && b < a + c && c < a + b) {
System.out.println("Можно построить треугольник");
return true;
}
else {
System.out.println("-1.0");
return false;
}
}
// перед расчетом площади проверить возможен ли такой треугольник
// методом isTriangleRightAngled, если невозможен вернуть -1.0
public static double getTriangleSquare(double a, double b, double c) // прощадь треугольника
{
// метод getTriangleSquare должен сначала вызывать isTriangleRightAngled
// и если он вернет true - вычислять площадь, а если false, то возвращать -1.0
double p = (a + b + c) / 2;
double p1 = (p - a);
double p2 = (p - b);
double p3 = (p - c);
double pp = p * p1 * p2 * p3;
double s = Math.sqrt(pp);
return s;
}
public static void main(String[] args)
{
System.out.println(getTriangleSquare(1, 1,6));
System.out.println(getCircleSquare(9));
System.out.println(getSphereVolume(15));
}
}```
Ответы (1 шт):
public static double getTriangleSquare(double a, double b, double c) // прощадь треугольника
{
if (isTriangleRightAngled(a, b, c)) {
double p = (a + b + c) / 2;
double p1 = (p - a);
double p2 = (p - b);
double p3 = (p - c);
double pp = p * p1 * p2 * p3;
double s = Math.sqrt(pp);
return s;
}
return -1.0;
}
Вот, собственно, как вы и сказали. В методе getTriangleSquare делаем проверку. Если можно построить треугольник, то метод напечатает на консоль "Можно построить треугольник" и саму площадь, если нет - "-1.0 -1.0".
Вообще главная задача метода isTriangleRightAngled это сделать проверку и вернуть true/false. Для элегантности можно переписать так:
public static boolean isTriangleRightAngled(double a, double b, double c)
{
return a < b + c && b < a + c && c < a + b;
}
А уже в getTriangleSquare выводить сообщение:
public static double getTriangleSquare(double a, double b, double c) // прощадь треугольника
{
if (isTriangleRightAngled(a, b, c)) {
System.out.println("Можно построить треугольник");
double p = (a + b + c) / 2;
double p1 = (p - a);
double p2 = (p - b);
double p3 = (p - c);
double pp = p * p1 * p2 * p3;
double s = Math.sqrt(pp);
return s;
}
return -1.0;
}