Résolu [PHP] Theorème de Pythagore, aidez-moi

Solutions (3)
Tags :
  • Input
  • Php
  • Strong
  • Echo
  • Programmation
|
Bonjour,

Je débute en php et j'essaye de coder le théorème de Pythagore avec des formulaires et le choix entre calculer un côté ou calculer l'hypoténuse.

Mais beaucoup de choses ont l'air de clocher dans ce que j'ai fait, je commence même à me perdre un peu dans mon propre code :sweat: 

Merci de m'aider.
Coridalement

Voici mon code :

  1. <?php
  2. ///////////////////////////////////////////////////////
  3. // Fonction calcul coté
  4.  
  5. function calculCote($hypo,$b)
  6. {
  7. $resultatAuCarre = ($hypo*$hypo) - ($b*$b);
  8. $resultat = sqrt($resultatAuCarre);
  9. echo 'Le deuxieme côté du triangle mesure <strong>'.$resultat.'</strong>';
  10. }
  11.  
  12. // Fonction calcul hypoténuse
  13. function calculHypotenuse($co1,$co2)
  14. {
  15. $resultatAuCarre = ($co1*$co1) + ($co2*$co2);
  16. $resultat = sqrt($resultatAuCarre);
  17. echo 'L\'hypoténuse du triangle mesure <strong>'.$resultat.'</strong>';
  18. }
  19.  
  20. ////////////////////////////////////////////////////
  21.  
  22. if(isset($_POST['calcul']) OR isset($_GET['calcul']))
  23. {
  24. if($_POST['calcul'] == 'cote' OR $_GET['calcul'] == 'cote')
  25. {
  26. if(isset($_POST['cote']) && isset($_POST['hypotenuse']))
  27. {
  28. $cote = $_POST['cote'];
  29. $hypotenuse = $_POST['hypotenuse'];
  30.  
  31. calculCote($_POST['cote'],$_POST['hypotenuse']);
  32.  
  33. }
  34. else
  35. {
  36. ?>
  37.  
  38. <form method="post" action="pythagore.php?calcul=cote">
  39. coté : <input type="text" name="cote" /> <br />
  40. hypoténuse : <input type="text" name="hypotenuse" /> <br />
  41. <input type="submit" value="Envoyer" />
  42. </form>
  43.  
  44. <?php
  45.  
  46. }
  47. }
  48. elseif($_POST['calcul'] == 'hypotenuse' OR $_GET['calcul'] == 'hypotenuse')
  49. {
  50. if(isset($_POST['cote1']) && isset($_POST['cote2']))
  51. {
  52. $cote1 = $_POST['cote1'];
  53. $cote2 = $_POST['cote2'];
  54.  
  55. calculCote($cote1,$cote2);
  56. }
  57. else
  58. {
  59. ?>
  60.  
  61. <form method="post" action="pythagore.php?calcul=hypotenuse">
  62. coté 1 : <input type="text" name="cote1" /> <br />
  63. coté 2 : <input type="text" name="cote2" /> <br />
  64. <input type="submit" value="Envoyer" />
  65. </form>
  66.  
  67. <?php
  68. }
  69. }
  70. }
  71. else
  72. {
  73. ?>
  74. Vous voulez calculer :
  75. <form method="post" action="pythagore.php">
  76.  
  77. <select name="calcul">
  78. <option value="cote">la longueur d'un côté</option>
  79. <option value="hypotenuse">la longueur de l'hypoténuse</option>
  80. <input type="submit" value="Envoyer" />
  81. </form>
  82.  
  83. <?php
  84. }
  85. ?>
  86.  
  87.  
  88. </body>

Contenus similaires
Meilleure solution
partage
|
Bonjour,

Donc, il y a 2 erreurs importantes :
  • Ligne 8 : une racine sur une valeur négative rends le calcul impossible.
  • Ligne 55 : tu appels la méthode "calculCote" au lieu de "calculHypotenuse".

    Pour la première erreur, il suffit de rajouter un "abs()" dans le "sqrt()".

    Tiens, comme je m'emmerde beaucoup en ce moment, j'ai refais ton code :

    1. <?php
    2. function calculCote($ab,$c)
    3. {
    4. $squareR = pow($c,2) - pow($ab,2);
    5. $R = sqrt( abs($squareR) );
    6. ?>
    7. <div>
    8. <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Choix mode</a> | <a href="<?php echo $_SERVER['PHP_SELF']; ?>?calcul=cote">Changement de valeurs</a>
    9. </div>
    10. <hr />
    11. <div>
    12. <p>
    13. a ou b = <?php echo $ab; ?><br />
    14. c = <?php echo $c; ?><br /><br />
    15. Calcul éffectué : <span><b>√(</b> <?php echo $c; ?><sup>2</sup> - <?php echo $ab; ?><sup>2</sup> <b>)</b></span>
    16. </p>
    17. <p>
    18. Ce qui donne : <b><?php echo $R; ?></b>
    19. </p>
    20. </div>
    21. <?php
    22. }
    23. function calculHypotenuse($a,$b)
    24. {
    25. $squareR = pow($a,2) + pow($b,2);
    26. $R = sqrt( $squareR );
    27. ?>
    28. <div>
    29. <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Choix mode</a> | <a href="<?php echo $_SERVER['PHP_SELF']; ?>?calcul=hypotenuse">Changement de valeurs</a>
    30. </div>
    31. <hr />
    32. <div>
    33. <p>
    34. a = <?php echo $a; ?><br />
    35. b = <?php echo $b; ?><br /><br />
    36. Calcul éffectué : <span><b>√(</b> <?php echo $a; ?><sup>2</sup> + <?php echo $b; ?><sup>2</sup> <b>)</b></span>
    37. </p>
    38. <p>
    39. Ce qui donne : <b><?php echo $R; ?></b>
    40. </p>
    41. </div>
    42. <?php
    43. }
    44. ?>
    45. <html>
    46. <head>
    47. <style type="text/css">
    48. #imgPyth { float: right; width: 250px; height: 199px; }
    49. #content { margin: 10px; margin-right: 250px;}
    50. </style>
    51. </head>
    52. <body>
    53. <img id="imgPyth" alt="Fichier:Pythagorean.svg" src="<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Pythagorean.svg/250px-Pythagorean.svg.png" rel="nofollow" target="_blank">http://upload.wikimedia.org/wikipedia/commons/thumb/d/d...</a>" />
    54. <div id="content">
    55. <?php
    56. if(isset($_POST['calcul']) OR isset($_GET['calcul']))
    57. {
    58. if( ($_POST['calcul'] == 'cote') OR ($_GET['calcul'] == 'cote') )
    59. {
    60. if( isset($_POST['cote']) && isset($_POST['hypotenuse']) && is_numeric($_POST['cote']) && is_numeric($_POST['hypotenuse']) )
    61. {
    62. $cote = $_POST['cote'];
    63. $hypo = $_POST['hypotenuse'];
    64. calculCote( $cote, $hypo );
    65. } else
    66. {
    67. ?>
    68. <div>
    69. <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Choix mode</a>
    70. </div>
    71. <hr />
    72. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?calcul=cote">
    73. a ou b : <input type="text" name="cote" /> <br />
    74. c : <input type="text" name="hypotenuse" /> <br />
    75. <input type="submit" value="Envoyer" />
    76. </form>
    77. <?php
    78. }
    79. } elseif($_POST['calcul'] == 'hypotenuse' OR $_GET['calcul'] == 'hypotenuse')
    80. {
    81. if(isset($_POST['cote1']) && isset($_POST['cote2']) && is_numeric($_POST['cote1']) && is_numeric($_POST['cote2']) )
    82. {
    83. $cote1 = $_POST['cote1'];
    84. $cote2 = $_POST['cote2'];
    85. calculHypotenuse( $cote1, $cote2 );
    86. } else
    87. {
    88. ?>
    89. <div>
    90. <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Choix mode</a>
    91. </div>
    92. <hr />
    93. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?calcul=hypotenuse">
    94. a : <input type="text" name="cote1" /> <br />
    95. b : <input type="text" name="cote2" /> <br />
    96. <input type="submit" value="Envoyer" />
    97. </form>
    98. <?php
    99. }
    100. }
    101. } else
    102. {
    103. ?>
    104. <span>Vous voulez calculer :</span>
    105. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    106. <select name="calcul">
    107. <option value="cote">la longueur d'un côté</option>
    108. <option value="hypotenuse">la longueur de l'hypoténuse</option>
    109. </select>
    110. <input type="submit" value="Envoyer" />
    111. </form>
    112. <?php
    113. }
    114. ?>
    115. </div>
    116. </body>
    117. </html>


    Tu remarqueras le "$_SERVER['PHP_SELF']" au lieu de "pythagore.php"... Ainsi, mon script peu s'appeler "toto.php", ça marchera quand même.

    Le rendu est (< clic).
    Avec une petite image de Wikipedia.

    Bonne continuation.
    • Commenter cette solution |
    Score
    0
    òh
    òi
    |
    Meilleure réponse sélectionnée par bboyhades38.
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Merci beaucoup =)

    C'est vrai que en réalité c'est assez complexe de gérer tout ca! Surtout pour les formulaires je trouve.


    En tout ca merci énormément :) 
    • Commenter cette réponse |

    Ce n'est pas ce que vous cherchiez ?

    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS