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

Vamos a construir una calculadora de formas 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 luego la implementarás en diferentes clases de formas.

Organizarás tu código en cuatro archivos:

  • Calculable.php — Define una interfaz Calculable con una única firma de método: calculateArea(). Este contrato asegura que cualquier forma calculable pueda computar su área.
  • Rectangle.php — Crea una clase Rectangle que implemente Calculable. Incluye el archivo de la interfaz. La clase debe tener propiedades privadas $width y $height, establecidas a través del constructor. Implementa calculateArea() para devolver el área (ancho multiplicado por alto).
  • 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 a través del constructor. Implementa calculateArea() para devolver el área usando la fórmula pi() * radius * radius.
  • main.php — Incluye ambos archivos de formas. Crea una función llamada displayArea que acepte un parámetro Calculable y un nombre de forma (string). La función debe imprimir: "[name] area: [area]" donde el área esté redondeada a 2 decimales usando number_format().

Recibirás cuatro entradas: el ancho del rectángulo, el alto del rectángulo, el radio del círculo y un nombre de forma para el círculo. Crea un Rectangle con el ancho y el alto (convierte a floats), y un Circle con el radio (convierte a float). Llama a displayArea() dos veces — primero con el rectángulo usando "Rectangle" como nombre, luego con el círculo usando el nombre de forma proporcionado. Imprime cada resultado en su propia línea.

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

Pruébalo tú mismo

<?php
// Incluir los archivos de las 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 el área esté redondeada a 2 decimales usando number_format()

// Leer 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 ancho (width) y el alto (height)

// TODO: Crear un Circle con el radio (radius)

// TODO: Llamar a displayArea() con el rectángulo usando "Rectangle" como nombre

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

Todas las lecciones de Programación Orientada a Objetos