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. Vous allez créer une interface qui définit un contrat pour calculer des aires, puis l’implémenter dans différentes classes de formes.

Vous organiserez votre code dans quatre files :

  • Calculable.php : Définissez une interface Calculable avec une seule signature de method : calculateArea(). Ce contrat garantit que toute forme calculable peut calculer son aire.
  • Rectangle.php : Createz une Rectangle class qui implements Calculable. Incluez le fichier de l’interface. La class doit avoir les $width et $height properties private, définies par le constructor. Implémentez calculateArea() pour return l’aire (la largeur multiplied par la hauteur).
  • Circle.php : Createz une Circle class qui implements également Calculable. Incluez le fichier de l’interface. La class doit avoir une $radius property private, définie par le constructor. Implémentez calculateArea() pour return l’aire en utilisant la formula pi() * radius * radius.
  • main.php : Incluez les deux fichiers de formes. Createz une function appelée displayArea qui accepts un Calculable parameter et un nom de forme (chaîne). La function doit Print : "[name] area: [area]", où l’aire est arrondie à 2 places décimales à l’aide de 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. Createz un Rectangle avec la largeur et la hauteur (convertissez-les en nombres décimaux), ainsi qu’un Circle avec le rayon (convertissez-le en nombre décimal). 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. Print chaque résultat sur sa propre ligne.

La function displayArea() fonctionne avec toute forme qui implements 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 vous pourriez ajouter. C’est là toute la beauté de la programmation avec 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