Реферат: Генерация дидактических материалов по математике
Результаты работы программы для количества заданий, равного 5:
$$\left(1\frac{2}{3}+\frac{5}{8}\right)\cdot0{,}48-\frac{4}{35}\cdot 0{,}875.$$
$$\left(3\frac{1}{2}+\frac{1}{7}\right)\cdot0{,}98-\frac{8}{35}\cdot
0{,}4375.$$
$$\left(2\frac{10}{27}+\frac{1}{18}\right)\cdot2{,}7-\frac{8}{25}\cdot
0{,}3125.$$
$$\left(2\frac{1}{2}+\frac{5}{6}\right)\cdot0{,}24-\frac{4}{15}\cdot 0{,}375.$$
$$\left(1\frac{5}{6}+\frac{3}{5}\right)\cdot1{,}5-\frac{4}{35}\cdot 0{,}875.$$
Результат обработки этого файла будет следующим:
Пример 2. Квадратное уравнение.
Настоящий пример несколько проще предыдущего. Рассмотрим два случая: а) корни уравнения — целые; б) корни уравнения — обыкновенные дроби.
Как и в предыдущем случае, целесообразно идти к получению задания от ответа. Сгенерируем два корня уравнения и, используя теорему Виета, получим его коэффициенты. При генерации целых корней разумно сделать их различными и отличными от нуля. В приведенном ниже примере это задания по буквами а, б. При выводе задания в файл требуется учесть, что коэффициенты могут быть равны нулю, а также тот факт, что коэффициент, равный единице, не записывается.
Задания под в, г предполагают наличие двух различных корней, являющихся обыкновенными правильными дробями. Алгоритм получения соответствующих коэффициентов в этом случае более громоздкий, хотя в основу положена всё та же теорема Виета. Изначально опять же генерируем ненулевые различные корни уравнения, а затем на их основе получаем уравнение в целыми коэффициентами. В примере это делается поэтапно: сначала — корни уравнения; затем — коэффициенты уравнения — обыкновенные дроби, наконец, коэффициенты — целые числа, причем НОК(A, B, C) = 1.
Ниже приводятся законченный фрагмент программы, генерирующий задания, пример работы этой программы и результат обработки файла, полученного с помощью программы.
Program Kw;
Var F : Text;
{Процедура, производящая начальные установки в формате LaTeXа}
Procedure UST;
Begin
WriteLn(F, '\documentstyle[12pt,a4wide]{article}');
WriteLn(F, '\topmargin-3cm');
WriteLn(F, '\pagestyle{empty}');
WriteLn(F, '\setlength{\textheight}{27cm}');
WriteLn(F, '\setlength{\textwidth}{16cm}');
WriteLn(F, '\begin{document}');
END;
{НОД}
Function Nod (X, Y : Integer) : Integer;