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 :

Réaliser un questionnaire probabilités


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Réaliser un questionnaire probabilités
    Bonjour, je dois créer une page HTML redirigeant l'utilisateur vers des questions. Pour ça je veux utiliser un bouton qui lorsque l'on clique dessus redirige l'utilisateur de façon aléatoire selon des probabilités différentes. Ce serait trop facile si tout était équiprobable sauf que la proba qu'une question soit choisie doit augmenter si jamais on y réponds mal et revenir a la normale quand il y réponds correctement, donc je dois utiliser des variables pour pouvoir modifier les proba au fur et a mesure. Pour l'instant j'ai ça en

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
        <head>
            <script src="Test 2.js"></script>
            <link rel="stylesheet" type="text/css" href="alea.css">
        </head>
    <body class="t1">
        <br><br>
        <h1>Questionnaire aléatoire à propos de scientifiques</h1>
        <br> <br> <br> <br>
        <button class="button" onClick="rng()">Début du test</button>
     
    </body>
    </html>

    et ça en JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var nbr = function rng {
    Math.floor(Math.random() * 20) + 1;
    if (nbr >= 1 , <= 10) { window.location="Page test 1.html";}
    else if (nbr >= 11 , <= 20) { window.location="Page test 2.html";}
    }
    J'aurais besoin de finir mon programme d'ici vendredi matin, merci de l'aide

  2. #2
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    Le script est grandement erroné, mais l'idée est bonne.
    Il s'agit bien en effet de regarder dans quel intervalle se situe un nombre aléatoire (du moins, c'est une méthode valide).
    Il reste à rendre cela plus dynamique.

    Comme je l'ai déjà fait, je vais vous dépanner sur ce point là :
    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
    function indexAleatoire(tableau,propriete)
    	{
    	var i;
    	var aleatoire;
    	var somme;
     
    	somme=0;
    	i=tableau.length;
    	while(--i>=0)
    		{
    		somme+=tableau[i][propriete];
    		}
    	aleatoire=Math.random()*somme;
    	somme=0;
    	i=tableau.length;
    	while(--i>=0)
    		{
    		if((somme+=tableau[i][propriete])>aleatoire)
    			{
    			return i;
    			}
    		}
    	}
     
    var questions=
    	[
    	{coefProba:2,question:"question 1"},
    	{coefProba:1,question:"question 2"},
    	{coefProba:3,question:"question 3"},
    	{coefProba:1,question:"question 4"},
    	{coefProba:5,question:"question 5"}
    	];
     
    var questionChoisie=questions[indexAleatoire(questions,"coefProba")];

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Ok bon je viens de lire le code... et je comprends pas tout :/ Je veux juste préciser que je suis en terminale S et que c'est ma première année d'informatique, sauf que le prof s'en moque pas mal et comprends pas la moitié des codes qu'on écrit. Il nous donne juste les fonctions genre "alert" et c'est tout. On dois se débrouiller seul pour comprendre de quoi on doit se servir et comment le faire, pour te donner une idée selon lui le code que j'ai donné au début était nickel donc bon. C'est pour ça que je souhaiterais que si tu as le temps, tu m'expliques un peu plus en détail qu'est ce qui fait quoi, ce que je dois modifier etc

    P.S: Pas besoin de se presser, je me laisse jusqu'à vendredi prochain pour finir, je ferais le reste en attendant de comprendre et de réussir ce code là

  4. #4
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    La fonction :
    - Calcule la somme des coefficients de probabilités : 2+1+3+1+5=12.
    - Génère un réel aléatoire dans l'intervalle [0,12[.
    - Cherche le sous-intervalle auquel appartient cet aléatoire et retourne l'index correspondant.

    La variable questions est un tableau dont chaque élément est un objet relatif à une question et contenant toutes les propriétés dont on a besoin.
    Exemple, par rapport au code de départ, si on veut aller sur une page liée à une question quand on clique sur le bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function rng()
    	{
    	window.location=questions[indexAleatoire(questions,"coefProba")].url;
    	}
    var questions=
    	[
    	{coefProba:2,url:"Page test 1.html"},
    	{coefProba:1,url:"Page test 2.html"},
    	{coefProba:3,url:"Page test 3.html"},
    	{coefProba:1,url:"Page test 4.html"},
    	{coefProba:5,url:"Page test 5.html"}
    	];
    (Les espaces dans les noms de fichiers, c'est plutôt à éviter.)

    La fonction indexAleatoire va retourner l'index d'une des questions en respectant les coefficients de probabilité :
    La question numéro 1 a deux fois plus de chances d'être sélectionnée que la numéro 2.
    Si on veut qu'une question ne soit plus tirée, on peut mettre son coefficient à 0.

    Pour la suite, il serait plus simple de rester sur la page en cours et d'en faire varier dynamiquement le contenu, car autrement, il va falloir mémoriser les probabilités sur le client ou le serveur.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Bon je viens de demander a mon prof si on devait absolument faire toutes les fonctionnalités du projet pour potentiellement avoir 20/20. Il ma dit non… Du coup je peux juste faire un truc équiprobable pour chaque page sans que les probabilités changent. Merci pour ton aide et le temps que tu as consacré Je veux apprendre correctement le JS pendant les vacances sans devoir me forcer a ignorer les points importants donc je reviendrais sûrement en cas de questions. Bonne journée

  6. #6
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    Merci pour ces nouvelles.
    J'y repensais justement.
    Citation Envoyé par -Phi- Voir le message
    Il ma dit non…
    Etonnant, mais tant mieux, car le projet me paraît en effet un peu complexe si on découvre le JS.

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

Discussions similaires

  1. Réaliser un questionnaire à partir d’un fichier en entrée
    Par Zamiss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/02/2019, 08h33
  2. [Débutant] Réalisation d'un questionnaire
    Par gregm954 dans le forum VB.NET
    Réponses: 6
    Dernier message: 12/08/2016, 04h26
  3. Réalisation d'un questionnaire
    Par vbavba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/06/2013, 20h37
  4. Réalisation d'un questionnaire informatique
    Par Okeano dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 22/02/2011, 22h40
  5. Questionnaire à réaliser avec XSL et XML
    Par olive.m dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 19/11/2003, 16h37

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