à l'aide...svp [Résolu]

Signaler
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
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)
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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>
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
...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)
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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.
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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;
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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;
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
<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)
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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>
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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....
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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........
Messages postés
25
Date d'inscription
jeudi 25 décembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

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>