Page 1 sur 1

Problème QCM

Posté : 07 déc. 2010, 18:28
par Awa2i
Bonjour à tous,

Je dois faire un QCM en php, avec des réponses à cocher. Jusque là, ça va.
Ensuite, je dois faire une page qui compte les points qu'on a eu en répondant au questions (en fonction de si c'était bon, ou non).
Et là je sais pas comment faire. Si je donne une valeur "1" aux bonnes réponses et "0" aux mauvaises, ça marche pas.
La variable du score correspond toujours à la dernière réponse cochée.

Je vous montre un bout de code pour que ce soit plus clair:
1. Le HTML est:<br>
<br><input type="checkbox" name="Q1" value="1" /> Un langage informatique <br>
<input type="checkbox" name="Q1" value="0" /> Un langage de programmation <br>
<input type="checkbox" name="Q1" value="0" /> Un langage de requête <br>
<input type="checkbox" name="Q1" value="1" /> Un langage de présentation de document<br>

Donc par exemple, si je coche la première et la deuxième réponse, ça me renverra "0" comme score, alors que ça devrait être "1". Et je vois pas comment faire.

Merci d'avance :)

Re: Problème QCM

Posté : 07 déc. 2010, 18:42
par xTG
C'est un problème d'algo tout ça...

Si les réponses donnent : 1, 0 , 0, 1
Et que le but est d'obtenir 2pts sinon rien :

Code : Tout sélectionner

points = 0 Si reponse1 == cochée Alors points = points * reponse1.valeur Fin Si // idem pour les trois autres
Ce qui nous donnera bien 2pts maxi et sinon 0.

Après il y a d'autres façon de compter les points mais comme tu n'as pas indiqué une quelconque règle. :)

Re: Problème QCM

Posté : 07 déc. 2010, 18:48
par Awa2i
Le but est en fait d'avoir 0, 1 ou 2 points (c'est vrai que je ne l'avais pas précisé :))

Le truc c'est que utiliser des if, ça risque d'être très long (j'ai 10 questions en tout dans le QCM, donc une bonne cinquantaine de réponses en tout, donc un nombre assez important de "if" au final).

Penses-tu qu'avec un "switch" ce soit faisable ? Si oui, comment dois-je m'y prendre ?

Merci pour ta réponse :D

Re: Problème QCM

Posté : 07 déc. 2010, 19:39
par xTG
Un switch c'est un if en plus joli... Tu n'y gagnes qu'en lisibilité et encore. ^^

Mais moi je vois un gros soucis dans ta conception... Checkbox, donc si je coche tout j'ai tous les points ?
Quel est l'impact sur le résultat si je coche quelque chose de faux ?

Re: Problème QCM

Posté : 07 déc. 2010, 19:52
par Awa2i
Le switch permet de pas avoir à faire des choses inutiles en fait, c'est surtout là l'intérêt.

Je t'avoue que je n'avais pas pensé à ce cas de figure là.
Du coup, comment je peux m'y prendre ?

Re: Problème QCM

Posté : 07 déc. 2010, 22:24
par xTG
Le switch n'est qu'une façon de représenter des if...
Passer d'un switch à une série de if ne change rien si ce n'est la syntaxe.
Ce sont deux algorithmes différents qui possèdent le même rendement.

Pour ton soucis de points l'algo est super simple quand on y réfléchi une seconde.
Il y a trois cas à mettre en évidement : Quand obtient-on 0, 1 et 2pts.
Il suffit de les écrire sous forme de français littéraire, à partir de là tu pourras le retranscrire aisément en algo puis en code.

Au pire tu commences encore plus bas, tu fais toutes les combinaisons possibles (il y en a pas des masses à partir de 4 checkbox) et tu trouves ce qui se ressemble pour ressortir les trois cas.

Je veux bien aider (chose que je fais actuellement) mais j'avoue ne pas aimer donner une solution quand la personne ne cherche pas. On ne code pas quand on n'arrive pas à comprendre le cahier des charges, et encore moins quand on ne sait pas le rédiger (cela sous entend qu'on ne sait pas ce que l'on va coder : une machine à café ou un système de protection de centrale nucléaire ?).