Cochez les cases qui vous semblent justes, il peut y en avoir plusieurs par ligne.
Quand vous pensez avoir fini, cliquez sur le bouton soumettre votre réponse .
function qcm(num,sol)
{
var fo=document.forms[num];
//on compte tous les éléments du formulaire et on retire le nombre de boutons
var choix=0;
choix=fo.elements.length-4;
//on crée un tableau de résultats avec des 0 et des 1
var bin=new Array();
for(var i=0;i<choix;i++)
{
if (fo.elements[i].checked)
{bin[i]=1;}
else {bin[i]=0;}
}
//on transforme le tableau en chaîne
var binaire="";
binaire=bin.join("");
//on compte les erreurs en comparant la chaîne obtenue avec la chaîne solution
var erreurs=0;
for(var k=0;k<choix;k++)
{
if(sol.charAt(k)!=bin[k])
{ erreurs++;
}
}
//on remplit la zone de texte
if(erreurs==0)
{
fo.diagnostic.value="c'est tout juste";
}
else
{
var pluriel=" ";
if(erreurs!=1)
{ pluriel="s";
}
fo.diagnostic.value=" vous avez fait "+erreurs+" faute"+pluriel;
}
}
La fonction qcm() dépend de deux paramètres
document.forms[num] représente le formulaire de rang num.
if (fo.elements[i].checked) teste si l'élément de rang i du formulaire est coché ou pas.
if(sol.charAt(k)!=bin[k]) teste si le caractère de rang k de la chaîne de caractères
sol est égal différente de l'élément de rang k du tableau bin.
if(erreurs==0) teste si la variable erreurs est nulle ou pas. Un seul signe =
sert à affecter une valeur à une variable; il n'aurait pas suffit .