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 un code flexible et extensible. Vous allez créer une interface qui définit un contrat pour le calcul des aires, puis l'implémenter dans différentes classes de formes.

Vous organiserez votre code sur quatre fichiers :

  • Calculable.php — Définissez une interface Calculable avec une signature de méthode unique : calculateArea(). Ce contrat garantit que toute forme calculable peut calculer son aire.
  • Rectangle.php — Créez une classe Rectangle qui implémente Calculable. Incluez le fichier de l'interface. La classe doit avoir des propriétés privées $width et $height, définies via le constructeur. Implémentez calculateArea() pour retourner l'aire (largeur multipliée par la hauteur).
  • Circle.php — Créez une classe Circle qui implémente également Calculable. Incluez le fichier de l'interface. La classe doit avoir une propriété privée $radius, définie via le constructeur. Implémentez calculateArea() pour retourner l'aire en utilisant la formule pi() * radius * radius.
  • main.php — Incluez les deux fichiers de formes. Créez une fonction nommé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 en utilisant number_format().

Vous recevrez quatre entrées : la largeur du rectangle, la hauteur du rectangle, le rayon du cercle et un nom de forme pour le cercle. Créez un Rectangle avec la largeur et la hauteur (converties en flottants), et un Circle avec le rayon (converti en flottant). Appelez displayArea() deux fois — d'abord avec le rectangle en utilisant "Rectangle" comme nom, puis avec le cercle en utilisant le nom de forme fourni. Affichez chaque résultat sur sa propre ligne.

La fonction displayArea() fonctionne avec n'importe quelle 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 autre forme future que vous pourriez ajouter. C'est toute la beauté de la programmation orientée 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 (chaîne de caractères)
// Afficher : "[name] area: [area]" où l'aire est arrondie à 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 la largeur et la hauteur

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

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

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

Toutes les leçons de Programmation Orientée Objet