Menu
Coddy logo textTech

Repaso - Calculadora de formas

Parte de la sección Programación Orientada a Objetos del Journey de PHP de Coddy. Lección 32 de 91.

challenge icon

Desafío

Fácil

Construyamos una calculadora de figuras que demuestre el poder de las interfaces para crear código flexible y extensible. Crearás una interfaz que define un contrato para calcular áreas y, después, la implementarás en diferentes clases de figuras.

Organizarás tu código en cuatro archivos:

  • Calculable.php: Define una interfaz Calculable con una única firma de método: calculateArea(). Este contrato garantiza que cualquier figura cuyo área se pueda calcular pueda calcular su área.
  • Rectangle.php: Crea una clase Rectangle que implemente Calculable. Incluye el archivo de la interfaz. La clase debe tener las propiedades privadas $width y $height, establecidas mediante el constructor. Implementa calculateArea() para devolver el área (el ancho multiplicado por la altura).
  • Circle.php: Crea una clase Circle que también implemente Calculable. Incluye el archivo de la interfaz. La clase debe tener una propiedad privada $radius, establecida mediante el constructor. Implementa calculateArea() para devolver el área usando la fórmula pi() * radius * radius.
  • main.php: Incluye ambos archivos de figuras. Crea una función llamada displayArea que acepte un parámetro Calculable y un nombre de figura (cadena). La función debe imprimir: "[name] area: [area]", donde el área se redondea a 2 decimales usando number_format().

Recibirás cuatro entradas: el ancho del rectángulo, la altura del rectángulo, el radio del círculo y un nombre de figura para el círculo. Crea un Rectangle con el ancho y la altura (conviértelos a valores de tipo float) y un Circle con el radio (conviértelo a float). Llama a displayArea() dos veces: primero con el rectángulo usando "Rectangle" como nombre y después con el círculo usando el nombre de figura proporcionado. Imprime cada resultado en su propia línea.

La función displayArea() funciona con cualquier figura que implemente Calculable. No necesita saber si está calculando el área de un rectángulo, un círculo o cualquier figura futura que puedas añadir. ¡Esa es la belleza de programar con una interfaz!

Pruébalo tú mismo

<?php
// Incluir los archivos de formas
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: Crear una función llamada displayArea
// Debe aceptar un parámetro Calculable y un nombre de forma (string)
// Imprimir: "[name] area: [area]" donde area se redondea a 2 decimales usando number_format()

// Leer las entradas
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: Crear un Rectangle con el width y el height

// TODO: Crear un Circle con el radius

// TODO: Llamar a displayArea() con el rectangle usando "Rectangle" como el nombre

// TODO: Llamar a displayArea() con el circle usando el nombre de forma proporcionado
?>

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de PHP online