Programme qui ne fonctionne pas : calcul aire/volume

Résolu/Fermé
Utilisateur anonyme - Modifié par jordane45 le 8/03/2015 à 19:56
jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 - 8 mars 2015 à 20:04
Bonjour/Bonsoir,

Etant novice en informatique (j'ai commencé en début d'année avec mon école) j'ai quelques soucis. Je souhaitais vous demander votre aide parce que ça fait au moins 4h que je passe sur ce programme qui est pourtant d'une facilité exemplaire en soit. En fait c'est un programme qui sert à calculer dans une sphère ou un cylindre l'aire et/ou le volume du solide choisi. Malheureusement, la partie en HTML s'affiche mais pas le calcul que doit effectuer le programme. Je pense que c'est dans la partie Javascript qu'il y a un soucis mais je ne trouve vraiment pas. Pourriez-vous m'aider s'il vous plaît? Merci beaucoup d'avance
ci-dessous mon code:
( pour le cylindre c'est l'aire latérale qui doit être calculée)
<!DOCTYPE [/contents/498-html-langage html]>

<html> <meta charset=UTF-8>

 <head> <h1><center>Calcul Aire/Volume</center></h1></br></br></br>
 

<script>
function Calcul(form) {

form.rayon.value = forceValidFloat(document.forms[0].rayon.value)
form.hauteur.value = forceValidFloat(document.forms[0].hauteur.value)


if ((document.forms[0].figure.options[0].selected)&&(document.forms.choix[0].checked)){
form.surfsphere.value = 4*Math.PI*Math.pow(parseFloat(form.rayon.value), 2)
}

if ((document.forms[0].figure.options[0].selected)&&(document.forms.choix[1].checked)){
form.volsphere.value = 4/3*Math.PI*Math.pow(parseFloat(form.rayon.value), 3)
}

if (document.forms[0].figure.options[1].selected)&&(document.forms[0].choix[0].checked){
form.surfcylindre.value = 2*Math.PI*parseFloat(form.rayon.value)*parseFloat(form.hauteur.value)
}

if (document.forms[0].figure.options[1].selected)&&(document.forms[0].choix[1].checked){
form.volcylindre.value =Math.PI*Math.pow(parseFloat(form.rayon.value), 2)*parseFloat(form.hauteur.value)
   }
  }
  </script>
 </head>
<body>
  <form>
  
  Choisissez le type de figure géométrique puis cochez => Surface ou volume suivant ce que vous souhaitez obtenir:
  
  
    <select name="figure">
    <option selected>Sphère
    <option>Cylindre
    </select></br></br></br>
  
  <input type="checkbox" name="choix" value="volume">volume</br>
  <input type="checkbox" name="choix" value="surface">surface</br>
  
   Indiquer en cm le rayon et/ou la hauteur si nécessaire
   Rayon :<input name="rayon" size=10>
   Hauteur :<input name="hauteur" size=10></br></br></br></br>
   
   Surface sphère (cm2) <input type="text" name="surfsphere">
   Volume sphère (cm3) <input type="text" name="volsphere">
   Surface latérale cylindre (cm2) <input type="text" name="surfcylindre">
         Volume cylindre (cm3) <input type="text" name="volcylindre">
   
   <input type="button" value="Valider" onClick="Calcul(form)">
   <input type="reset" value="Effacer"> 
   </form>
  </body>
 </html>



EDIT : Ajout des balises de code

1 réponse

jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 4 704
Modifié par jordane45 le 8/03/2015 à 20:05
Bonjour,

Que d'erreurs ....
des parenthèses oubliées ... des erreurs dans le nom des variables.....

Avec les outils de debogage de votre navigateur internet (perso je recommande d'utiliser le plugin FireBug pour FIREFOX) tu aurais pu les trouver sans notre aide....

Enfin bon;
voici ton code corrigé.

<html> 
<meta charset=UTF-8>
<head> <h1><center>Calcul Aire/Volume</center></h1></br></br></br>
 

<script>
   function Calcul(form) {

   form.rayon.value = (document.forms[0].rayon.value)
   form.hauteur.value = (document.forms[0].hauteur.value)


   if ((document.forms[0].figure.options[0].selected)&&(document.forms[0].choix[0].checked)){
      form.surfsphere.value = 4*Math.PI*Math.pow(parseFloat(form.rayon.value), 2)
   }

   if ((document.forms[0].figure.options[0].selected)&&(document.forms[0].choix[1].checked)){
      form.volsphere.value = 4/3*Math.PI*Math.pow(parseFloat(form.rayon.value), 3)
   }

   if ((document.forms[0].figure.options[1].selected) &&(document.forms[0].choix[0].checked)){
      form.surfcylindre.value = 2*Math.PI*parseFloat(form.rayon.value)*parseFloat(form.hauteur.value)
   }

   if ((document.forms[0].figure.options[1].selected)&&(document.forms[0].choix[1].checked)){
      form.volcylindre.value =Math.PI*Math.pow(parseFloat(form.rayon.value), 2)*parseFloat(form.hauteur.value)
   }
  }
  </script>
 </head>
<body>
  <form>
  
  Choisissez le type de figure géométrique puis cochez => Surface ou volume suivant ce que vous souhaitez obtenir:
  
  
    <select name="figure">
    <option selected>Sphère
    <option>Cylindre
    </select></br></br></br>
  
  <input type="checkbox" name="choix" value="volume">volume</br>
  <input type="checkbox" name="choix" value="surface">surface</br>
  
   Indiquer en cm le rayon et/ou la hauteur si nécessaire
   Rayon :<input name="rayon" size=10>
   Hauteur :<input name="hauteur" size=10></br></br></br></br>
   
   Surface sphère (cm2) <input type="text" name="surfsphere">
   Volume sphère (cm3) <input type="text" name="volsphere">
   Surface latérale cylindre (cm2) <input type="text" name="surfcylindre">
   Volume cylindre (cm3) <input type="text" name="volcylindre">
   
   <input type="button" value="Valider" onClick="Calcul(form)">
   <input type="reset" value="Effacer"> 
   </form>
  </body>
 </html>


PS : Ta question portant sur de l'HTML + du javascript il aurait été préférable de poser la question dans le forum https://forums.commentcamarche.net/forum/javascript-157 ( javascript...n'étant pas php.)




Cordialement,
Jordane
0