Реферат: Генерация дидактических материалов по математике
K := B * C Div Nod(B, C) * (1 + Random(7)); {Второй сомножитель
в первом произведении}
Repeat
Repeat
M := 3 + Random(6); {Одно из чисел, на которое будет
производиться сокращение во втором произведении}
Ch1 := M * (1 + Random(3)) {Числитель второй дроби}
Until Odd(M) and Odd(Ch1);
Zn := M * 5; {Знаменатель первого сомножителя во втором
произведении}
SS := 2 + Random(4);
Zn1 := Stepen(2, SS); {Знаменатель второго сомножителя -
случайная степень числа 2}
Ch := Zn1 Div 2; {Числитель первой дроби}
Until (Ch < Zn) And (Ch1 < Zn1); {Повторяем генерацию дробей,
пока числители не станут
меньше знаменателей}
S := Nod(Ch, Zn);
Ch := Ch Div S; {Сокращение дроби}
Zn := Zn Div S;
Ch1 := Ch1 * Stepen(10, SS); {Подготовка числителя
второй дроби к целочисленному
делению}
{Печать результата генерации в файл Name}
WriteLn(Ch1, ' ', Zn1);
Write(Name, '$$\left(', 1 + Random(3), '\frac{', D);
Write(Name, '}{', B, '}+\frac{', F, '}{', C, '}\right)\cdot');
Write(Name, K Div 100, '{,}', K Mod 100, '-\frac{', Ch);
WriteLn(Name, '}{', Zn, '}\cdot 0{,}', Ch1 Div Zn1, '.$$')