MarkScript: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) |
||
Строка 10: | Строка 10: | ||
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом. | Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом. | ||
+ | |||
Для настройки скрипта используйте кнопку: | Для настройки скрипта используйте кнопку: | ||
[[File:mark_script_onoff.png]] | [[File:mark_script_onoff.png]] | ||
+ | Откроется окно? | ||
+ | [[File:mark_script_editor.png]] | ||
− | + | Если скрипт уже задан ранее, то он будет показан в этом окне. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так: | Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так: | ||
Строка 129: | Строка 92: | ||
Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. | Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. | ||
+ | |||
+ | |||
+ | [[File:mtx_editor_markedit.png]] [[File:mtx_editor_markscript1.png|580px]] | ||
+ | |||
+ | Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки ''/*MarkScript*/'' (до нее можно писать в заметках все что угодно). | ||
+ | |||
+ | Например, если требуется поставить оценку в соответствии со следующими критериями: | ||
+ | |||
+ | а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2" | ||
+ | |||
+ | б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%. | ||
+ | |||
+ | то можно задать вот такой скрипт: | ||
+ | |||
+ | <pre> | ||
+ | /*MarkScript*/ | ||
+ | function main(R, G){ | ||
+ | var m = {}; | ||
+ | var f = true; | ||
+ | for (var key in G){ | ||
+ | if(G[key]['CountLimit']!=0 && G[key]['CountCorrectTask']<1){ | ||
+ | f = false; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | var X = {3:30, 4:60, 5:90}; | ||
+ | if(f){ | ||
+ | m['value'] = 2; | ||
+ | for (var i in X){ | ||
+ | if (X[i]<=(100*R['Score']/R['ScoreMax'])){ | ||
+ | m['value'] = i; | ||
+ | } | ||
+ | } | ||
+ | m['note'] = 'Все хорошо!'; | ||
+ | }else{ | ||
+ | m['value'] = 2; | ||
+ | m['note'] = 'Есть нулевые темы!'; | ||
+ | } | ||
+ | return m; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
<pre> | <pre> | ||
var m = {}; | var m = {}; |
Версия 12:07, 24 июля 2021
Выставление оценки за тест используя свой скрипт.
Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.
В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).
Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.
Для настройки скрипта используйте кнопку:
Если скрипт уже задан ранее, то он будет показан в этом окне.
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так:
Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.
Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки /*MarkScript*/ (до нее можно писать в заметках все что угодно).
Например, если требуется поставить оценку в соответствии со следующими критериями:
а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"
б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.
то можно задать вот такой скрипт:
/*MarkScript*/ function main(R, G){ var m = {}; var f = true; for (var key in G){ if(G[key]['CountLimit']!=0 && G[key]['CountCorrectTask']<1){ f = false; break; } } var X = {3:30, 4:60, 5:90}; if(f){ m['value'] = 2; for (var i in X){ if (X[i]<=(100*R['Score']/R['ScoreMax'])){ m['value'] = i; } } m['note'] = 'Все хорошо!'; }else{ m['value'] = 2; m['note'] = 'Есть нулевые темы!'; } return m; }
var m = {}; //... m['value'] = 3; m['title'] = 'Зачет'; m['note'] = 'Есть нулевые темы!'; return m;
Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.