Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : question/type/regexp, celle pour les versions 3.x de Moodle est consultable ici : question/type/regexp et celle pour Moodle 4.x est consultable là : question/type/regexp.

« question/type/regexp » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
m (Simplification du formatage (syntaxe wiki))
Ligne 1 : Ligne 1 :
===Questions à réponse courte avec expressions régulières===
===Questions à réponse courte avec expressions régulières===


Tout comme la question à réponse courte, la question à réponse courte de type "expression régulière" attend de la part de l'élève une réponse à une question "ouverte", consistant en un ou plusieurs mots ou une courte phrase. Cependant, l'utilisation des expressions régulières vous donne accès à un puissant système d'analyse de la réponse des élèves.
Tout comme la question à réponse courte, la question à réponse courte de type "Expression régulière" attend de la part de l'élève une réponse à une question "ouverte", consistant en un ou plusieurs mots ou une courte phrase. Cependant, l'utilisation des expressions régulières vous donne accès à un puissant système d'analyse de la réponse des élèves.


===Réponse correcte correspondant à une expression régulière===
===Réponse correcte correspondant à une expression régulière===
Ligne 11 : Ligne 11 :
Dans le champ Solution 1 vous pourriez saisir la "meilleure réponse" attendue, par exemple "il est bleu, blanc, rouge". Pour plus de détails voir [[#firstcorrect|Première réponse correcte]] plus loin.
Dans le champ Solution 1 vous pourriez saisir la "meilleure réponse" attendue, par exemple "il est bleu, blanc, rouge". Pour plus de détails voir [[#firstcorrect|Première réponse correcte]] plus loin.


Dans le champ Solution 2 vous pourriez saisir cette expression régulière : "(il est |)bleu, blanc(,| et) rouge/i" (il ne faut pas taper les guillements, bien sûr ). Cette expression acceptera n'importe laquelle des réponses suivantes:
Dans le champ Solution 2 vous pourriez saisir cette expression régulière : "(il est |)bleu, blanc(,| et) rouge/i" (il ne faut pas taper les guillemets, bien sûr). Cette expression acceptera n'importe laquelle des réponses suivantes :


* il est bleu, blanc, rouge
* il est bleu, blanc, rouge
Ligne 22 : Ligne 22 :
Notez que par défaut une expression régulière est sensible à la casse (minuscules/majuscules). Pour rendre l'expression insensible à la casse, vous ajouterez le paramètre '''/i''' tout à la fin de l'expression.
Notez que par défaut une expression régulière est sensible à la casse (minuscules/majuscules). Pour rendre l'expression insensible à la casse, vous ajouterez le paramètre '''/i''' tout à la fin de l'expression.


'''Example 2'''. (en anglais) Question : "What is blue, or red, or yellow?". Réponse : "(|it's )a colou?r". Cette expression acceptera n'importe laquelle des réponses suivantes :
'''Exemple 2'''. (en anglais) Question : "What is blue, or red, or yellow?". Réponse : "(|it's )a colou?r". Cette expression acceptera n'importe laquelle des réponses suivantes :


* a colour
* a colour
Ligne 29 : Ligne 29 :
* it's a color
* it's a color


'''Note'''.- Le début de cette expression régulière "'''(|it's )'''" acceptera comme réponse soit rien soit "'''it's''' " (attention : '''it's''' suivi d'une espace). Le point d'interrogation signifie : le caractère qui précède, employé zéro ou une fois ; nous l'utilisons ici pour accepter aussi bien l'orthographe anglaise ('''colour''') qu'américaine ('''color''').
'''Note'''.- Le début de cette expression régulière "'''(|it's )'''" acceptera comme réponse soit rien soit "'''it's''' " (attention : '''it's''' suivi d'une espace). Le point d'interrogation signifie : le caractère qui précède, employé zéro ou une fois ; nous l'utilisons ici pour accepter aussi bien l'orthographe anglaise ('''colour''') qu'américaine ('''color''').


'''Exemple 3.''' (en anglais encore) Question: "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettreu du milieu ets la voyelle ''a''". Réponse : "[bcr]at". Ce qui acceptera les 3 réponses : '''bat''', '''cat''' et '''rat'''.
'''Exemple 3.''' (en anglais encore) Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle ''a''". Réponse : "[bcr]at". Ce qui acceptera les 3 réponses : '''bat''', '''cat''' et '''rat'''.


===Détection des mots ou chaînes de caractères manquants===
===Détection des mots ou chaînes de caractères manquants===


Les expressions régulières seules ne permettent pas de détecter des mots ou groupes de lettres absents de la réponse d'un élève, il faudra donc ajouter un petit code pour y arriver. Toute réponse prévue par le professeur qui commencera par un double tiret analysera la réponse de l'élève pour voir si la chaîne de caractères qui suit est présente ou absente. Si cette chaîne est présente, l'analyse continuera jusqu'à la réponse prévue suivante ; si la chaîne est absente, l'analyse s'arrêtera et le mesage de feedback prévu s'affichera.
Les expressions régulières seules ne permettent pas de détecter des mots ou groupes de lettres absents de la réponse d'un élève, il faudra donc ajouter un petit code pour y arriver. Toute réponse prévue par le professeur qui commencera par un double tiret analysera la réponse de l'élève pour voir si la chaîne de caractères qui suit est présente ou absente. Si cette chaîne est présente, l'analyse continuera jusqu'à la réponse prévue suivante ; si la chaîne est absente, l'analyse s'arrêtera et le message de feedback prévu s'affichera.


'''Exemple 4. '''Question sur les couleurs du drapeau français.
'''Exemple 4. '''Question sur les couleurs du drapeau français.
Ligne 43 : Ligne 43 :
* Feedback 2: <span class="c_computeroutput">Il manque la couleur du ciel !</span>
* Feedback 2: <span class="c_computeroutput">Il manque la couleur du ciel !</span>


Ici, le point signifie "n'importe quel caractère, et l'astérisque signifie "le caractère qui précède, répété un nombre quelconque de fois". La réponse prévue n°&nbsp;2 ci-dessus signifie&nbsp;: vérifier si la chaîne de caractères "bleu", précédée de n'importe quoi et suivie de n'importe quoi est absente de la réponse de l'élève. Notez que l'usage de l'astérisque est légèrement différent dans les questions de type Réponse Courte et dans les questions de type Réponse Courte avec expressions régulières.
Ici, le point signifie "n'importe quel caractère, et l'astérisque signifie "le caractère qui précède, répété un nombre quelconque de fois". La réponse prévue n° 2 ci-dessus signifie : vérifier si la chaîne de caractères "bleu", précédée de n'importe quoi et suivie de n'importe quoi est absente de la réponse de l'élève. Notez que l'usage de l'astérisque est légèrement différent dans les questions de type Réponse Courte et dans les questions de type Réponse Courte avec expressions régulières.


'''Exemple 5.''' Question: "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettreu du milieu ets la voyelle ''a''". Réponse prévue&nbsp;: "--[b|c|r]". Feedback: "Votre réponse devrait commencer par l'une de ces 3 lettres : '''b''', '''c''' ou '''r'''".
'''Exemple 5.''' Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle ''a''". Réponse prévue : "--[b|c|r]". Feedback : "Votre réponse devrait commencer par l'une de ces 3 lettres : '''b''', '''c''' ou '''r'''".


===Échapper les caractères spéciaux===
===Échapper les caractères spéciaux===


Si vous avez besoin dans vos réponses prévues de caractères qui font partie de la liste des '''caractères spéciaux''' utilisés dans la syntaxe des expressions régulières, vous devrez les "échapper", c-a-d les faire précéder d'une barre oblique inverse. Par exemple si vous voulez accepter la réponse "Cet ordinateur vaut 1&nbsp;000$", vous écrirez ainsi l'expression régulière: "Cet ordinateur vaut 1&nbsp;000\$". Voici la liste complète des caractères spéciaux qui doivent être échappés&nbsp;: '''^&nbsp;$&nbsp;*&nbsp;(&nbsp;)&nbsp;[&nbsp;]&nbsp;+&nbsp;?&nbsp;|&nbsp;{&nbsp;}'''
Si vous avez besoin dans vos réponses prévues de caractères qui font partie de la liste des '''caractères spéciaux''' utilisés dans la syntaxe des expressions régulières, vous devrez les "échapper", c-a-d les faire précéder d'une barre oblique inverse. Par exemple si vous voulez accepter la réponse "Cet ordinateur vaut 1 000$", vous écrirez ainsi l'expression régulière: "Cet ordinateur vaut 1 000\$". Voici la liste complète des caractères spéciaux qui doivent être échappés : '''^ $ * ( ) [ ] + ? | { }'''


===Edition des Réponses en mode professeur===
===Édition des Réponses en mode professeur===


====Affichage du bouton Indice====
====Affichage du bouton Indice====
Ligne 63 : Ligne 63 :
Pour un certain nombre de raisons, la façon d'entrer les solutions dans Solution 1 a changé depuis la version de février 2007. Pour la Solution 1 vous devez maintenant entrer un texte qui a) est la "meilleure" réponse attendue possible; b) '''n'est pas''' une expression régulière ou - plus exactement - ne sera pas interprété comme telle mais comme du texte normal et c) à laquelle vous affectez une Note de 100%. Vous remarquerez que lors de la création d'une nouvelle question de type regexp, la Note attribuée à la Solution 1 est automatiquement mise sur 100%. Vous ne devez pas modifier ceci. Si par hasard vous le faisiez, un message d'erreur vous le signalerait lors de l'enregistrement de votre question, et vous donnerait la possibilité de faire marche arrière pour corriger l'erreur. Message: "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?"
Pour un certain nombre de raisons, la façon d'entrer les solutions dans Solution 1 a changé depuis la version de février 2007. Pour la Solution 1 vous devez maintenant entrer un texte qui a) est la "meilleure" réponse attendue possible; b) '''n'est pas''' une expression régulière ou - plus exactement - ne sera pas interprété comme telle mais comme du texte normal et c) à laquelle vous affectez une Note de 100%. Vous remarquerez que lors de la création d'une nouvelle question de type regexp, la Note attribuée à la Solution 1 est automatiquement mise sur 100%. Vous ne devez pas modifier ceci. Si par hasard vous le faisiez, un message d'erreur vous le signalerait lors de l'enregistrement de votre question, et vous donnerait la possibilité de faire marche arrière pour corriger l'erreur. Message: "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?"


Note.- Il y a deux manières d'entrer une solution contenant des méta caractères ('''^&nbsp;$&nbsp;*&nbsp;(&nbsp;)&nbsp;[&nbsp;]&nbsp;+&nbsp;?&nbsp;|&nbsp;{&nbsp;}'''), selon qu'il s'agit de la Solution 1 ou de l'une des solutions suivantes. Exemple: combien coûte cet ordinateur américain?
Note.- Il y a deux manières d'entrer une solution contenant des méta caractères ('''^ $ * ( ) [ ] + ? | { }'''), selon qu'il s'agit de la Solution 1 ou de l'une des solutions suivantes. Exemple : combien coûte cet ordinateur américain ?


Solution 1: Il vaut 1 000$.
Solution 1: Il vaut 1 000$.
Ligne 77 : Ligne 77 :
===Prévisualisation des questions dans une fenêtre popup (pour le professeur seulement)===
===Prévisualisation des questions dans une fenêtre popup (pour le professeur seulement)===


Lorsque le professeur prévisualise une question dans la fenêtre popup il peut désormais également voir la liste complète des solutions alternatives acceptables. Ces solutions alternatives sont automatiquement générées à partir des expressions régulières que vous avez entrées en créant la question et auxquelles vous avez attribué une note supérieure à 0%. La toute première solution (Solution 1) est affichée en tête de liste. Elle est suivie des autres solutions acceptables, sous la forme suivante: a) la note attribuée; b) un rappel de votre expression régulière et c) la liste des solutions générées par cette expression régulière.
Lorsque le professeur prévisualise une question dans la fenêtre popup il peut désormais également voir la liste complète des solutions alternatives acceptables. Ces solutions alternatives sont automatiquement générées à partir des expressions régulières que vous avez entrées en créant la question et auxquelles vous avez attribué une note supérieure à 0%. La toute première solution (Solution 1) est affichée en tête de liste. Elle est suivie des autres solutions acceptables, sous la forme suivante : a) la note attribuée; b) un rappel de votre expression régulière et c) la liste des solutions générées par cette expression régulière.


Actuellement le seul mécanisme de vérification de la validité des expressions régulières entrées par le professeur consiste à vérifier que les parenthèses ouvertes sont bien toutes refermées (ainsi que les crochets carrés, si vous les utilisez). Si le nombre de parenthèses (ou de crochets carrés) ouvertes ne correspond pas au nombre de parenthèses fermées, un message d'erreur vous en avertira, qui précisera l'expression régulière où l'erreur a été détectée ainsi que la nature de l'erreur (mais pas l'emplacement exact). Vous devrez immédiatement corriger l'expression régulière fautive dans la question en cours de prévisualisation.
Actuellement le seul mécanisme de vérification de la validité des expressions régulières entrées par le professeur consiste à vérifier que les parenthèses ouvertes sont bien toutes refermées (ainsi que les crochets carrés, si vous les utilisez). Si le nombre de parenthèses (ou de crochets carrés) ouvertes ne correspond pas au nombre de parenthèses fermées, un message d'erreur vous en avertira, qui précisera l'expression régulière où l'erreur a été détectée ainsi que la nature de l'erreur (mais pas l'emplacement exact). Vous devrez immédiatement corriger l'expression régulière fautive dans la question en cours de prévisualisation.


Toute autre erreur dans une expression régulière déclenchera l'un ou l'autre des comportements suivants lors de l'ouverture de la fenêtre popup de prévisualisation&nbsp;: a) une erreur de PHP du genre ['''''Fatal error'''<nowiki>: Maximum execution time of 30 seconds exceeded etc.</nowiki>'' ] ou bien b) pas de message d'erreur mais, en cliquant sur le bouton Afficher les réponses alternatives, vous pourrez constater que certaines des solutions générées par l'expression régulière fautive sont en fait inacceptables. Il vous faudra alors immédiatement revenir en mode édition pour essayer de repérer l'expression régulière fautive et la corriger.
Toute autre erreur dans une expression régulière déclenchera l'un ou l'autre des comportements suivants lors de l'ouverture de la fenêtre popup de prévisualisation : a) une erreur de PHP du genre ['''''Fatal error'''<nowiki>: Maximum execution time of 30 seconds exceeded etc.</nowiki>'' ] ou bien b) pas de message d'erreur mais, en cliquant sur le bouton Afficher les réponses alternatives, vous pourrez constater que certaines des solutions générées par l'expression régulière fautive sont en fait inacceptables. Il vous faudra alors immédiatement revenir en mode édition pour essayer de repérer l'expression régulière fautive et la corriger.


===Insertion de sous-questions de type regexp dans une question de type Close===
===Insertion de sous-questions de type regexp dans une question de type Close===
Ligne 93 : Ligne 93 :
|}
|}


Voici 2 exemples de syntaxe à utiliser pour ce type d'insertion:
Voici 2 exemples de syntaxe à utiliser pour ce type d'insertion :


* Les couleurs du drapeau français sont&nbsp;: {:REGEXP:=bleu, blanc, rouge#Correct!~=<span class="c_computeroutput">le bleu, le blanc(,| et) le rouge </span><nowiki>#Correct!~--.*bleu.*#Il manque la couleur du ciel.} </nowiki>
* Les couleurs du drapeau français sont : {:REGEXP:=bleu, blanc, rouge#Correct!~=<span class="c_computeroutput">le bleu, le blanc(,| et) le rouge </span><nowiki>#Correct!~--.*bleu.*#Il manque la couleur du ciel.} </nowiki>
* Les couleurs du drapeau français sont&nbsp;: {:REGEXP:%100%bleu, blanc, rouge#Correct!~%100%<span class="c_computeroutput">le bleu, le blanc(,| et) le rouge </span><nowiki>#Correct!~%0%--.*bleu.*#Il manque la couleur du ciel.} </nowiki>
* Les couleurs du drapeau français sont : {:REGEXP:%100%bleu, blanc, rouge#Correct!~%100%<span class="c_computeroutput">le bleu, le blanc(,| et) le rouge </span><nowiki>#Correct!~%0%--.*bleu.*#Il manque la couleur du ciel.} </nowiki>


Veuiller noter que, comme expliqué ci-dessus, la toute première solution doit avoir une note de 100% et ne doit pas être une expression régulière. Dans la syntaxe du type de question Cloze, une note de 100% s'écrit soit '''<nowiki>=</nowiki>''' soit '''%100%'''. Comme indiqué plus haut, si vous oubliez par hasard d'attribuer la note de 100% à la toute première solution de votre liste, au moment d'enregistrer votre question Cloze un message d'erreur vous en avertira. Toutefois, si vous voyez le message "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?" ''vous ne devez pas cliquer sur le bouton Oui'', mais sur le bouton '''Non''', puis retourner dans votre question Cloze et faire la correction nécessaire.
Veuillez noter que, comme expliqué ci-dessus, la toute première solution doit avoir une note de 100% et ne doit pas être une expression régulière. Dans la syntaxe du type de question Cloze, une note de 100% s'écrit soit '''<nowiki>=</nowiki>''' soit '''%100%'''. Comme indiqué plus haut, si vous oubliez par hasard d'attribuer la note de 100% à la toute première solution de votre liste, au moment d'enregistrer votre question Cloze un message d'erreur vous en avertira. Toutefois, si vous voyez le message "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?" ''vous ne devez pas cliquer sur le bouton Oui'', mais sur le bouton '''Non''', puis retourner dans votre question Cloze et faire la correction nécessaire.


Veuillez noter que la syntaxe des sous-questions insérées dans une question de type Cloze doit être suivie à la lettre et qu'il ne faut jamais copier-coller du texte depuis votre traitement de texte vers le texte d'une question de type Cloze sous peine d'en empêcher le bon fonctionnement.
Veuillez noter que la syntaxe des sous-questions insérées dans une question de type Cloze doit être suivie à la lettre et qu'il ne faut jamais copier-coller du texte depuis votre traitement de texte vers le texte d'une question de type Cloze sous peine d'en empêcher le bon fonctionnement.

Version du 8 février 2011 à 09:12

Questions à réponse courte avec expressions régulières

Tout comme la question à réponse courte, la question à réponse courte de type "Expression régulière" attend de la part de l'élève une réponse à une question "ouverte", consistant en un ou plusieurs mots ou une courte phrase. Cependant, l'utilisation des expressions régulières vous donne accès à un puissant système d'analyse de la réponse des élèves.

Réponse correcte correspondant à une expression régulière

Il est impossible de fournir des exemples complets des vastes possibilités offertes par ce système, mais voici quelques possibilités.

Exemple 1. Supposons que votre question soit "Donnez les couleurs du drapeau français".

Dans le champ Solution 1 vous pourriez saisir la "meilleure réponse" attendue, par exemple "il est bleu, blanc, rouge". Pour plus de détails voir Première réponse correcte plus loin.

Dans le champ Solution 2 vous pourriez saisir cette expression régulière : "(il est |)bleu, blanc(,| et) rouge/i" (il ne faut pas taper les guillemets, bien sûr). Cette expression acceptera n'importe laquelle des réponses suivantes :

  • il est bleu, blanc, rouge
  • il est bleu, blanc et rouge
  • Il est bleu, blanc, rouge
  • Il est bleu, blanc et rouge
  • bleu, blanc, rouge
  • bleu, blanc et rouge

Notez que par défaut une expression régulière est sensible à la casse (minuscules/majuscules). Pour rendre l'expression insensible à la casse, vous ajouterez le paramètre /i tout à la fin de l'expression.

Exemple 2. (en anglais) Question : "What is blue, or red, or yellow?". Réponse : "(|it's )a colou?r". Cette expression acceptera n'importe laquelle des réponses suivantes :

  • a colour
  • a color
  • it's a colour
  • it's a color

Note.- Le début de cette expression régulière "(|it's )" acceptera comme réponse soit rien soit "it's " (attention : it's suivi d'une espace). Le point d'interrogation signifie : le caractère qui précède, employé zéro ou une fois ; nous l'utilisons ici pour accepter aussi bien l'orthographe anglaise (colour) qu'américaine (color).

Exemple 3. (en anglais encore) Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle a". Réponse : "[bcr]at". Ce qui acceptera les 3 réponses : bat, cat et rat.

Détection des mots ou chaînes de caractères manquants

Les expressions régulières seules ne permettent pas de détecter des mots ou groupes de lettres absents de la réponse d'un élève, il faudra donc ajouter un petit code pour y arriver. Toute réponse prévue par le professeur qui commencera par un double tiret analysera la réponse de l'élève pour voir si la chaîne de caractères qui suit est présente ou absente. Si cette chaîne est présente, l'analyse continuera jusqu'à la réponse prévue suivante ; si la chaîne est absente, l'analyse s'arrêtera et le message de feedback prévu s'affichera.

Exemple 4. Question sur les couleurs du drapeau français.

  • Réponse 2: --.*bleu.*/i
  • réponse de l'élève : "il est blanc et rouge "
  • Feedback 2: Il manque la couleur du ciel !

Ici, le point signifie "n'importe quel caractère, et l'astérisque signifie "le caractère qui précède, répété un nombre quelconque de fois". La réponse prévue n° 2 ci-dessus signifie : vérifier si la chaîne de caractères "bleu", précédée de n'importe quoi et suivie de n'importe quoi est absente de la réponse de l'élève. Notez que l'usage de l'astérisque est légèrement différent dans les questions de type Réponse Courte et dans les questions de type Réponse Courte avec expressions régulières.

Exemple 5. Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle a". Réponse prévue : "--[b|c|r]". Feedback : "Votre réponse devrait commencer par l'une de ces 3 lettres : b, c ou r".

Échapper les caractères spéciaux

Si vous avez besoin dans vos réponses prévues de caractères qui font partie de la liste des caractères spéciaux utilisés dans la syntaxe des expressions régulières, vous devrez les "échapper", c-a-d les faire précéder d'une barre oblique inverse. Par exemple si vous voulez accepter la réponse "Cet ordinateur vaut 1 000$", vous écrirez ainsi l'expression régulière: "Cet ordinateur vaut 1 000\$". Voici la liste complète des caractères spéciaux qui doivent être échappés : ^ $ * ( ) [ ] + ? | { }

Édition des Réponses en mode professeur

Affichage du bouton Indice

Il est possible d'afficher un bouton Indice pour permettre à l'étudiant d'acheter une lettre. Le bouton Indice ne sera disponible pour l'étudiant que si dans le Test le paramètre Mode adaptatif a été réglé sur Oui. Si le paramètre Appliquer les pénalités a été activé dans les réglages du test, une pénalité correspondant au Facteur de pénalité sera appliquée à chaque "achat" de lettre par l'étudiant. Lorsque l'étudiant fait le test et qu'un bouton Indice est présent, en passant la souris sur ce bouton il verra s'afficher la pénalité que lui coûtera l'achat d'une lettre.

Chaque fois que l'étudiant clique sur le bouton Indice pour acheter une lettre, un caractère paragraphe invisible ( ¶ ) est ajouté au texte de sa réponse. Plus tard, lorsque le professeur visualise les résultats du test pour chaque étudiant, il peut voir ce caractère paragraphe à la fin de chaque réponse pour laquelle l'étudiant a demandé de l'aide.

Première réponse correcte

Pour un certain nombre de raisons, la façon d'entrer les solutions dans Solution 1 a changé depuis la version de février 2007. Pour la Solution 1 vous devez maintenant entrer un texte qui a) est la "meilleure" réponse attendue possible; b) n'est pas une expression régulière ou - plus exactement - ne sera pas interprété comme telle mais comme du texte normal et c) à laquelle vous affectez une Note de 100%. Vous remarquerez que lors de la création d'une nouvelle question de type regexp, la Note attribuée à la Solution 1 est automatiquement mise sur 100%. Vous ne devez pas modifier ceci. Si par hasard vous le faisiez, un message d'erreur vous le signalerait lors de l'enregistrement de votre question, et vous donnerait la possibilité de faire marche arrière pour corriger l'erreur. Message: "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?"

Note.- Il y a deux manières d'entrer une solution contenant des méta caractères (^ $ * ( ) [ ] + ? | { }), selon qu'il s'agit de la Solution 1 ou de l'une des solutions suivantes. Exemple : combien coûte cet ordinateur américain ?

Solution 1: Il vaut 1 000$.

Solution 2: Il (m')?a couté 1 000\$\.

Dans Solution 1 vous tapez la réponse attendue telle quelle. Dans la Solution 2 en revanche vous devez "échapper" les méta-caractères $ et point final.

Autres Solutions (Solution 2, 3, etc.)

Toute solution avec une Note supérieure à 0% doit être entrée sous forme d'une expression régulière qui peut générer des réponses alternatives acceptables (que la note soit de 100% ou inférieure). Ceci veut dire que vous ne pouvez pas entrer une solution ayant une Note supérieure à 0% et commençant par un double tiret --, syntaxe utilisée pour détecter l'absence de mots, comme expliqué plus haut.

Prévisualisation des questions dans une fenêtre popup (pour le professeur seulement)

Lorsque le professeur prévisualise une question dans la fenêtre popup il peut désormais également voir la liste complète des solutions alternatives acceptables. Ces solutions alternatives sont automatiquement générées à partir des expressions régulières que vous avez entrées en créant la question et auxquelles vous avez attribué une note supérieure à 0%. La toute première solution (Solution 1) est affichée en tête de liste. Elle est suivie des autres solutions acceptables, sous la forme suivante : a) la note attribuée; b) un rappel de votre expression régulière et c) la liste des solutions générées par cette expression régulière.

Actuellement le seul mécanisme de vérification de la validité des expressions régulières entrées par le professeur consiste à vérifier que les parenthèses ouvertes sont bien toutes refermées (ainsi que les crochets carrés, si vous les utilisez). Si le nombre de parenthèses (ou de crochets carrés) ouvertes ne correspond pas au nombre de parenthèses fermées, un message d'erreur vous en avertira, qui précisera l'expression régulière où l'erreur a été détectée ainsi que la nature de l'erreur (mais pas l'emplacement exact). Vous devrez immédiatement corriger l'expression régulière fautive dans la question en cours de prévisualisation.

Toute autre erreur dans une expression régulière déclenchera l'un ou l'autre des comportements suivants lors de l'ouverture de la fenêtre popup de prévisualisation : a) une erreur de PHP du genre [Fatal error: Maximum execution time of 30 seconds exceeded etc. ] ou bien b) pas de message d'erreur mais, en cliquant sur le bouton Afficher les réponses alternatives, vous pourrez constater que certaines des solutions générées par l'expression régulière fautive sont en fait inacceptables. Il vous faudra alors immédiatement revenir en mode édition pour essayer de repérer l'expression régulière fautive et la corriger.

Insertion de sous-questions de type regexp dans une question de type Close

Note importante

La question de type RegExp n'est pas reconnue par la question de type Close de Moodle. Si vous souhaitez inclure des questions de type RegExp dans une question de type Close, vous devrez remplacer le fichier question/type/multianswer/questiontype.php de la distribution standard de Moodle par une version modifiée. Voir les détails sur le site Modules and Plugins de Moodle.

Voici 2 exemples de syntaxe à utiliser pour ce type d'insertion :

  • Les couleurs du drapeau français sont : {:REGEXP:=bleu, blanc, rouge#Correct!~=le bleu, le blanc(,| et) le rouge #Correct!~--.*bleu.*#Il manque la couleur du ciel.}
  • Les couleurs du drapeau français sont : {:REGEXP:%100%bleu, blanc, rouge#Correct!~%100%le bleu, le blanc(,| et) le rouge #Correct!~%0%--.*bleu.*#Il manque la couleur du ciel.}

Veuillez noter que, comme expliqué ci-dessus, la toute première solution doit avoir une note de 100% et ne doit pas être une expression régulière. Dans la syntaxe du type de question Cloze, une note de 100% s'écrit soit = soit %100%. Comme indiqué plus haut, si vous oubliez par hasard d'attribuer la note de 100% à la toute première solution de votre liste, au moment d'enregistrer votre question Cloze un message d'erreur vous en avertira. Toutefois, si vous voyez le message "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?" vous ne devez pas cliquer sur le bouton Oui, mais sur le bouton Non, puis retourner dans votre question Cloze et faire la correction nécessaire.

Veuillez noter que la syntaxe des sous-questions insérées dans une question de type Cloze doit être suivie à la lettre et qu'il ne faut jamais copier-coller du texte depuis votre traitement de texte vers le texte d'une question de type Cloze sous peine d'en empêcher le bon fonctionnement.

Malheureusement le bouton Indice n'est pas disponible pour une sous-question de type regexp insérée dans une question de type Cloze.

Voir aussi