46382 (665529), страница 2
Текст из файла (страница 2)
WriteLn(F, '\setlength{\textwidth}{16cm}');
WriteLn(F, '\newcommand{\ds}{\displaystyle}');
WriteLn(F, '\begin{document}');
END;
Function Nod (X, Y : Integer) : Integer;
Begin
WHILE X <> Y Do
IF X > Y THEN X := X — Y ELSE Y := Y — X;
Nod := X
END;
Var D, I, A, C, B, E, G, H, O, P, L, M, N, E1, G1, H1, O1, P1 : Integer;
Vx2, J, Vsp : Integer;
X, Znak : Char;
Begin
Assign(F, 't:\rustex\ex_v.tex');
ReWrite(F);
UST;
Randomize;
For I := 1 To 5 Do
Begin
Repeat {пока в числителях дробей не будут взаимно простые числа}
X := Chr(Ord('x') + Random(3)); {буква-переменная}
{Получаем знаменатель — выражение вида Ax+B,
A, B — целые, x — буква}
A := 1 + Random(5);
Repeat B := -4 + Random(9) Until B <> 0;
Vsp := Nod(A, Abs(B));
A := A Div Vsp; B := B Div Vsp;
Repeat
Repeat
{Получаем числитель делителя после преобразования
— выражение вида Lx^2+Mx+N,
L, M, N — целые, x — буква}
L := 1 + Random(5);
Repeat M := -4 + Random(9) Until M <> 0;
Repeat N := -4 + Random(9) Until N <> 0;
Vsp := Nod(Nod(L, Abs(M)), Abs(N));
L := L Div Vsp;
M := M Div Vsp;
N := N Div Vsp;
{Получаем ответ — выражение вида Cx+D,
C, D — целые, x — буква}
C := A * (1 + Random(3));
Repeat D := -4 + Random(9) Until D <> 0;
{Формируем выражение-делитель. Получаем его в виде
(Ex+G+(Hx^2+Ox+P)/(Ax+B))}
Repeat E := -3 + Random(7) Until E <> 0;
Repeat G := -3 + Random(7) Until G <> 0;
H := L — A * E;
O := M — (B * E + G * A);
P := N — B * G;
Until (H <> 0) And (O <> 0) And (P <> 0);
If H < 0 Then Begin Znak := '-'; H := -H; O := -O; P := -P End
Else Znak := '+';
{Формируем на основе ответа и делителя выражение-делимое
вида (E1x^2+G1x+(O1x+P1)/(Ax+B))}
E1 := C * L Div A;
Vx2 := D * L + M * C — E1 * B;
Until Vx2 Mod A = 0;
G1 := Vx2 Div A;
O1 := D * M + N * C — G1 * B;
P1 := D * N;
Until (Nod(Abs(H), Nod(Abs(O), Abs(P))) = 1) And (Nod(Abs(O1), Abs(P1)) = 1);
{выводим в файл очередное получившееся выражение,
учитывая, что некоторые из коэффициенты могут быть нулями,
коэффициенты, равные 1 или -1, не указываются и др.}
Write(F, Chr(Ord('а') + I — 1), ')~$\ds\left(');
If Abs(E1) <> 1 Then Write(F, E1)
Else If E1 = -1 Then Write(F, '-');
Write(F, X, '^2');
If G1 <> 0
Then Begin
If Abs(G1) <> 1 Then Begin
If G1 > 0 Then Write(F, '+');
Write(F, G1)
End
Else If G1 = -1
Then Write(F, '-')
Else Write(F, '+');
Write(F, X);
End;
If O1 <> 0
Then Begin
If O1 < 0
Then Begin Write(F, '-'); O1 := -O1; P1 := -P1 End
Else Write(F, '+');
Write(F, '\frac{');
If O1 <> 1 Then Write(F, O1);
Write(F, X);
If P1 <> 0
Then Begin If P1 > 0 Then Write(F, '+');
Write(F, P1)
End;
Write(F, '}');
End
Else If P1 <> 0
Then Begin If P1 < 0
Then Write(F, '-')
Else Write(F, '+');
Write(F, '\frac{', Abs(P1), '}');
End;
If (O1 <> 0) Or (P1 <> 0)
Then Begin
Write(F, '{');
If A <> 1 Then Write(F, A);
Write(F, X);
If B > 0 Then Write(F, '+');
Write(F, B, '}')
End;
Write(F, '\right):\left(');
If Abs(E) <> 1 Then Write(F, E)
Else If E = -1 Then Write(F, '-');
Write(F, X);
If G > 0 Then Write(F, '+');
Write(F, G);
Write(F, Znak, '\frac{');
If H <> 1 Then Write(F, H);
Write(F, X, '^2');
If O > 0 Then Write(F, '+');
If Abs(O) <> 1 Then Write(F, O)
Else If O = -1 Then Write(F, '-');
Write(F, X);
If P > 0 Then Write(F, '+');
Write(F, P, '}{');
If A <> 1 Then Write(F, A);
Write(F, X);
If B > 0 Then Write(F, '+');
WriteLn(F, B, '}\right)$;');
WriteLn(F)
End;
WriteLn(F);
WriteLn(F, '\end{document}');
Flush(F);
Close(F)
End.
Вот один из результатов её работы:
\documentstyle[12pt,a4wide]{article}
\topmargin-3cm
\pagestyle{empty}
\setlength{\textheight}{27cm}
\setlength{\textwidth}{16cm}
\newcommand{\ds}{\displaystyle}
\begin{document}
а)~$\ds\left(6z^2+z+\frac{13z+6}{3z-4}\right):
\left(-z-2+\frac{5z^2-z-6}{3z-4}\right)$;
б)~$\ds\left(12y^2+20y+\frac{19y-1}{y-1}\right):
\left(2y+3+\frac{2y^2+3y+4}{y-1}\right)$;
в)~$\ds\left(4x^2-2x-\frac{8x+3}{x+1}\right):
\left(-x-1+\frac{3x^2+6x+2}{x+1}\right)$;
г)~$\ds\left(12x^2-22x+\frac{39x+1}{x+2}\right):
\left(-2x+3+\frac{6x^2+3x-7}{x+2}\right)$;
д)~$\ds\left(z^2+2z-\frac{2z-9}{z-2}\right):
\left(-2z+2+\frac{3z^2-9z+7}{z-2}\right)$;
\end{document}
А вот что получено после обработки этого документа с помощью LaTeX:
Итак, программа значительно увеличила количество заданий, отвечающих заданному образцу. Однако следует заметить, — в этот вариант программы не заложена гарантия, что все сгенерированные задания будут различны. Для подобного рода гарантий необходимо предпринять дополнительные усилия.
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://www.comp-science.ru/















