Main Content

Cette page s'applique à la version précédente. La page correspondante en anglais a été supprimée de la version actuelle.

Écrire des évaluations pour les solutions des apprenants utilisant des fonctions

Pour des solutions utilisant des fonctions, vous pouvez écrire du code MATLAB® avec des fonctions prédéfinies qui vérifient les valeurs des variables ou la présence de mots-clés ou de fonctions :

  • assessVariableEqual – Vérifier si une variable dans la solution d’un apprenant est égale à une valeur spécifiée avec une tolérance.

  • assessFunctionPresence – Vérifier la présence de mots-clés ou de fonctions spécifiques dans la solution d’un apprenant.

  • assessFunctionAbsence – Vérifier que certains mots-clés ou fonctions ne sont pas présents dans la solution d’un apprenant.

Modèle d’exécution

  • Généralement, chaque évaluation que vous écrivez pour une solution utilisant des fonctions implique d’appeler la solution d’un apprenant. Vous pouvez fournir des entrées à la fonction et évaluer les valeurs renvoyées. Vous pouvez également appeler la solution de référence pour comparer sa sortie à la sortie de la solution d’un apprenant.

  • Chaque évaluation est exécutée de façon séquentielle et indépendamment des autres évaluations. Si une évaluation échoue, l’exécution des évaluations suivantes continue.

  • Les variables créées lors d’une évaluation ne sont pas disponibles dans la suivante. Définissez toutes les variables requises dans chaque évaluation.

  • Si le code se termine sans erreur, le résultat de l’évaluation indique un statut de réussite. Sinon, le résultat de l’évaluation indique un statut d’échec.

    Si le test est un prétest, l’apprenant peut voir des informations sur le test d’évaluation en cliquant sur la flèche à gauche du nom du test, que le test soit réussi ou non.

  • Lorsque vous utilisez assessVariableEqual avec des problèmes utilisant des fonctions, utilisez pour toutes les variables de sortie créées lors de l’appel de la fonction de l’apprenant le même nom que dans la déclaration de fonction de l’apprenant. Les messages de commentaires par défaut font référence au nom de la variable de sortie créé dans l’évaluation et l’apprenant pourrait ne pas reconnaître la variable de sortie si elle ne correspond pas à la déclaration.

Appeler la solution d’un apprenant dans des évaluations

Pour évaluer une fonction soumise comme solution par un apprenant, chaque évaluation appelle la solution de l’apprenant.

Par exemple, l’évaluation d’une fonction triangleArea pourrait être :

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = 7.5;
assessVariableEqual('area',areaCorrect)

Lorsque l’apprenant clique sur Envoyer, cette évaluation appelle la version de l’apprenant de triangleArea.

Utiliser une solution de référence pour évaluer la solution d’un apprenant

Pour comparer la solution d’un apprenant à une solution de référence, appelez les deux fonctions.

  • Pour appeler la solution d’un apprenant, utilisez la syntaxe myFunction.

  • Pour appeler la solution de référence, utilisez la syntaxe reference.myFunction.

Dans les deux cas, remplacez myFunction par le nom de la fonction que vous utilisez dans le modèle de solution.

Par exemple, l’évaluation d’une fonction triangleArea pourrait être :

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = reference.triangleArea(b,h);
assessVariableEqual('area',areaCorrect)

Exemples

Retourner un vecteur

L’apprenant doit écrire une fonction appelée flipIt, qui retourne un vecteur d’entrée, inversant l’ordre des valeurs dans le vecteur. L’apprenant ne doit pas utiliser la fonction flip.

Solution de référence

function w = flipIt(v)
    w = v(end:-1:1);
end

Tests d’évaluation.  Appelez la solution de l’apprenant avec un vecteur d’entrée [1 2 3 4]. Testez que la solution de l’apprenant correspond à la solution de référence et évite d’utiliser flip :

v = [1 2 3 4];
w = flipIt(v)
w_correct = reference.flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Appelez à nouveau la solution de l’apprenant, cette fois avec un vecteur d’entrée [4] :

v = [4];
w = flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Sujets associés