à l'aide...svp

Résolu
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009 - 23 févr. 2009 à 19:57
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 24 févr. 2009 à 18:35
Bonjour à toutes et à tous,

alors voilà, je suis en train de concevoir un petit jeux qui permet de poser des questions de calcul mental.
Les deux chiffres se trouvent chaqun dans un champs et la réponse doit être fournie dans une boite pop-up.
Il n'y a aucun problèmes pour ce qui est de l' addition et la multiplication.

Par contre, pour la soustraction, il faut absolument que le chiffre dans le champs1 soient toujours supérieur au second pour ne pas devoir obtenir des réponses négatives.
Et aussi pour la division, non seulement le champs1 doit toujours être supérieur au second, mais en plus doit être divisible par le second sans devoir avoir de réponses négatives.

Quelqun pourrait-il m'aider à concevoir le code javascript pour effectuer les divisions et soustractions??

Merci de tout coeur

16 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 22:42
dans ta fonction tu écris
document.depart.premier.value = m;
document.depart.second.value = n

dans ton HTML on ne retrouve pas les objets mais d'autres
<form name="test" id="formulaire">



</form>
donc fatalement il y a des erreurs...
;O)
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 23:18
pour la division au lieu de faire une recherche en
utilisant le Modulo arithmétique il est possible de contourner le probléme, je
m'explique
la division c'est
A : B = C
tirage
de 2 nombres B et C
A = B x C
affichage de la question
A : B = ?
le résultat
étant C

le tour est joué, à toi de récupérer les bonnes valeurs
pour B et C...

;O)
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
24 févr. 2009 à 18:35
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, tout d'abord comment faire en sorte de laisser
le libre choix à l'utilisateur de pouvoir arrêter la
boucle</td>
</td></tr></tbody></table>tu testes
si le bouton annuler est appuyé...
  var answer = prompt("Quelle est votre réponse ?\nQuestion : "+cpt);

  if( !answer)
    break; //mets fin a la
boucle

<table bgcolor ="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, faire des retours
chariots</td>
</td></tr></tbody></table>Ajoutes
simplement un "\n"
;O)
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 20:14
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, chiffre dans le champs1 soient toujours
supérieur au
second</td>
</td></tr></tbody></table>il te
suffit de faire le test et prévenir si ce n'est pas le cas, mais qu'adviendra
t-il si le Champ2 est saisi avant ?

<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, doit être divisible par le second
</td>
</td></tr></tbody></table>il te suffit de
tester que le Modulo arithmétique est égal à
0.
var Reste = Nombre %
Diviseur;

Il te faut également tester que tu es en présence de
nombre entier...et encore surement autres choses...

PS : de grâce mets un titre qui veut dire quelque
chose.
;O)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 20:28
merci de ta réponse, voila en fait les chiffres dans les deux champs sont donnés de manière aléatoire par l'ordinateur ensuite une box apparait demandant la réponse :

je te mets le code pour l'addition ci dessous : Peut-être pourrais tu mieux me guider de cette facon; merci de ton aide

<html>

<head>

<script type="text/javascript" language="javascript">

function Calcul()
{
    var x=0;
    var y=0;
    var z=0;
    var s=0;
    var cpt=1;

    while (cpt<21)

    {
   
        x = 1+(Math.round(Math.random()*100));
        y = 1+(Math.round(Math.random()*100));
        document.depart.premier.value = x;
        document.depart.second.value = y;
        var answer = prompt("Quelle est votre réponse ?\nQuestion : "+cpt);
        z = parseInt(x) + parseInt(y);

        if (answer == z)

        {
            alert("Bonne réponse");
            s= s + 1;
            cpt++;

        }

        else

        {
            alert("Mauvaise réponse\nla bonne réponse était : "+z);
            s = s + 0;
            cpt++;

        }
   

    }

        alert("Votre score sur 20 est de "+s);

}

</script>
</head>

<form name="depart">
   

    &nbsp;+&nbsp;&nbsp;=&nbsp;

   
</form>

</html>
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 21:02
...un truc tout simple en utilisant les méthodes max et min de
l'objet Math
document.depart.premier.value = Math.max( x, y);

document.depart.second.value  = Math.min( x, y);
il faudra prévoir
la possibilité de stopper quand on le souhaite.
;O)
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 21:18
merci beaucoup, mais comment puis-je faire pour decider d'une action si l'utilisateur click sur annuler?
Je ne suis pas pro, je suppose que tu l'auras vu mais j'apprend en tout cas bien vu d'avoir souligner cette lacune dans le code.
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 21:32
merci, j'ai rajouté Math.max et Math.min mais lorsqu'il me donne la réponse, elle est toujours négative
z = x-y;
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 21:37
je ne comprends pas, la réponse est tantot négative tantot positive, je devais rajouter autre chose?
document.depart.premier.value = Math.max(x, y);
document.depart.second.value  = Math.min(x, y);
z = x - y;
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 21:50
je ne comprends pas, il donne par exemple 5 - 2 =3   correct et de suite le même calcul mais cette fois la réponse est égale à -3 ????????

Merci de ton aide
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 févr. 2009 à 21:52
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">

----,

je ne comprends pas, la réponse est tantot
négative tantot
positive

</td>

</td>
</tr>
</tbody>
</table>normal tu
fais le test avec les valeurs x et y non ordonnées, il faudrait faire le test
avec les valeurs document.depart.premier.value
moins document.depart.second.value

voici une façon de faire...
  x = 1 + (Math.round(Math.random() * 100));
  y = 1 +
(Math.round(Math.random() * 100));
  //-- Ordonne les
valeurs
  var Maxi = Math.max(x, y);
  var Mini = Math.min(x,
y);
   //-- Calcul le resultat
  var
Result = Maxi - Mini;
  //-- Affecte les valeurs

  document.depart.premier.value = Maxi;

  document.depart.second.value = Mini;
  //--
Demande la saisie de la reponse
  var answer = prompt("Quelle est
votre réponse ?\nQuestion : " + cpt);
  //-- Test le
resultat
  if (answer == Result) {
    alert("Bonne
réponse");
    s = s + 1;
    cpt++;
  }
  else {

    alert("Mauvaise réponse\nla bonne réponse était : " + Result);
    s
= s + 0;
    cpt++;
  }

;O)
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 22:17
ca ne tourne toujours pas sui dégouté....snif snif

<html>

<head>

<script type="text/javascript" language="javascript">

function Test()
{
    var x=0;
    var y=0;
    var s=0;
    var m=0;
    var n=0;
    var r=0;
    var cpt=1;

    while (cpt<21)

    {
   
        x = 1+(Math.round(Math.random()*10));
        y = 1+(Math.round(Math.random()*10));

        m = Math.max(x, y);
          n = Math.min(x, y);

        document.depart.premier.value = m;
          document.depart.second.value = n;
       
         

       
 
         
 
         

        r = m - n;
       
        var answer = prompt("Quelle est votre réponse ?\nQuestion : "+cpt);
       

        if (answer == r)

        {
            alert("Bonne réponse");
            s= s + 1;
            cpt++;

        }

        else

        {
            alert("Mauvaise réponse\nla bonne réponse était : "+r);
            s = s + 0;
            cpt++;

        }
   

    }

        alert("C\'est terminé...\nRegardez les commentaires");

       
        document.test.comments.value = "Votre score sur 20 est de "+s;
       

}

</script>

<link rel="stylesheet" type="text/css" href="css/style.css" />

<style type="text/css">
a
{
color : blue;
}
a:hover
{
color : red;
}

#formulaire
{
width : 282px;
height : 210px;
text-align : center;
border : 1px solid;
border-color : #999999;
border-style : inset;
margin-right : auto;
margin-left : auto;
}

.start
{
width : 60px;
height : 30px;
margin-top : 4px;
}

.nb1
{
text-align : center;
border : 1px solid;
border-color : #999999;
border-style : inset;
}

.nb2
{
text-align : center;
border : 1px solid;
border-color : #999999;
border-style : inset;
}

.commentaires
{
width : 260px;
height : 78px;
margin-top : 6px;
color : red;
font-size : 15px;
}

.backmenu
{
text-align : center;
font-family : arial;
}

</style>

</head>

   

       

       

       

            Soustraction Nul

            <form name="test" id="formulaire">

               

                &nbsp;-&nbsp;&nbsp;=&nbsp;?

                Commentaires
               

            </form>

             [index.html Retour vers Menu]

       

       

           

               

                    [operationsnul.html <li>nul</li>]
                    [operationselementaire.html <li>élémentaire</li>]
                    [operationssecondaire.html <li>secondaire</li>]
                    [operationsintermediaire.html <li>intermédiaire</li>]
                    [operationssuperieur.html <li>supérieur</li>]
                    [operationsgenius.html <li>genius</li>]

               

           

       

       
       

           
All&nbsp;rights&reg;eserved&nbsp;MikyMaxXx&nbsp;2009

       

       

   

</html>
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 22:49
merci beaucoup, oups j'ai besoin de sommeil la lol, quelle innatention....

Enfin ca fonctionne merci beaucoup de ton aide elle fut très utile, merci d'être là...

Sans vouloir abuser de ton temps, serais tu m'aider une dernière fois pour ce qui est de la division STP? avec les nombres entier.....

Merci de tout coeur....
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
23 févr. 2009 à 23:57
et cette technique va me permettre d'avoir toujours un nombre entier comme reponse?
je lui demande de sortir A ex 32
Et ensuite je lui demande de sortir 2 chiffres dont la multiplication des 2 fait 32 ex 16*2 ou bien 8*4
et en question on demande C

a=1+(Math.round(Math.random()*100));
b=1+(Math.round(Math.random()*100));
c=1+(Math.round(Math.random()*100));
a=b*C;

non c pas ca zut alors c une equation à 2 inconnues c ca non??

aie aie
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
24 févr. 2009 à 02:31
je pense avoir trouvé.............

b= 1+(Math.round(Math.random()*100));
c=1+(Math.round(Math.random()*100));

il sort 2 chiffres ex : 12 et 56

a = b*c;     // a est donc égal à 672
//ensuite, il propose le calcul a/b=? 672/12 = 56 et on répond c

Je pense que après que tu m'es mis sur la voie

Merci à bientôt........
0
mikymaxxx Messages postés 25 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 17 mars 2009
24 févr. 2009 à 02:46
j'ai trouvé, merci beaucoup de ton aide, dis moi si c comme ca que tu voyais le problème, merci, merci
J'aurai encore une ou 2 questions, 1)tout d'abord comment faire en sorte de laisser le libre choix à l'utilisateur de pouvoir arrêter la boucle......         2)comment dans le textarea où s'affichent les commentaires, je peux faire des retours chariots avec comme exemple : document.formulaire.textarea.value = ......merci encore pour tout.....

<script type="text/javascript" language="javascript">

function Test()
{
    var a=0;
    var b=0;
    var s=0;
    var c=0;
    var cpt=1;

    while (cpt<21)

    {
    
        c = 1+(Math.round(Math.random()*10));
        b = 1+(Math.round(Math.random()*10));

        a = b * c;

        document.test.champs1.value = a;
        document.test.champs2.value = b;

        

        
      
        
        var answer = prompt("Quelle est votre réponse ?\nQuestion : "+cpt);
        

        if (answer == c)

        {
            alert("Bonne réponse");
            s= s + 1;
            cpt++;

        }

        else

        {
            alert("Mauvaise réponse\nla bonne réponse était : "+c);
            s = s + 0;
            cpt++;

        }
    

    }

        alert("C\'est terminé...\nRegardez les commentaires");

        
        document.test.comments.value = "Votre score sur 20 est de "+s;
        

}

</script>
0