Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка без.doc
Скачиваний:
13
Добавлен:
13.08.2019
Размер:
3.15 Mб
Скачать

4.4.2 Шаблоны задач

Шаблон − это эффективный инструмент символьных преобразований текста. Под шаблоном обычно понимают заготовку текста, в котором некоторые элементы можно изменять в соответствии с заданным алгоритмом. Шаблоны широко используются в программировании, например, шаблоны в C++, мощный и развитый механизм, на основе которого была развита и реализована идея генерирующего программирования [24].

Под шаблоном задачи будем понимать описание задачи, в котором исходные данные и/или часть задачи могут меняться. Рассмотрим эту идею на конкретном примере. Пусть имеется задача: Петя за семестр заработал 63 балла по дисциплине АИУС, а на экзамене набрал 25 баллов. Сколько всего баллов заработал Петя?

Для того чтобы сделать из этой задачи шаблон, необходимо вместо конкретных чисел поставить параметры и алгоритмы, генерирующие значения этих параметров. Тогда эта задача может быть записана как: Петя заработал за семестр gen(x) баллов, а за экзамен получил gen(y). Сколько всего баллов заработал Петя?

Здесь:

- gen(x) − программа, генерирующая значения для переменной x;

- gen(y) − программа, генерирующая значения для переменной y.

В тестовых системах наряду с формулировкой конкретной задачи необходимо иметь правильное решение задачи или правильный ответ. Поэтому к шаблону нужно приложить программу решения задачи по сгенерированным параметрам. Тогда шаблон задачи будет выглядеть следующим образом:

Правильный ответ (rez=solv(x,y)),

где solv(x,y) − программа вычисления правильного ответа.

При формулировке конкретного вопроса студенту программа случайно выбирает число для х, далее случайно выбирает число переменной y, вычисляет правильный ответ и далее подставляет полученные числа x и y в задачу и выводит эту конкретную задачу студенту.

Если параметр x может принять 20 различных значений, а параметр y − 30, то общее число вариантов задач такого класса будет 600. Это уже достаточно большая выборка.

Для шаблона задачи необходимо (рис. 4.1):

1) выбрать некоторую задачу и выделить множество параметров, которое будет генерироваться;

2) записать алгоритм решения;

3) для каждого параметра записать множество изменения, это может быть список значений, интервалы или список интервалов;

4) для каждого параметра записать алгоритм генерации значения;

5) записать варианты формулировок задач. В некоторых случаях формулировка задачи может измениться в зависимости от значений параметров;

6) записать алгоритм формулировки задачи.

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

Например, если в решении задачи встречается выражение , то необходимо, чтобы для параметров а и b не выполнялось условие a= - b.

Рассмотрим для примера шаблон задачи - решение квадратного уравнения.

1) Формулировка задачи: дано квадратное уравнение . Найти корни и в ответ ввести найденные значения.

2) Параметры – a, b, c.

3) Условия решения , a не равно нулю.

4) Значения параметров лежат в пределах a=[a1,a2], b=[b1,b2], c=[c1,c2].

5) Алгоритм решения:

Рисунок 4.1 – Структура шаблона задачи

Рисунок 4.2 – Обобщенный алгоритм работы генератора задачи на основе шаблона