This forum is now read-only. Please use our new forums at discuss.codecademy.com.

PHP Orienté Objet Forum

View Course

460 points
B59b9bfab4e4ac004ab4d8249c64cbff?s=140&d=retro
Submitted by
Théo SABATTIE (ilicos)
about 3 years ago

[Exercice 8] Ecran de résultat qui valide le programme, mais exercice non validé

Bonjour,

Voici mon code:

  <?php
  class Person{
      static public function say(){
          return "Voici mes pensées !";
      }
  }

  class Mathematicien extends Person{
      const nombreDor=1.618033988749894;
  }

  echo Person::say();
  echo Mathematicien::nombreDor;
  ?>

L'écran affiche bel et bien : "Voici mes pensées !1.6180339887499"

Cependant, quand je clique sur "Vérifier vos réponses"
J'obtiens: "Oups, merci de réessayer. Apparemment, vous n'affichez pas la valeur 1.618033988749894 (le nombre d'Or)."

D'où vient l'erreur?

Merci d'avance! :)


3 votes

permalink

Oups excusez moi, je viens de trouver...
(une solution avait déjà été donné je ne l'avais pas vu à cause du titre)

J'avais eu le même problème, nombreDor
est trop long et est arrondi par Php.

La vérification du code (pour ce point
là) se basant sur l'affichage du
résultat il suffit d'écrire à la suite
:

echo 1.618033988749;
echo 894;
et l'exercice sera validé :)

merci à Vorty de m'avoir amené à cette
solution !

460 points
B59b9bfab4e4ac004ab4d8249c64cbff?s=140&d=retro
Submitted by
Théo SABATTIE (ilicos)
about 3 years ago

3 Comments

53b9b75c52f863e3fb000e92_556478000 Jeannin almost 3 years ago

Bonjour, Theo,
je me suis basée sur ton code (celui de ta première proposition) car je n'arrive pas a saisir ce que tu veux dire avec ---> :

echo 1.618033988749;
echo 894;

peux tu m'aider ? Merci beaucoup ;)

F148b2fabe4f88c40459f8d587b1ce5f?s=140&d=retro Alexandre Plennevaux almost 3 years ago

Le code exact (il faut la ligne commentée):

  echo Mathematicien::say();
 // echo Mathematicien::nombreDor;
 echo 1.618033988749;
  echo 894;

C7d88c1bacbcdfbca7024eb617a450a6?s=140&d=retro Alexis Guerin over 2 years ago

Merci pour ce "hack" plutôt pratique pour validé un cours buggué.


2 votes

permalink

Le problème vient de l'arrondi comme expliqué ci-dessus. Et ajouter 894 "à la main" ne résoud rien car le dernier chiffre de la chaîne est arrondi au supérieur. Bref.

Voici l'astuce pour valider l'exercice :
echo Mathematicien::say();
// echo Mathematicien::nombreDor;
echo "1.618033988749894"

194 points
F3a13fba37bf90c58d8b2a273c9d32eb?s=140&d=retro
Submitted by
Cédric
almost 3 years ago


1 vote

permalink

Un autre solution qui permet de controler parfaitement le nombre de chiffre après la virgule
utiliser printf("%.15f",votre nombre);

Ce qui donne :
printf("%.15f",Mathematicien::nombreDor);

121 points
031ac9f8078510b9761f074acf1f28a8?s=140&d=retro
Submitted by
vincegx
over 2 years ago

1 Comment

Db75c8a92c1374b469db58947431ad08?s=140&d=retro pearldream over 2 years ago

Merci pour cette correctif qui permet de ne pas trop dénaturer l'exercice !


0 votes

permalink


Voici une correction complète pour ceux qui galère encore


 <html>
  <head>
    <title></title>
  </head>
  <body>
    <p>
      <?php
    class Person{
        public static function say(){
            return "Voici mes pensées !";    
        }      
    }

    class Mathematicien extends Person{

        public static $a = 894;    
        const nombreDor = 1.618033988749;

    }

        echo Mathematicien::say();
        echo Mathematicien::nombreDor;
        echo Mathematicien::$a ; 


      ?>
    </p>
  </body>
</html>

152 points
542d586c52f8635232003ba8_537776949
Submitted by
Peach
almost 3 years ago


0 votes

permalink

Curieux... Ça pose encore problème à d'autres ? Car ta solution Eddy ne semble pas fonctionner. Je cherche toujours. ^^

541 points
544f68fd8c1cccd4470016ca_722494412
Submitted by
Wolfdan
almost 3 years ago


0 votes

permalink

Voici ma solution qui a fonctionné pour valider l'exercice:

      <html>
  <head>
    <title></title>
  </head>
  <body>
    <p>
      <?php
      class Person {
         static public function say() {
              echo "Voici mes pensées !";
          }
      }

      class Mathematicien extends Person {
           const nombreDor = 1.618033988749894;
           public static $a = 1.618033988749;
           public static $b = 894;    
      }

    echo Mathematicien::say();
   // echo Mathematicien::nombreDor;
    echo Mathematicien::$a ; 
    echo Mathematicien::$b ; 

      ?>
    </p>
  </body>
</html>

406 points
54ae6a4d9113cbca48006b3e_799137943
Submitted by
Romain Bouic
over 2 years ago

1 Comment

5480aa129c4e9d6bfb007da5_457328860 Yoda over 2 years ago

bonsoir Romain Bouic merci pour ton aide j'ai eu un mal fou avec cette parti du Mathematicien