Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
8
Поиск и исправление дефектов в расчёте площадей фигур
Компании, где спрашивали:
EcoFinance
Условие задачи
В этом задании нужно внимательно проанализировать представленный фрагмент кода, обнаружить в нём логические и синтаксические погрешности и предложить варианты их устранения. Особое внимание следует обратить на отсутствие нужного класса, неверное использование переменных и некорректный возврат результата. Предложите более надёжную реализацию, учитывающую принципы ООП и полиморфизм.
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);
}
}