code utilisé: elements , forms , checked , charAt() , ==
méthodes utilisées : fonction avec paramètres, case à cocher, transformation d'un tableau en chaîne

Fabriquer un qcm en Javascript

un exemple

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 .

Javascript a été écrit par Marilyn Manson Brendan Eich Allison Cameron
c'est un langage interprété compilé orienté objet
son nom officiel est Java Jscript ECMAScript
il est compatible Windows Apple Linux


Le code


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 .