Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача Java - Математика

Алексей Алексеев Ученик (76), на голосовании 1 год назад
Нужно создать классы(с наследованием) следующих фигур:
Треугольник
Равнобедренный треугольник
Равносторонний треугольник
Прямоугольный треугольник
Четырёхугольник
Выпуклый четырёхугольник
Параллелограмм
Прямоугольник
Квадрат
Ромб
Трапеция
В этих классах нужны два метода: расчет площади и периметра. Конструктор принимает массив типа double - стороны, угол и.т.д.. Мои знания по геометрии - ужасны. Я пытался гуглить формулы, но там не нашел нормальных примеров, что бы проверить как они работают (чем все эти треугольники и четырехугольники отличаются друг от друга - мне практически не известно. Только самые базовые вещи). Так же пытался спрашивать у ChatGPT (не факт, что это именно он. Спрашивал через сайт: gpt-chatbot.ru ), но он часто допускает ошибки. Можете написать формулы или же Java код для расчета площади и периметра вышеперечисленных фигур. Заранее спасибо. (Тема вопроса скорее по геометрии, но тут я ее тоже размещу)
Голосование за лучший ответ
Татьяна Просветленный (36374) 1 год назад
Для расчета площади и периметра каждой из фигур, нужно знать формулы для каждой из них. Ниже приведены формулы для каждой из фигур: .
Ниже приведен Java код для расчета площади и периметра каждой из фигур:
 public abstract class Figure { 
protected double[] sides;

public Figure(double[] sides) {
this.sides = sides;
}

public abstract double getArea();

public abstract double getPerimeter();
}

public class Triangle extends Figure {
public Triangle(double[] sides) {
super(sides);
}

@Override
public double getArea() {
double b = sides[0];
double h = sides[1];
return 0.5 * b * h;
}

@Override
public double getPerimeter() {
double a = sides[0];
double b = sides[1];
double c = sides[2];
return a + b + c;
}
}

public class IsoscelesTriangle extends Triangle {
public IsoscelesTriangle(double[] sides) {
super(sides);
}

@Override
public double getPerimeter() {
double a = sides[0];
double b = sides[1];
return 2 * a + b;
}
}

public class EquilateralTriangle extends Triangle {
public EquilateralTriangle(double[] sides) {
super(sides);
}

@Override
public double getArea() {
double a = sides[0];
return Math.sqrt(3) / 4 * a * a;
}

@Override
public double getPerimeter() {
double a = sides[0];
return 3 * a;
}
}

public class RightTriangle extends Triangle {
public RightTriangle(double[] sides) {
super(sides);
}

@Override
public double getArea() {
double a = sides[0];
double b = sides[1];
return 0.5 * a * b;
}

@Override
public double getPerimeter() {
double a = sides[0];
double b = sides[1];
double c = Math.sqrt(a * a + b * b);
return a + b + c;
}
}

public abstract class Quadrilateral extends Figure {
public Quadrilateral(double[] sides) {
super(sides);
}

public abstract double getDiagonal();

public abstract double getAngle();
}

public class ConvexQuadrilateral extends Quadrilateral {
public ConvexQuadrilateral(double[] sides) {
super(sides);
}

@Override
public double getArea() {
// TODO: implement formula for area of convex quadrilateral
return 0;
}

@Override
public double getPerimeter() {
double a = sides[0];
double b = sides[1];
double c = sides[2];
double d = sides[3
DsDПросветленный (25496) 1 год назад
шо, ответ не влез?
кто просил абстрактный класс Figure делать?
DsD, :)
АлександрИскусственный Интеллект (301635) 1 год назад
колхозник щедро вывалил кучу навоза и ждёт похвальной грамоты от председателя...
Александр Искусственный Интеллект (301635) 1 год назад
а за каким тебе это нужно?
учить ты ничего не учишь, да и не можешь...
Алексей АлексеевУченик (76) 1 год назад
Это из курса на stepik. На тему наследования+работа с gitHub. Я просто написал только проблему с формулами, а не всю задачу.
Похожие вопросы