MatchingStaticGraphs

From WeBWorK_wiki
Revision as of 22:26, 23 October 2009 by Pearson (talk | contribs) (New page: <h2>Matching Problems That Have Static Graphic Images</h2> <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> <em>This code shows how to create a matching problem fo...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Matching Problems That Have Static Graphic Images

This code shows how to create a matching problem for functions and their graphs. Students input their answers using drop-down select lists (popup lists).

Problem Techniques Index

PG problem file Explanation
DOCUMENT();

loadMacros(
"PG.pl",
"PGbasicmacros.pl",
"PGchoicemacros.pl",
"PGanswermacros.pl",
);

Initialization: We need to include the PGchoicemacros.pl macro file.

@questions = (
"\( f(x,y) = \displaystyle \frac{1}{x^2 + y^2} \)",
"\( f(x,y) = - y^2 \)",
"\( f(x,y) = x^3 - \sin(y) \)",
"\( f(x,y) = x + 2y + 3 \)",
"\( f(x,y) = - e^{-x^2 - y^2} \)",
);

@images = (
"12-2-9a.gif",
"12-2-9b.gif",
"12-2-9c.gif",
"12-2-9d.gif",
"12-2-9e.gif",
);

$n = scalar(@questions);
$k = $n; # $k can be less than $n
@subset = NchooseK($n,$k);
@numq = (1..$k);

Set-up: Create an array of questions (functions) and another of images. Set $k, the number of questions displayed, manually if you like. This is probably the only section you need to modify. You probably don't want more than five graphs to be displayed.

@subset_of_questions = @questions[@subset];
@subset_of_images = @images[@subset];
@permutation = NchooseK($k,$k);
@shuffled_subset_of_images = @subset_of_images[@permutation];
@captions = @ALPHABET[0..$k-1];

TEXT(beginproblem());

BEGIN_TEXT
$BEGIN_ONE_COLUMN
Match each function with its graph.  If you click on a graph, a larger graph will appear in a new window.
$BR$BR
END_TEXT

for $j (0..$k-1) {
BEGIN_TEXT
@numq[$j].  
\{ pop_up_list(['?', @captions]) \} $SPACE 
@subset_of_questions[$j]
$BR$BR
END_TEXT
}

BEGIN_TEXT
\{imageRow(~~@shuffled_subset_of_images,~~@captions)\}
$END_ONE_COLUMN
END_TEXT

Main Text: You may modify the instructions if you want.

$showPartialCorrectAnswers = 0;

ANS(str_cmp([@ALPHABET[invert(@permutation)]]));

ENDDOCUMENT();

Answer Evaluation: You should not need to modify this section at all.

Problem Techniques Index