« Formules: Variables » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
(Page redirigée vers Types de questions tiers)
 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{Question de type Formules}}
#REDIRECT [[Types_de_questions_tiers]]
{{Traduction}}
 
Les variables peuvent être utilisées pour substituer des textes de question, définir les réponses et spécifier des critères de notation. L'un des principaux objectifs du système de variables est de simplifier la tâche pour faire des variations de question. Puisque les variables sont générées au début d'un test, le test sera arrêté si des erreurs surviennent. Par conséquent, afin de minimiser les erreurs, le système est conçu pour n'avoir que des variables déterministes, des listes de longueur constante et aucun branchement.
 
==Portée des variables==
Il y a quatre types de variables (au hasard, globales, locales et de notation) que vous pouvez définir et manipuler dans les champs suivants :
 
{| class="nicetable"
|-
! Champ
! Portée d'application
|-
| Variables au hasard (ou aléatoires)
| L'endroit pour définir la variation des variables pour l'ensemble de la question.
|-
| Variables globales
| La portée inclut toutes les variables aléatoires (instanciées).
|-
| Variables locales
| La portée inclut toutes les variables globales. Remarque: Chaque sous-question a sa propre portée de variables locales.
|-
| Variables de notation
| La portée inclut toutes les variables locales, plus des variables spéciales (par exemple _0, _1) en fonction de la réponse des étudiants.
|}
 
De plus, vous pouvez utiliser les quatre types de variables dans les champs suivants :
 
{| class="nicetable"
|-
! Champ
! Portée d'application
|-
| Texte de la question principale
| Toutes les variables globales peuvent être utilisées en substitution.
|-
| Texte de la partie
| Toutes les variables locales pour la partie peuvent être utilisées en substitution.
|-
| Réponse
| Toutes les variables locales pour la partie peuvent être utilisées dans l'expression.
|-
| Critère de notation
| Toutes les variables de notation peuvent être utilisées dans l'expression.
|}
 
==Nom des variables==
 
Un nom de variable est une chaîne de caractères alphanumériques sans accent (<span style="font-family:monospace;font-size:113%;">a-z</span>, <span style="font-family:monospace;font-size:113%;">A-Z</span>, <span style="font-family:monospace;font-size:113%;">0-9</span> et <span style="font-family:monospace;font-size:113%;">_</span>) qui ne peut pas commencer par un nombre ou un trait de soulignement. Des exemples de noms de variable valides sont comme suit :
 
<pre style="font-size:113%;">
x, y1, z_1, toto_tutu, maPremiereVariable
</pre>
 
Le nom des variables est sensible à la casse de sorte que, par exemple, les noms suivants désignent quatre variables différentes :
 
<pre style="font-size:113%;">
tototutu, TotoTutu, totoTutu, TOTOTUTU
</pre>
 
==Types de variables==
 
Chaque variable sera affectée implicitement d'un type. Le type est soit ''nombre'', ''chaîne'' ou ''variable algébrique'', ou ''liste de nombres'' ou ''liste de chaînes''. Une liste est définie comme des éléments entourés par [ et ]. On peut référer à un élément d'une liste en utilisant la syntaxe A[b], par exemple [4,5,6][0] donne le premier nombre, c'est-à-dire 4. Ces types sont énumérés ci-dessous :
 
{| class="nicetable"
|-
! Type
! Description
|-
| Nombre
| Un nombre, par exemple : 1.2e-3.
|-
| Chaîne
| Caractères entourés de deux guillemets, par exemple "Bonjour".
|-
| Liste de nombres
| Nombres délimités par [ et ], par exemple [4,5,6]. La syntaxe courte équivalente est [4:7] ou [4:7:1].
|-
| Liste de chaînes
| Chaînes délimités par [ et ], par exemple ["A", "B", "C"].
|-
| Variable algébrique
| Il s'agit simplement d'un ensemble de nombres (voir la syntaxe) définis dans les portées de variables non aléatoires, par exemple: {1:100}.
|}
 
==Variables au hasard (aléatoires)==
 
Lors de la création du test, chaque variable aléatoire sera affectée par UNE valeur définie par l'expression. Par conséquent, chaque élève peut avoir son propre ensemble de valeurs pour une tentative de test.
 
Une variable aléatoire a une syntaxe différente des autres variables et elle n'est définie que dans le champ '''Variables au hasard'''. Ces variables peuvent être définies en assignant un ensemble d'éléments ou en mélangeant une liste. La probabilité de sélectionner chaque élément est égale de sorte que chaque élément a la même chance d'être tiré. Il y a trois types principaux d'expressions :
 
===Ensemble d'éléments===
Un ensemble d'éléments est constitué d'éléments délimités par { et }. Les éléments peuvent être des nombres, des chaînes, des listes de nombres ou des listes de chaînes. Par exemple, la variable ci-dessous est un ensemble de liste de nombres, et la probabilité pour l'élément [2,4] est de 1/5 :
 
<pre style="font-size:113%;">
F = {[0,0], [1,1], [2,4], [3,9], [4,16]};
</pre>
 
===Ensembre de nombres===
Un ensemble de nombres est constitué de nombres délimités par { et }. Vous pouvez également spécifier une plage au format {départ:arrêt:intervalle}, où les nombres satisfaisant (départ +  n*intervalle) < arrêt, n = 0,1,2,3, ..., seront générés. Si l'intervalle n'est pas spécifié, la valeur 1 sera utilisée. Notez que la valeur d'arrêt n'est pas incluse par définition, mais peut être incluse pour les non-entiers en raison d'erreurs numériques. Les ensembles de nombres définis ci-dessous démontrent différentes syntaxes de plage. Les probabilités des éléments dans chaque ensemble sont respectivement de 1/8, 1/10 et 1/20.
 
<pre style="font-size:113%;">
A = {1,2,3,4,5,6,7,8};
 
B = {0:1:0.1};
 
C = {1:10, 10:100:10, 100, 200};
</pre>
 
===Liste mélangée===
Une liste peut être passée à la fonction <span style="font-family:monospace;font-size:113%;">shuffle</span>. Dans l'exemple ci-dessous, la variable instanciée <span style="font-family:monospace;font-size:113%;">S</span> prend comme valeur l'une des permutations de la liste d'entrée, disons [4,3,2,5] ou [2,5,4,2]. La probabilité de chaque liste est donc de 1/4! = 1/24.
 
<pre style="font-size:113%;">
S = shuffle([2,3,4,5]);
</pre>
 
==Affectation de variable==
 
L'affectation de variable vous permet de définir et de manipuler des variables. Elle peut être définie dans le champ des variables globales, des variables locales et des variables de notation.
 
{| class="nicetable"
|-
! Composant
! Définition
|-
| Expression
| Toute combinaison de nombres et de variables avec les opérateurs et les fonctions listés ici ('''[[Formules:_Opérateurs|opérateurs]]''',  '''[[Formules:_Fonctions_numériques|fonctions numériques]]''' et '''[[Formules:_Fonctions_non_numériques|fonctions non numériques]]'''). Typiquement, c'est juste une formule mathématique simple évaluée à un nombre. Les variables utilisées dans l'expression doivent être définies auparavant.
|-
| Affectation
| Permet d'affecter le résultat évalué d'une expression à une variable, sous la forme <span style="font-family:monospace;font-size:113%;">nom = expression;</span>.
|-
| Boucle For
| Permet une itération simple sous la forme de <span style="font-family:monospace;font-size:113%;">for(élément:liste)</span>. Tous les éléments de la liste sont itérés.
|}
 
Des exemples d'affectations sont présentés ci-dessous :
 
{| class="nicetable"
|-
! Exemple
! Commentaires
 
|-
| <span style="font-family:monospace;font-size:113%;">a = 1; # commentaire</span>
| Le texte entre <span style="font-family:monospace;font-size:113%;">#</span> et la fin de la ligne est traité comme un commentaire.
|-
| <span style="font-family:monospace;font-size:113%;">b = exp(3.333);</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">d = round(b,1);</span>
| La fonction <span style="font-family:monospace;font-size:113%;">round()</span> peut arrondir un nombre à la décimale désirée.
|-
| <span style="font-family:monospace;font-size:113%;">e = 1 + sin(2) + pow(a,2);</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">A = [1,2,3];</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">x = A[0];</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">y = A[a];</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">z = A[2];</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">w = A[0] + A[1] + A[2];</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">m = max(x, y);</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">distance = sqrt(x*x + y*y + z*z);</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">theta = atan2(y, x);</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">plusPetit = x < y;</span>
| <span style="font-family:monospace;font-size:113%;">plusPetit</span> est égal à 1.
|-
| <span style="font-family:monospace;font-size:113%;">cas = (x < y) + (y < z);</span>
| <span style="font-family:monospace;font-size:113%;">cas</span> est égal à 2.
|-
| <span style="font-family:monospace;font-size:113%;">B = fill(3,0);</span>
| <span style="font-family:monospace;font-size:113%;">B</span> est maintenant égal à [0,0,0].
|-
| <span style="font-family:monospace;font-size:113%;">C = map("sqrt",fill(3,16));</span>
| Racine carrée de [16,16,16], donc <span style="font-family:monospace;font-size:113%;">C</span> est maintenant égal à [4,4,4].
|-
| <span style="font-family:monospace;font-size:113%;">s = 0;</span>
|
|-
| <span style="font-family:monospace;font-size:113%;">for (i:A)  s = s + i;</span>
| <span style="font-family:monospace;font-size:113%;">s</span> est égal à 6 après la boucle.
|-
| <span style="font-family:monospace;font-size:113%;">for (i:[0:3]) {<br>
  B[i] = sum(map("+",A,fill(3,i)));<br>
}</span>   
| <span style="font-family:monospace;font-size:113%;">B</span> devient égal à [6,9,12].
|-
| <span style="font-family:monospace;font-size:113%;">p = pick(a+9,"","A","B");</span>
| <span style="font-family:monospace;font-size:113%;">pick()</span> sélectionne toujours le premier élément si l'index est hors limites.
|-
| <span style="font-family:monospace;font-size:113%;">u = {-3,-2,-1,1:100};</span>
| <span style="font-family:monospace;font-size:113%;">u</span> et <span style="font-family:monospace;font-size:113%;">v</span> définissent des variables algébriques, les nombres sont les points d'évaluation.
|-
| <span style="font-family:monospace;font-size:113%;">v = {-100:100:1};</span>
|
|}
 
Remarques :
 
<ul>
<li>Important ! L'index hors plage ne peut pas être vérifié par la validation lors de la sauvegarde de la question, vous devez donc le vérifier vous-même. Sinon, l'initialisation du test pour certains élèves peut échouer. Utilisez <span style="font-family:monospace;font-size:113%;">pick()</span> comme variante sûre, le cas échéant.</li>
<li>Le vrai logique est traité comme 1 et le faux comme 0, donc la variable <span style="font-family:monospace;font-size:113%;">cas</span> ci-dessus prend la valeur 2.</li>
<li>Il n'y a pas de branchement, cependant, vous pouvez utiliser l'opérateur ternaire <span style="font-family:monospace;font-size:113%;">(condition)?(true):(false)</span> pour les nombres ou la fonction <span style="font-family:monospace;font-size:113%;">pick()</span> pour le cas général.</li>
<li>Les fonctions disponibles sont répertoriées sous '''[[Formules:_Fonctions_numériques|fonctions numériques]]''' et '''[[Formules:_Fonctions_non_numériques|fonctions non numériques]]'''. Il y a de nombreuses autres fonctions pour des opérations de listes numériques, et quelques-unes pour des opérations de listes de chaînes.</li>
</ul>
 
 
[[#top|Accéder au haut de la page]]
 
[[Question de type Formules|← QUESTION DE TYPE FORMULES]]
 
===Autres langues===
[https://docs.moodle.org/33/en/Formulas:_Variables English]<br>
[https://docs.moodle.org/all/es/F%C3%B3rmulas:_Variables Español]

Dernière version du 1 février 2018 à 01:41

Rediriger vers :