e-Mathematics > Guide for Developers

Multiple choice style

The maxima-embedded LATEXfile example/quiz.tex is also prepared in the form of HTML multiple-choice control sequence.

\problemset
\problem
problem statements
\multiplechoice
\correct
correct choice
\incorrect
incorrect choice
..........
\incorrect
incorrect choice
\endmultiplechoice
\problem
problem statements
..........
..........
\endproblemset

Here we present the second example, example/quiztwo.tex

\maximacode
  pick([list]) := block([i], i:random(length(list))+1, return(list[i]));
  round(x) := ?round(float(x));
\endmaximacode

\problemset
\problem
\maximacode
  x1: pick(-2,1,2,4);
  x2: x1 + pick(-5,6,7);
  y1: pick(-3,1,3,5);
  y2: y1 + pick(-3,-2,5);
\endmaximacode
If a linear function~$f$
satisfies \maxima f(x1) = y1 \endmaxima and \maxima f(x2) = y2 \endmaxima, find  $f(x)$.

\multiplechoice
\correct
\maxima expand(solve(y - y1 = (y1 - y2)/(x1 - x2)*(x - x1), y)[1]) \endmaxima
\incorrect
\maxima expand(solve(y + y1 = (y1 - y2)/(x1 - x2)*(x + x1), y)[1]) \endmaxima
\incorrect
\maxima expand(solve(y - y2 = y1/x1*(x - x2), y)[1]) \endmaxima
\incorrect
\maxima expand(solve(y + y2 = y1/x1*(x + x2), y)[1]) \endmaxima
\endmultiplechoice

\problem
\maximacode
  a: pick(-2,2,3);
  c: pick(-3,1,2,4);
  b: pick(-1,1) * round(sqrt(4*abs(a*c) + pick(1,3,4,7)));
\endmaximacode
Solve the equation \maxima ff: a*x^2 + b*x + c = 0 \endmaxima.

\multiplechoice
\correct
\maxima solve(ff,x) \endmaxima
\incorrect
\maxima solve(a * x^2 + b*x - c, x) \endmaxima
\incorrect
\maxima solve(a * x^2 - b*x + c, x) \endmaxima
\incorrect
\maxima solve(x^2 + b*x + c, x) \endmaxima
\endmultiplechoice

\endproblemset

The perl CGI script quiz.cgi will shuffle both problems and choices randomly, and create javascript-enabled LATEX file. Then latex2html processes it with the additional javascript qghtml.js as executed at the following link:

example/quiz.cgi?dataset=quiztwo


© TTU Mathematics