Генераторы заданий MyTestXPro: различия между версиями

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску
(Новая страница: «В скрипте может быть несколько функций, для генерации заданий вызывается функция main(). Он…»)
 
Строка 8: Строка 8:
 
function main(){
 
function main(){
 
   var country = ['России', 'Китая', 'Франции', 'Японии', 'США'];
 
   var country = ['России', 'Китая', 'Франции', 'Японии', 'США'];
   var capital = ['Москва', 'Пекин', 'Париж', 'Токио', 'Вашингтон'];
+
   var capital = ['Москва', 'Пекин', 'Париж', 'Токио', 'Вашингтон'];
 
 
 
   var m = {};   
 
   var m = {};   
 
   m['страна'] = country[index];
 
   m['страна'] = country[index];
 
   m['answer1'] = capital[index];
 
   m['answer1'] = capital[index];
 
 
   return joinData(m);
 
   return joinData(m);
 
}
 
}
Строка 22: Строка 20:
 
function main(){
 
function main(){
 
   var a10 = 25 + index;
 
   var a10 = 25 + index;
   var a2 = a10.toString(2);
+
   var a2 = a10.toString(2);
 
 
 
   var m = {};   
 
   var m = {};   
 
   m['дес_число'] = a10;
 
   m['дес_число'] = a10;
 
   m['answer1'] = a2;
 
   m['answer1'] = a2;
 
 
   return joinData(m);
 
   return joinData(m);
 
}
 
}
Строка 40: Строка 36:
 
   return rand;
 
   return rand;
 
}
 
}
 
 
function main(){
 
function main(){
   var n = randomInteger(2, 4);
+
   var n = randomInteger(2, 4);
 
 
 
   var x1 = randomInteger(-5, 5);
 
   var x1 = randomInteger(-5, 5);
 
   var y1 = randomInteger(-5, 5);
 
   var y1 = randomInteger(-5, 5);
 
   var x2 = randomInteger(-5, 5);
 
   var x2 = randomInteger(-5, 5);
 
   var y2 = randomInteger(-5, 5);
 
   var y2 = randomInteger(-5, 5);
 
 
   var x = x1 + x2;
 
   var x = x1 + x2;
 
   x = n * x;
 
   x = n * x;
 
   var y = y1 + y2;
 
   var y = y1 + y2;
 
   y = n * y;   
 
   y = n * y;   
 
 
   var m = {};   
 
   var m = {};   
 
   m['n'] = n;
 
   m['n'] = n;
Строка 63: Строка 55:
 
   m['y'] = y;
 
   m['y'] = y;
 
   m['mx'] = -x;
 
   m['mx'] = -x;
   m['my'] = -y;
+
   m['my'] = -y;  
 
 
 
   return joinData(m);
 
   return joinData(m);
 
}
 
}
 
[/pre]
 
[/pre]

Версия 13:17, 27 апреля 2016

В скрипте может быть несколько функций, для генерации заданий вызывается функция main(). Она должна вернуть данные в нужном формате. Для получения этого формата используется глобальная функция joinData(). Эта функция получает объект (в примере это var m = {};) - ассоциативный массив. Заполняем его типа m['шаблон'] = 'значение';.

Шаблоны записываются в тексте как {%шаблон%}. Шаблоны ответов (их в задании писать не нужно, они как бы есть) {%answer1%}, {%answer2%}... {%answer10%}

1) Например, нужно сделать задания типа для какой-то страны указать её столицу. В одном массиве пишем страны, в другом столицы. Глобальная переменная index изменяется от 0 до N-1 (где N - сколько заданий сделать). Берем из массива нужные элементы и заполняем данные для замены.

[pre] function main(){

 var country = ['России', 'Китая', 'Франции', 'Японии', 'США'];
 var capital = ['Москва', 'Пекин', 'Париж', 'Токио', 'Вашингтон'];  
 var m = {};  
 m['страна'] = country[index];
 m['answer1'] = capital[index];
 return joinData(m);

} [/pre]

2) Переведите десятичное число {%дес_число%} в двоичную систему счисления. Нужно получить задания для числа от 25 до 125. [pre] function main(){

 var a10 = 25 + index;
 var a2 = a10.toString(2);  
 var m = {};  
 m['дес_число'] = a10;
 m['answer1'] = a2;
 return joinData(m);

} [/pre]

3) В командах для Чертежника задать случайные значения, вычислить результат... Можно использовать генератор и для заадний с вариантами заданий, т.к. если включить перемешивание вариантов, то можно считать что первый (или другой) верный, все равно перемешаются...

[pre] function randomInteger(min, max){

 var rand = min + Math.random() * (max + 1 - min);
 rand = Math.floor(rand);
 return rand;

} function main(){

 var n = randomInteger(2, 4);  
 var x1 = randomInteger(-5, 5);
 var y1 = randomInteger(-5, 5);
 var x2 = randomInteger(-5, 5);
 var y2 = randomInteger(-5, 5);
 var x = x1 + x2;
 x = n * x;
 var y = y1 + y2;
 y = n * y;   
 var m = {};  
 m['n'] = n;
 m['x1'] = x1;
 m['y1'] = y1;
 m['x2'] = x2; 
 m['y2'] = y2;
 m['x'] = x;
 m['y'] = y;
 m['mx'] = -x;
 m['my'] = -y;    
 return joinData(m);

} [/pre]