Menu
Coddy logo textTech

Resumen - 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 interface para crear código flexible y extensible. Crearás una interface 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 files:

  • Calculable.php: Define una interface Calculable con una única firma de method: calculateArea(). Este contrato garantiza que cualquier figura calculable pueda calcular su área.
  • Rectangle.php: Create una clase Rectangle que implements Calculable. Include el file de la interface. La clase debe tener las properties privadas $width y $height, establecidas mediante el constructor. Implementa calculateArea() para Return el área (width multiplied por height).
  • Circle.php: Create una clase Circle que también implements Calculable. Include el file de la interface. La clase debe tener una property privada $radius, establecida mediante el constructor. Implementa calculateArea() para Return el área usando la formula pi() * radius * radius.
  • main.php: Include ambos files de figuras. Create una function llamada displayArea que accepts un parameter Calculable y un nombre de figura (cadena). La function debe Print: "[name] area: [area]", donde el área se redondea a 2 places decimales usando number_format().

Recibirás cuatro inputs: el width del rectangle, el height del rectangle, el radius del circle y un nombre de figura para el circle. Create un Rectangle con el width y el height (convertidos a números de punto flotante), y un Circle con el radius (convertido a número de punto flotante). Call displayArea() dos veces: primero con el rectangle usando "Rectangle" como nombre, después con el circle usando el nombre de figura provided. Print cada resultado en su propia línea.

La function displayArea() works con cualquier figura que implements Calculable. No necesita saber si está calculando el área de un rectangle, un circle o cualquier figura futura que puedas añadir. ¡Esa es la belleza de programar usando una interface!

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