Donnez vie à vos documents numériques !
 

Boucle while

abracadabraPDF Forums PDF – Général Boucle while

  • Créateur
    Sujet
  • #73579
    michel c.
    Participant

    Bonjour, je souhaiterais déclarer aléatoirement 6 variables (lettres a à f) sous 2 conditions :

    (b×f)-(e×c)>0 et (a×f)-(c×d) >0

    Dois-je écrire ceci ?

    var a=0;
    var b=0;
    var c=0;
    var d=0;
    var e=0;
    var f=0;
    while ((b*f-e*c))>0 && (a*f-c*d) >0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    var e=Math.round(Math.random()*8)+1;
    var f=Math.round(Math.random()*9)+1;
    }

    Merci

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Auteur
    Réponses
  • #73582
    bebarth
    Maître des clés

    bonjour,
    Le plus simple est effectivement de déclarer toutes les variables en les mettant à 0.
    Par contre, les conditions ne sont pas correctes. Il faut écrire :
    var a=0;
    var b=0;
    var c=0;
    var d=0;
    var e=0;
    var f=0;
    while (b*f-e*c<=0 || a*f-c*d<=0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    var e=Math.round(Math.random()*8)+1;
    var f=Math.round(Math.random()*9)+1;
    }

    Sinon, tu peux également définir une fonction :
    function nbAleatoires() {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    var e=Math.round(Math.random()*8)+1;
    var f=Math.round(Math.random()*9)+1;
    }
    nbAleatoires();
    while (b*f-e*c<=0 || a*f-c*d<=0) nbAleatoires();

    @+
    😎

     

    #73585
    michel c.
    Participant

    Merci, 2 questions cependant : pourquoi appelle-t-on 2 fois la fonction ?

    nbAleatoires();
    while (b*f-e*c<=0 || a*f-c*d<=0) nbAleatoires();

    En créant une fonction on peut se passer de déclarer les variables avec la valeur 0 ?

    • Cette réponse a été modifiée le il y a 1 année et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 1 année et 1 mois par michel c..
    #73590
    bebarth
    Maître des clés

    Merci, 2 questions cependant : pourquoi appelle-t-on 2 fois la fonction ? nbAleatoires(); while (b*f-e*c<=0 || a*f-c*d<=0) nbAleatoires(); En créant une fonction on peut se passer de déclarer les variables avec la valeur 0 ?

    Une première fois, cela déclare les variables avec un nombre aléatoire au lieu d’un zéro, et si les 2 conditions requises ne sont pas obtenues on effectue la boucle while jusqu’à qu’elles le soient.

    La fonction évite d’écrire 2 fois les lignes des nombres aléatoires.

    @+
    😎

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.