Пример сценария 1

Вопрос с выбором ответа:

Найти произведение чисел $(a) и $(b).

Варианты ответов:

  • $(c) (верный)
  • $(d1)
  • $(d2)
  • $(d3)

Сценарий:

var
  a, b, c, d1, d2, d3: Integer;
begin
  a := Random(8) + 2; { 2...9 }
 
  { repeat...until - конструкция "цикл с постусловием". Операторы между repeat и until
    исполняются до тех пор, пока условие, указанное после until, не будет выполнено. }
  repeat
    b := Random(8) + 2; { 2...9 }
  until a <> b; { Подбираем второй множитель b до тех пор, пока не получим значение,
    отличное от первого (a). }
 
  c := a * b;
 
  { Подбираем дистракторы (ошибочные варианты). }
  if RandomFloat < 0.5 then { Стандартная функция RandomFloat возвращает случайное
    вещественное число от 0 до 1 (включая 0, но исключая 1). Таким образом,
    приведенное условие будет выполняться примерно в половине случаев. }
    d2 := c + b { С вероятностью 0.5 один из дистракторов будет отличаться
      от правильного ответа на +b ... }
  else
    d2 := c - b; { ... и с такой же вероятностью - на -b. }
 
  if RandomFloat < 0.5 then
    d3 := c + a
  else
    d3 := c - a;
 
  repeat
    d1 := Random(90) + 10; { Последний дистрактор выбираем случайным образом
      из отрезка [10; 99]. }
  until (d1 <> c) and (d1 <> d2) and (d1 <> d3); { Следим за тем, чтобы он
    не совпал с правильным ответом и с предыдущими дистракторами. }
end.