MarkScript: различия между версиями

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску
 
(не показаны 24 промежуточные версии этого же участника)
Строка 1: Строка 1:
Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.
+
== Выставление оценки за тест используя свой скрипт ==
  
[[File:mark_param1.png]]
+
<font color='#aaaaaa'>Эта информация для версии 11.0.0.62 (и, возможно, для следующих).</font>
  
 +
Настройка оценивания теста находится в Редакторе тестов на странице [[Параметры_теста_MyTestXPro|Параметры теста]].
  
 +
[[File:mark_param1.png]]
  
<font color='#ff0000'>Эта функция доступна только в бета-версии! Для апробации свяжитесь с разработчиком. </font>
+
Для изменения критерия оценивания нажмите кнопку [[Оценивание_теста_и_заданий_MyTestXPro|Изменить]]...
  
'''Выставление оценки за тест используя свой скрипт (небольшую программу на языке программирования JavaScript).'''
+
В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).
  
В бета-версии кроме обычной шкалы оценивания можно добавить еще свой скрипт, учитывающий какие-то особые требования. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.
+
<font color='#ff0000'>Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем. </font>
  
[[File:mtx_editor_markedit.png]]  [[File:mtx_editor_markscript1.png|580px]]
+
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.  
  
Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки ''/*MarkScript*/'' (до нее можно писать в заметках все что угодно).
 
  
Например, если требуется поставить оценку в соответствии со следующими критериями:
+
Для настройки скрипта используйте кнопку:
 +
[[File:mark_script_onoff.png]]
  
а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"
+
Откроется окно:
  
б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.
+
[[File:mark_script_editor.png]]
  
то можно задать вот такой скрипт:
+
Если скрипт уже задан ранее, то он будет показан в этом окне.
  
<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>
 
 
 
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так:
 
  
 
<spoiler>  
 
<spoiler>  
Строка 122: Строка 96:
 
</spoiler>
 
</spoiler>
  
Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.
+
Для отладки скрипта вы можете изменять эти данные в верхнем поле.
 +
 
 +
 
 +
Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main().
 +
Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.
 +
 
 +
В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов.
 +
 
 +
Пример №1 показывает как скрипт должен возвращать результат:
 
<pre>
 
<pre>
 +
function main(R, G){
 
   var m = {};
 
   var m = {};
  //...
+
   m['value'] = 3;
   m['value'] = 3;  
 
 
   m['title'] = 'Зачет';
 
   m['title'] = 'Зачет';
   m['note'] = 'Есть нулевые темы!';  
+
   m['note'] = 'Примечание!';
 
   return m;
 
   return m;
 +
}
 
</pre>
 
</pre>
  
Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.
+
Пример №2 соответствует обычному способу оценивая (делает тоже самое):
 +
<pre>
 +
function main(R, G){
 +
  var m = {};
 +
  var X = {3:30, 4:60, 5:90};
 +
  m['value'] = 2;
 +
  for (var i in X){
 +
    if (X[i] <= (100*R['Score']/R['ScoreMax'])){
 +
      m['value'] = i;
 +
    }
 +
  }
 +
  return m;
 +
}
 +
</pre>
 +
 
 +
Пример №3 это уже один из возможных способов использования этой функции:
 +
<pre>
 +
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>
 +
 
 +
Его можно применять, например, если требуется поставить оценку в соответствии со следующими критериями:
 +
 
 +
а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"
 +
 
 +
б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.
 +
 
 +
[[File:mark_script_editor2.png]]
 +
 
 +
После запуска скрипта в поле ниже отобразиться результат (для данных примерных результатов). Если скрипт работает без ошибок и выдает оценку, то его можно сохранить.
 +
 
 +
После изменения скрипта кнопка {{Клавиша|Сохранить}} становится не активной, это предназначено, что уменьшения рисков задать не рабой скрипт.
 +
 
 +
Кнопка {{Клавиша|Удалить}} удаляет скрипт из оценивания, при этом поле скрипта не очищается и вы можете еще с ним поработать.

Текущая версия на 21:15, 24 июля 2021

Выставление оценки за тест используя свой скрипт

Эта информация для версии 11.0.0.62 (и, возможно, для следующих).

Настройка оценивания теста находится в Редакторе тестов на странице Параметры теста.

Mark param1.png

Для изменения критерия оценивания нажмите кнопку Изменить...

В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).

Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.

Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.


Для настройки скрипта используйте кнопку: Mark script onoff.png

Откроется окно:

Mark script editor.png

Если скрипт уже задан ранее, то он будет показан в этом окне.

Функция вычисления оценки получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически и зависят от теста и его результатов. Например, они могут выглядеть так:

Показать


Для отладки скрипта вы можете изменять эти данные в верхнем поле.


Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main(). Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.

В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов.

Пример №1 показывает как скрипт должен возвращать результат:

function main(R, G){
  var m = {};
  m['value'] = 3;
  m['title'] = 'Зачет';
  m['note'] = 'Примечание!';
  return m;
}

Пример №2 соответствует обычному способу оценивая (делает тоже самое):

function main(R, G){
  var m = {};
  var X = {3:30, 4:60, 5:90};
  m['value'] = 2;
  for (var i in X){
    if (X[i] <= (100*R['Score']/R['ScoreMax'])){
      m['value'] = i;
    }
  }
  return m;
}

Пример №3 это уже один из возможных способов использования этой функции:

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;
}

Его можно применять, например, если требуется поставить оценку в соответствии со следующими критериями:

а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"

б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.

Mark script editor2.png

После запуска скрипта в поле ниже отобразиться результат (для данных примерных результатов). Если скрипт работает без ошибок и выдает оценку, то его можно сохранить.

После изменения скрипта кнопка Сохранить становится не активной, это предназначено, что уменьшения рисков задать не рабой скрипт.

Кнопка Удалить удаляет скрипт из оценивания, при этом поле скрипта не очищается и вы можете еще с ним поработать.