Назад к задачам
Junior — Senior
7

Поиск и исправление дефектов в расчёте площадей фигур

Компании, где спрашивали:

EcoFinance
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В этом задании нужно внимательно проанализировать представленный фрагмент кода, обнаружить в нём логические и синтаксические погрешности и предложить варианты их устранения. Особое внимание следует обратить на отсутствие нужного класса, неверное использование переменных и некорректный возврат результата. Предложите более надёжную реализацию, учитывающую принципы ООП и полиморфизм.

class Shape
{
    public $w;
    public $h;

    public function __construct($w, $h)
    {
        $this->w = $w;
        $this->h = $h;
    }
}

class Triangle
{
    public $r;

    public function __construct($r)
    {
        $this->r = $r;
    }
}
class AreaCalculator
{
    public
    function calculate($figures)
    {
        $areas = [];
        foreach ($figures as $figure) {
            if (is_a($figure, 'Square')) {
                $areas[] = $figure->w * $figure->h;
            } else if (is_a($figure, 'Triangle')) {
                $areas[] = $figure->r * $figure->r * pi();
            }
        }
        return array_sum($areas);
    }
}