Menu
Coddy logo textTech

Récapitulatif - Calculateur de formes

Fait partie de la section Programmation Orientée Objet du Journey PHP de Coddy. Leçon 32 sur 91.

challenge icon

Défi

Facile

Construisons un calculateur de formes qui démontre la puissance des interfaces pour créer du code flexible et extensible. Tu vas créer une interface qui définit un contrat pour calculer des aires, puis l'implémenter dans différentes classes de formes.

Tu organiseras ton code sur quatre fichiers :

  • Calculable.php : définis une interface Calculable avec une seule signature de méthode : calculateArea(). Ce contrat garantit que toute forme dont l'aire peut être calculée est capable de calculer son aire.
  • Rectangle.php : crée une classe Rectangle qui implémente Calculable. Inclus le fichier de l'interface. La classe doit avoir les propriétés privées $width et $height, définies par le constructeur. Implémente calculateArea() pour retourner l'aire (la largeur multipliée par la hauteur).
  • Circle.php : crée une classe Circle qui implémente également Calculable. Inclus le fichier de l'interface. La classe doit avoir une propriété privée $radius, définie par le constructeur. Implémente calculateArea() pour retourner l'aire en utilisant la formule pi() * radius * radius.
  • main.php : inclus les deux fichiers de formes. Crée une fonction appelée displayArea qui accepte un paramètre Calculable et un nom de forme (chaîne de caractères). La fonction doit afficher : "[name] area: [area]", où l'aire est arrondie à 2 décimales à l'aide de number_format().

Tu recevras quatre entrées : la largeur du rectangle, la hauteur du rectangle, le rayon du cercle et un nom de forme pour le cercle. Crée un Rectangle avec la largeur et la hauteur (converties en nombres flottants), ainsi qu'un Circle avec le rayon (converti en nombre flottant). Appelle displayArea() deux fois : d'abord avec le rectangle en utilisant "Rectangle" comme nom, puis avec le cercle en utilisant le nom de forme fourni. Affiche chaque résultat sur sa propre ligne.

La fonction displayArea() fonctionne avec toute forme qui implémente Calculable. Elle n'a pas besoin de savoir si elle calcule l'aire d'un rectangle, d'un cercle ou de toute forme future que tu pourrais ajouter. C'est tout l'intérêt de programmer à l'aide d'une interface !

Essayez vous-même

<?php
// Inclure les fichiers de formes
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: Créer une fonction appelée displayArea
// Elle doit accepter un paramètre Calculable et un nom de forme (string)
// Afficher : "[name] area: [area]" où area est arrondi à 2 décimales en utilisant number_format()

// Lire les entrées
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: Créer un Rectangle avec le width et le height

// TODO: Créer un Circle avec le radius

// TODO: Appeler displayArea() avec le rectangle en utilisant "Rectangle" comme nom

// TODO: Appeler displayArea() avec le circle en utilisant le nom de forme fourni
?>

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur PHP en ligne