• В тренажёре иногда используются статистические данные,
    например, о погоде или ценах. Эти данные являются
    автоматически сгенерированными, а не реальными.
  • "Час ЕГЭ" содержит задания ЕГЭ по математике от 1 до 14 -
    в соответствии КИМ тестовой части
    профильного уровня ЕГЭ-2020.
  • Математический факультет ВГУ - это
    увлекательная студенческая жизнь и весёлый,
    доброжелательный, жизнерадостный коллектив.
  • Программа "Час ЕГЭ" корректно работает
    только в поддерживаемых браузерах.
  • Математический факультет ВГУ - это
    отличная профессиональная подготовка
    для работы в различных сферах деятельности.
  • Набор заданий тренажёра "Час ЕГЭ" по математике
    основан на Открытом банке заданий,
    но не повторяет его в точности.
  • Это – beta-версия тренажёра.
    При нахождении ошибок, просьба сообщать о них на багтрекере.
  • Все замечания и предложения отправляйте
    на адрес nickkolok@mail.ru
  • Математический факультет ВГУ - это
    высококвалифицированный профессорско-преподавательский
    состав и увлекательная студенческая жизнь.
  • В тренажёре иногда используются статистические данные,
    например, о погоде или ценах. Эти данные являются
    автоматически сгенерированными, а не реальными.
  • "Час ЕГЭ" содержит задания ЕГЭ по математике от 1 до 14 -
    в соответствии КИМ тестовой части
    профильного уровня ЕГЭ-2020.
<>
$0123456789=+-\cdot ABCDFGHJLMNPRSTQUWXY\in abcdfghjlmnprstquwxy\sin\cos\ln\log\lg 2\def\tg{\operatorname{tg}}\def\ctg{\operatorname{ctg}}\def\sec{\operatorname{sec}}\def\cosec{\operatorname{cosec}}\def\arctg{\operatorname{arctg}}\def\arcctg{\operatorname{arcctg}}\def\arcsec{\operatorname{arcsec}}\def\arccosec{\operatorname{arccosec}}\def\arcsin{\operatorname{arcsin}}\def\arccos{\operatorname{arccos}}\def\sh{\operatorname{sh}}\def\ch{\operatorname{ch}}\def\th{\operatorname{th}}\def\cth{\operatorname{cth}}\def\sech{\operatorname{sech}}\def\csch{\operatorname{csch}}\def\arsh{\operatorname{arsh}}\def\arch{\operatorname{arch}}\def\arth{\operatorname{arth}}\def\arcth{\operatorname{arcth}}\def\arsch{\operatorname{arsch}}\def\arcsch{\operatorname{arcsch}}$

Расчётные задачи

Расчётные задачи - это особый тип задач, в которых большое количество текста составляет компьютер. Человек только указывает величины, с которыми компьютеру предстоит иметь дело. и формулы, по которым их считать.

Пример 1.

  1. Рассмотрим задачу (27944, http://ege-ok.ru/2012/03/17/pravilnyie-mnogougolniki-radius-vpisannoy-i-opisannoy-okruzhnosti-zadanie-v6 ):
    Около окружности, радиус которой равен $\sqrt{8}$, описан квадрат.
    Найдите радиус окружности, описанной около этого квадрата.
    
    Здесь участвуют две величины: радиус вписанной окружности и радиус описанной.
  2. Идём в уже известную нам оболочку отладки и делаем простенькую заготовку. Её можно смело копировать отсюда:
    (function(){'use strict';
    
        chas2.task.setCountableTask([
        ],{
    	});
    })();
    
  3. Если мы сейчас попробуем составить задачу, выскочит ошибка. Это логично: мы же ничего не ввели.
  4. Фраза "Около окружности, радиус которой равен $\sqrt{8}$, описан квадрат" достаточно сложна, не будем мучать компьютер её составлением (в следующих задачах, может, чем-то подобным и помучаем).
    (function(){'use strict';
    
        chas2.task.setCountableTask([
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{8}$, описан квадрат. ',
    	});
    })();
    
    Если "сложных" предложений нет, то преамбулу можно и не писать.
  5. Теперь внимательно вчитываемся в предложение: "Найдите радиус окружности, описанной около этого квадрата." Явно видно, что искомая величина называется "радиус окружности, описанной около этого квадрата". Создадим в массиве новый объект и впишем эту строку в свойство vel:
    (function(){'use strict';
    
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата',}
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{8}$, описан квадрат. ',
    	});
    })();
    
  6. У нас по-прежнему ошибка. За то, можно ли требовать найти объект-величину, отвечает флаг nah. Установим его в значение 1 (если нельзя требовать найти - ничего не пишем):
    (function(){'use strict';
    
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1,}
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{8}$, описан квадрат. ',
    	});
    })();
    
  7. Пощёлкав несколько раз по кнопке "составить задание", убедимся, что тренажёр выдаёт несколько вариантов вопроса. Пойдём дальше: разрешим ему спрашивать радиус в винительном падеже (а это будет так же). Для этого пропишем объекту-величине свойство vin. Если винительный падеж совпадает с именительным, то достаточно этому свойству присвоить 1, если не совпадает - придётся писать полностью.
    (function(){'use strict';
    
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1,}
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{8}$, описан квадрат. ',
    	});
    })();
    
  8. Пощёлкав по кнопке ещё немного, убедимся, что формулировки вопроса стали ещё более разнообразными.
  9. Это, конечно, всё очень хорошо, но у нас нет ответа! Исправим, добавив свойство zna (сокращённо от "значение величины"):
    (function(){'use strict';
    
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: 4,}
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{8}$, описан квадрат. ',
    	});
    })();
    
  10. Воот, это уже более-менее полноценная задача. Теперь нам, как обычно, надо, чтобы менялись числа. Подробно на этом останавливаться не буду, скажу только, что сначала мы генерируем радиус описанной, а потом делим его на корень из двух:
    (function(){'use strict';
    	var radius=sl(2,20,2); //С шагом 2 - чтобы хорошо делилось
    	
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius,}
        ],{
    		preambula: 'Около окружности, радиус которой равен $\\sqrt{'+(radius/2)+'}$, описан квадрат. ',
    	});
    })();
    
  11. Внимательный читатель может заметить появление выражения $\sqrt{9}$, вместо которого хотелось бы видеть просто число 3, или чего-нибудь подобного. Исправляем:
    (function(){'use strict';
    	var radius=sl(2,20,2); //С шагом 2 - чтобы хорошо делилось
    	
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius,}
        ],{
    		preambula: 'Около окружности, радиус которой равен $'+(radius/2).koren()+'$, описан квадрат. ',
    	});
    })();
    
    Функция .koren(), вызываемая от числа, возвращает либо целое число (если исходное число - полный квадрат), либо $TeX$-запись корня.
  12. Теперь добавим ещё величин. Например, диаметр описанной окружности и (равную ему) диагональ квадрата.
    (function(){'use strict';
    	var radius=sl(2,20,2); //С шагом 2 - чтобы хорошо делилось
    	
        chas2.task.setCountableTask([
    		[
    			{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius,},
    			{vel:'диаметр окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius*2,},
    			{vel:'диагональ этого квадрата', nah:1, vin:1, zna: radius*2,},
    		].iz(),
        ],{
    		preambula: 'Около окружности, радиус которой равен $'+(radius/2).koren()+'$, описан квадрат. ',
    	});
    })();
    
  13. Обратите внимание: так как у нас была одна величина, а стало три, то мы их "обернули" в [].iz() Иначе в задаче будут лишние данные - попробуйте запустить вот это:
    (function(){'use strict';
    	var radius=sl(2,20,2); //С шагом 2 - чтобы хорошо делилось
    	
        chas2.task.setCountableTask([
    		{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius,},
    		{vel:'диаметр окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius*2,},
    		{vel:'диагональ этого квадрата', nah:1, vin:1, zna: radius*2,},
        ],{
    		preambula: 'Около окружности, радиус которой равен $'+(radius/2).koren()+'$, описан квадрат. ',
    	});
    })();
    
    Но когда величин больше, то именно так их и перечисляют.
  14. Собственно, всё. Не забываем подписаться и указать источники:
    (function(){'use strict';
    	var radius=sl(2,20,2); //С шагом 2 - чтобы хорошо делилось
    	
        chas2.task.setCountableTask([
    		[
    			{vel:'радиус окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius,},
    			{vel:'диаметр окружности, описанной около этого квадрата', nah:1, vin:1, zna: radius*2,},
    			{vel:'диагональ этого квадрата', nah:1, vin:1, zna: radius*2,},
    		].iz(),
        ],{
    		preambula: 'Около окружности, радиус которой равен $'+(radius/2).koren()+'$, описан квадрат. ',
    	});
    })();
    //Обзад 27944, http://ege-ok.ru/2012/03/17/pravilnyie-mnogougolniki-radius-vpisannoy-i-opisannoy-okruzhnosti-zadanie-v6
    //Николай Авдеев
    

Другие примеры можно посмотреть на гитхабе вот тут.