Генераторы заданий MyTestXPro: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) |
||
Строка 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); | ||
} | } | ||
Строка 17: | Строка 19: | ||
2) Переведите десятичное число {%дес_число%} в двоичную систему счисления. Нужно получить задания для числа от 25 до 125. | 2) Переведите десятичное число {%дес_число%} в двоичную систему счисления. Нужно получить задания для числа от 25 до 125. | ||
− | + | <pre> | |
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); | ||
} | } | ||
− | + | </pre> | |
3) В командах для Чертежника задать случайные значения, вычислить результат... Можно использовать генератор и для заадний с вариантами заданий, т.к. если включить перемешивание вариантов, то можно считать что первый (или другой) верный, все равно перемешаются... | 3) В командах для Чертежника задать случайные значения, вычислить результат... Можно использовать генератор и для заадний с вариантами заданий, т.к. если включить перемешивание вариантов, то можно считать что первый (или другой) верный, все равно перемешаются... | ||
− | + | <pre> | |
function randomInteger(min, max){ | function randomInteger(min, max){ | ||
var rand = min + Math.random() * (max + 1 - min); | var rand = min + Math.random() * (max + 1 - min); | ||
Строка 36: | Строка 40: | ||
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; | ||
Строка 55: | Строка 63: | ||
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> |
Версия 13:18, 27 апреля 2016
В скрипте может быть несколько функций, для генерации заданий вызывается функция main(). Она должна вернуть данные в нужном формате. Для получения этого формата используется глобальная функция joinData(). Эта функция получает объект (в примере это var m = {};) - ассоциативный массив. Заполняем его типа m['шаблон'] = 'значение';.
Шаблоны записываются в тексте как {%шаблон%}. Шаблоны ответов (их в задании писать не нужно, они как бы есть) {%answer1%}, {%answer2%}... {%answer10%}
1) Например, нужно сделать задания типа для какой-то страны указать её столицу. В одном массиве пишем страны, в другом столицы. Глобальная переменная index изменяется от 0 до N-1 (где N - сколько заданий сделать). Берем из массива нужные элементы и заполняем данные для замены.
function main(){ var country = ['России', 'Китая', 'Франции', 'Японии', 'США']; var capital = ['Москва', 'Пекин', 'Париж', 'Токио', 'Вашингтон']; var m = {}; m['страна'] = country[index]; m['answer1'] = capital[index]; return joinData(m); }
2) Переведите десятичное число {%дес_число%} в двоичную систему счисления. Нужно получить задания для числа от 25 до 125.
function main(){ var a10 = 25 + index; var a2 = a10.toString(2); var m = {}; m['дес_число'] = a10; m['answer1'] = a2; return joinData(m); }
3) В командах для Чертежника задать случайные значения, вычислить результат... Можно использовать генератор и для заадний с вариантами заданий, т.к. если включить перемешивание вариантов, то можно считать что первый (или другой) верный, все равно перемешаются...
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); }