IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Erreur de Switch.. Comment appeler 2 variables?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut Erreur de Switch.. Comment appeler 2 variables?
    Bonjour.. Je suis un peu nouveau en JavaScript et je dois malgré tout effectuer un opérateur de fraction.
    Voici le code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    fonction calculer(){
     
           if(!isNaN(document.calc.a1.value)&&!isNaN(document.calc.b1.value)&&
              !isNaN(document.calc.a2.value)&&!isNaN(document.calc.b2.value)&&
              !isNaN(document.calc.a3.value)&&!isNaN(document.calc.b3.value)){
                 if(document.calc.a1.value!=""&&document.calc.b1.value!=""&&
                    document.calc.a2.value!=""&&document.calc.b2.value!="")&&
                    document.calc.a3.value!=""&&document.calc.b3.value!=""){
                       var a1=document.calc.a1.value
                       var a2=document.calc.a2.value
                       var a3=document.calc.a3.value
                       var b1=document.calc.b1.value
                       var b2=document.calc.b2.value
                       var b3=document.calc.b3.value
                       var Op1=document.calc.Op1.value
                       var Op2=document.calc.Op2.value               
                 }
                      else{
                      alert("Veuillez remplir toutes les cases!!")
                      }
                          else{
                          alert("Veuillez n'utiliser que des nombres afin de remplir les cases!!")
                          }
     
          switch(Op1){
          case "+":
            switch(Op2){
              case "+":
                Aa=(a1*b2*b3)+(a2*b1*b3)+(a3*b1*b2)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "-":
                Aa=(a1*b2*b3)+(a2*b1*b3)+(a3*b1*b2)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "*":
                Aa=(a2*a3*b1)+(a1*b2*b3)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "/":
                Aa=(a2*b3*b1)+(a1*b2*a3)
                Ab=(b1*b2*a3)
                  faireAction()
          break
            }
          case "-":
            switch(Op2){
              case "+":
                Aa=(a1*b2*b3)-(a2*b1*b3)+(a3*b1*b2)  
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "-":
                Aa=(a1*b2*b3)-(a2*b1*b3)-(a3*b1*b2)  
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "*":
                Aa=(a1*b2*b3)-(a2*a3*b1)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "/":
                Aa=(a1*b2*a3)-(a2*b3*b1)  
                Ab=(b1*b2*a3)
                  faireAction()
          break
            }
          case"*":
            switch(Op2){
              case "+":
                Aa=(a1*a2*b3)+(b1*b2*a3)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "-":
                Aa=(a1*a2*b3)-(b1*b2*a3)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "*":
                Aa=(a1*a2*a3)
                Ab=(b1*b2*b3)
                  faireAction()
          break
     
              case "/":
                Aa=(a1*a2*b3)
                Ab=(b1*b2*a3)
                  faireAction()
          break
            }
          case "/":
            switch(Op2){
              case "+":
                Aa=(a1*b2*b3)+(b1*a2*a3)
                Ab=(b1*a2*b3)
                  faireAction()
          break
     
              case "-":
                Aa=(a1*b2*b3)-(b1*a2*a3)
                Ab=(b1*a2*b3)
                  faireAction()
          break
     
              case "*":
                Aa=(a1*b2*a3)
                Ab=(b1*a2*b3)
                  faireAction()
          break
     
              case "/":
                Aa=(a1*b2*b3)
                Ab=(b1*a2*a3)
                  faireAction()
          break
            }
          }              
           }    
    }
      function faireAction(){
          document.calc.Aa.value=Aa;
          document.calc.Ab.value=Ab;
      }
    Où est mon erreur?! Je suis vraiment perdu


    Du même coup... quelqu'un pourrait me dire comment réduire les fractions obtenus?! Mici!

  2. #2
    jnore
    Invité(e)
    Par défaut
    Salut et bienvenue,

    Montre-nous le code html de ta page qui contient tes champs et valeurs.
    Il y aura certainement moyen d'alléger ce code qui me parait bien ennnuyeux et qui en plus ne possède aucun point virgule !!!

    Il y a de fortes chance que par l'utilisation de tableaux on puisse l'alléger.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Voici mon code Html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title>Vive les fractions :)!!</title>
        <script type="text/javascript" src="FRACTIONS.js"></script>
        <!-- L'extension Javascript sera annexée à cette page -->
          <link rel="stylesheet" media="screen" type="text/CSS" title="FRACTIONS" href="FRACTIONS.css" />
          <!-- Pourquoi ne pas s'amuser un peu ;) -->      
      </head>
     
      <body>
           <center><h1>Devoir 1: Les Fractions</h1></center>
        <br />
        <center><h2>Veuillez entrer les fractions &agrave; calculer</h2></center>
        <center><table border="1" width="400" height="180" cellpadding="6" 
        style="background-color:#999C89; border:2px #D18FCD solid;" >
          <tr>
            <td align=center valign=top>
            <h4>Les fractions</h4>
            <form name="calc">
              <table width="150">
                <tr>        
                  <td style="border-bottom:1px #68676C solid;">
                  <input type="text" id="a1" name="a1" value="" size="1" tabindex="1"></td>
                  <td rowspan="2" align=center valign=middle>
                    <select id="Op1" name="Op1" tabindex="3">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="*">x</option>
                    <option value="/">÷</option>
                    </select></td>
                      <td style="border-bottom:1px #68676C solid;">
                      <input type="text" id="a2" name="a2" value="" size="1" tabindex="4"></td>
                      <td rowspan="2" align=center valign=middle>
                        <select id="Op2" name="Op2" tabindex="6">
                        <option value="+">+</option> 
                        <option value="-">-</option>
                        <option value="*">x</option>
                        <option value="/">÷</option>
                        </select></td>
                          <td style="border-bottom:1px #68676C solid;">
                          <input type="text" id="a3" name="a3" value="" size="1" tabindex="7"></td>
                            <td rowspan="2" align="center" valign="middle">
                            <input type="button" value=" = "onClick="solve();" tabindex="9"></td>
                              <td style="border-bottom:1px #68676C solid;">
                              <input type="text" id="Aa" name="Aa" size="1" tabindex="10" readonly="1"></td>
                </tr>
          <tr>
            <td><input type="text" id="b1" name="b1" value="" size="1" tabindex="2"></td>
              <td><input type="text" id="b2" name="b2" value="" size="1" tabindex="5"></td> 
                <td><input type="text" id="b3" name="b3" value="" size="1" tabindex="8"></td>
                  <td><input type="text" id="Ab" name="Ab" value="" size="1" tabindex="11" readonly="1"></td>  
     
     
          </tr>
               </table>
             </form>      
             </td>      
          </tr>                           
          </table>
          </center>          
     
      </body>
    </html>
    Ehm... et comme mon Javascript est en format extension.... Dois-je écrire head{ en haut comme en CSS? (avec un } en bas bien entendu!!)

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu as un souci d'algo !
    ne marche pas

    c'est
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    jnore
    Invité(e)
    Par défaut
    Peux-tu nous dire le résultat attendu?
    Tu as 6 inputs à remplir, et deux inputs qui doivent recevoir des informations -->Aa et Ab;

    Quel doit être l'objectif du script, même si j'ai une petite idée, histoire d'être sûr !!

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    1) tu travailles uniquement avec des entiers?

    2) le résultat doit obligatoirement être une fraction?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Merci pour votre temps

    Le résultat obtenu doit être un calculateur de fraction de la forme

    x/x (+,-,*,/) x/x (+,-,*,/) x/x = X/X
    Merci pour l'information sur le else if... J'en avais entendu parler me je ne savais pas qu'il s'appliquait à ce cas ^^

    Il ne faut utiliser que des entiers..... d'où pourquoi le !isNaN dans le script ci-haut..

  8. #8
    jnore
    Invité(e)
    Par défaut
    Bon ,heummmm,
    les fractions c'était il y a longtemps.

    Je t'ai écris un script qui fonctionne lorsque les 2 "+" on été sélectionnés.
    A toi de vérifier et d'ajouter les calculs sur les autres possibilités.
    A toi aussi de retrouver le PPDC pour une fraction simplifiée.
    Tu as au moins le principe de fonctionnement des switch.

    J'ai modifié ta page html pour y ajouter des Id.

    voici la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250"/>
    <meta name="generator" content="PSPad editor, www.pspad.com"/>
    <title>Vive les fractions :)!!</title>
    </head>
    <body>
    <center><h1>Devoir 1: Les Fractions</h1></center>
    	<br />
        <center><h2>Veuillez entrer les fractions &agrave; calculer</h2></center>
        <center>
    		<table border="1" width="400" height="180" cellpadding="6" style="background-color:#999C89; border:2px #D18FCD solid;" >
    			<tr>
    				<td align="center" valign="top">
    					<h4>Les fractions</h4>
    					<form id="calc">
    						<table width="150">
    							<tr>        
    								<td style="border-bottom:1px #68676C solid;">
    									<input type="text" id="a1" name="a1" value="" size="1" tabindex="1">
    								</td>
    								<td rowspan="2" align="center" valign="middle">
    									<select id="Op1" name="Op1" tabindex="3">
    										<option value="+">+</option>
    										<option value="-">-</option>
    										<option value="*">x</option>
    										<option value="/">/</option>
    									</select>
    								</td>
    								<td style="border-bottom:1px #68676C solid;">
    									<input type="text" id="a2" name="a2" value="" size="1" tabindex="4">
    								</td>
    								<td rowspan="2" align="center" valign="middle">
    									<select id="Op2" name="Op2" tabindex="6">
    										<option value="+">+</option> 
    										<option value="-">-</option>
    										<option value="*">x</option>
    										<option value="/">/</option>
    									</select>
    								</td>
    								<td style="border-bottom:1px #68676C solid;">
    									 <input type="text" id="a3" name="a3" value="" size="1" tabindex="7">
    								</td>
    								<td rowspan="2" align="center" valign="middle">
    									<input type="button" value=" = " onclick="calculer()" tabindex="9">
    								</td>
    								<td style="border-bottom:1px #68676C solid;">
    									<input type="text" id="Aa" name="Aa" size="1" tabindex="10" readonly="1">
    								</td>
    							</tr>
    							<tr>
    								<td>
    									<input type="text" id="b1" name="b1" value="" size="1" tabindex="2">
    								</td>
    								<td>
    									<input type="text" id="b2" name="b2" value="" size="1" tabindex="5">
    								</td> 
    								<td>
    									<input type="text" id="b3" name="b3" value="" size="1" tabindex="8">
    								</td>
    								<td>
    									<input type="text" id="Ab" name="Ab" value="" size="1" tabindex="11" readonly="1">
    								</td>
    							</tr>
    						</table>
    					</form>      
    				</td>      
    			</tr>                           
    		</table>
          </center>          
    <script type="text/javascript" src="fraction.js"></script>      
    </body>
    </html>

    Voici le fichier javascript. Lui donner le nom "fraction.js".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    function calculer()
    	{
    	var listeInput = new Array('a1','a2','a3','b1','b2','b3');
     
    	//ON TESTE SI TOUTES LES SAISIES SONT DES INTEGER
    	for(var i=0; i< listeInput.length; i++)
    		{
    		var v=document.getElementById(listeInput[i]).value;		
    		if(isNaN(v))
    			{			
    			alert("Certaines cases sont non remplies ou ne sont pas des entiers! ");return;
    			}
    		var vv=listeInput[i].toString();
    		eval(vv +	"=" + v);
    		}
     
    	  //recup des valeurs des selects
          var op1=document.getElementById('Op1').options[document.getElementById('Op1').selectedIndex].value;
          var op2=document.getElementById('Op2').options[document.getElementById('Op2').selectedIndex].value;
     
    	  //recup des inputs qui vont récupérer les valeurs de fractions
    	  var aa=document.getElementById('Aa');
    	  var ab=document.getElementById('Ab');
    	  switch(op1)
    		{
    		case '+'://si le premier choix est un +
    				switch(op2)
    					{
    					case '+'://si le second choix est un +
    							aa.value=((a1*b2)+(a2*b1))*b3 + (a3*b1*b2);
    							ab.value=(b1*b2*b3);
    							break;
    					case '-'://si le premier choix est un -
     
     
    							break;
    					case '*':break;
    					case '/':break;
    					}
    					break;
     
     
    		case '-':
    				switch(op2)
    					{
    					case '+':break;
    					case '-':break;
    					case '*':break;
    					case '/':break;
    					}
    					break;
     
    		case '*':
    				switch(op2)
    					{
    					case '+':break;
    					case '-':break;
    					case '*':break;
    					case '/':break;
    					}
    					break;
    		case '/':
    				switch(op2)
    					{
    					case '+':break;
    					case '-':break;
    					case '*':break;
    					case '/':break;
    					}
    				break;
    		}	  
    	}
    Bon courage pour la suite.
    J'ai testé sous IE seulement. A toi d'adapter si besoin.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AF] comment appel t on des variables créées dans un bloc submit continue?
    Par l'breton du 29 dans le forum SAS AF et formulaires
    Réponses: 1
    Dernier message: 26/06/2008, 10h13
  2. Réponses: 3
    Dernier message: 20/01/2008, 23h12
  3. Réponses: 4
    Dernier message: 28/07/2007, 23h45
  4. Comment appeler une fonction variable ?
    Par franckcl dans le forum C++
    Réponses: 10
    Dernier message: 26/06/2007, 11h00
  5. [C#] Comment appeler variables d'une autre Form ?
    Par TEXMEX dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/02/2006, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo