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

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску
Строка 46: Строка 46:
  
 
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе.
 
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе.
 +
 +
<spoiler text="Показать">
 +
<pre>
 +
Result = {};
 +
Result['ScoreMax'] = 9;
 +
Result['Score'] = 6,00;
 +
Result['CountTask'] = 9;
 +
Result['CountAskTask'] = 9;
 +
Result['CountCorrectTask'] = 6;
 +
Result['CountPartiallyTask'] = 0;
 +
Result['CountErrorTask'] = 3;
 +
Result['CountMissTask'] = 0;
 +
Result['CountUsePrompt'] = 0;
 +
Result['CountSecond'] = 11;
 +
Result['CountGroup'] = 5;
 +
Group = {};
 +
Group[0] = {};
 +
Group[0]['Title'] = 'Группа 1';
 +
Group[0]['CountLimit'] = 1;
 +
Group[0]['Count'] = 1;
 +
Group[0]['ScoreMax'] = 1;
 +
Group[0]['Score'] = 1,00;
 +
Group[0]['CountTask'] = 1;
 +
Group[0]['CountCorrectTask'] = 1;
 +
Group[0]['CountPartiallyTask'] = 0;
 +
Group[0]['CountErrorTask'] = 0;
 +
Group[1] = {};
 +
Group[1]['Title'] = 'Группа 2';
 +
Group[1]['CountLimit'] = 2;
 +
Group[1]['Count'] = 2;
 +
Group[1]['ScoreMax'] = 2;
 +
Group[1]['Score'] = 0,00;
 +
Group[1]['CountTask'] = 2;
 +
Group[1]['CountCorrectTask'] = 0;
 +
Group[1]['CountPartiallyTask'] = 0;
 +
Group[1]['CountErrorTask'] = 2;
 +
Group[2] = {};
 +
Group[2]['Title'] = 'Группа 3';
 +
Group[2]['CountLimit'] = 1;
 +
Group[2]['Count'] = 1;
 +
Group[2]['ScoreMax'] = 1;
 +
Group[2]['Score'] = 1,00;
 +
Group[2]['CountTask'] = 1;
 +
Group[2]['CountCorrectTask'] = 1;
 +
Group[2]['CountPartiallyTask'] = 0;
 +
Group[2]['CountErrorTask'] = 0;
 +
Group[3] = {};
 +
Group[3]['Title'] = 'Группа 4';
 +
Group[3]['CountLimit'] = 2;
 +
Group[3]['Count'] = 2;
 +
Group[3]['ScoreMax'] = 2;
 +
Group[3]['Score'] = 2,00;
 +
Group[3]['CountTask'] = 2;
 +
Group[3]['CountCorrectTask'] = 2;
 +
Group[3]['CountPartiallyTask'] = 0;
 +
Group[3]['CountErrorTask'] = 0;
 +
Group[4] = {};
 +
Group[4]['Title'] = 'Группа 5';
 +
Group[4]['CountLimit'] = 3;
 +
Group[4]['Count'] = 3;
 +
Group[4]['ScoreMax'] = 3;
 +
Group[4]['Score'] = 2,00;
 +
Group[4]['CountTask'] = 3;
 +
Group[4]['CountCorrectTask'] = 2;
 +
Group[4]['CountPartiallyTask'] = 0;
 +
Group[4]['CountErrorTask'] = 1;
 +
</pre>
 +
</spoiler>

Версия 18:30, 12 апреля 2021

Эта функция доступна только в бета-версии!

Выставление оценки за тест используя свой скрипт (небольшую программу на языке программирования JavaScript).

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

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

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

Показать