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

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску
Строка 10: Строка 10:
  
 
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.  
 
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.  
 +
  
 
Для настройки скрипта используйте кнопку:
 
Для настройки скрипта используйте кнопку:
 
[[File:mark_script_onoff.png]]
 
[[File:mark_script_onoff.png]]
  
 +
Откроется окно?
 +
[[File:mark_script_editor.png]]
  
 
+
Если скрипт уже задан ранее, то он будет показан в этом окне.  
 
 
[[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>
 
  
 
Функция для вычисления оценки называется 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

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

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

Mark param1.png

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

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

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


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

Откроется окно? Mark script editor.png

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

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

Показать


Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.


Mtx editor markedit.png Mtx editor markscript1.png

Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки /*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;

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