# MatchingStaticGraphs

## Matching Problems That Have Static Graphic Images

There are three different kinds of matching problems with static graphics given here.

• (Recommended:) Matching functions and graphs using MathObjects.
• (Older:) Matching functions and their graphs without MathObjects.
• (Older:) Matching graphs to other graphs without MathObjects.

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

PG problem file Explanation
DOCUMENT();

"PGstandard.pl",
"PGunion.pl",
"MathObjects.pl",
"contextABCD.pl",
"imageChoice.pl",
"PGcourse.pl",
);


Initialization: We need to include many macro files.

$size = [150,150]; # the size of the images$tsize = 250;        # tex size of the images

#
#  Array of functions and their associated GIFs or PNGs
#
@QA = (
"$$f(x,y) = \displaystyle \frac{1}{x^2 + y^2}$$",
"plot1.png",
"$$f(x,y) = - y^2$$",
"plot2.png",
"$$f(x,y) = x^3 - \sin(y)$$",
"plot3.png",
"$$f(x,y) = x + 2y + 3$$",
"plot4.png",
"$$f(x,y) = - 4 e^{-x^2 - y^2}$$",
"plot5.png",
);

$ml = new_image_match_list( link => 1, # do not link to separate image size =>$size,            #  image size in pixels
tex_size => $tsize, # tex size in precent times 10 columns => 3, # number of columns );$ml->{separation} = 3;      # separation for questions in the list

$ml->rf_print_q(~~&pop_up_list_print_q); # use pop-up-lists$ml -> ra_pop_up_list([ No_answer=>"?", A=>"A", B=>"B", C=>"C", D=>"D", E=>"E" ] );

$ml->qa(@QA); # set the questions and answers$ml->choose(5);             #  select 5 of them
#$ml->choose_extra(1); # and show the other 1  Set-up: This is probably the only section you need to modify. Create an array of questions (functions) and a corresponding array of images. You probably want six or fewer graphs to be displayed. Image files must be GIF or PNG and be located in the same directory as the pg file. You may need to add more strings ("F", "G", etc.) to the ra_pop_up_list if you have more than five graphs. For each PG problem with static images, you should put both the PG file and the image files into their own separate subdirectory. This subdirectory should be located somewhere under the course templates directory. The name of the subdirectory should be the same as the root name of the PG file, and there should be only one PG file in this subdirectory. TEXT(beginproblem()); BEGIN_TEXT Match each function with its graph. Click on a graph to make it larger.$PAR
\{$ml->print_q\}$PAR
\{$ml->print_a\}$PAR

END_TEXT


Main Text: Modify the instructions if you want.

Context("ABCD")->strings->add("E"=>{},"F"=>{},"?"=>{},"No_answer"=>{});

$showPartialCorrectAnswers = 0; ANS(string_cmp($ml->ra_correct_ans));

ENDDOCUMENT();


Answer Evaluation: You may need to add more strings ("G", "H", etc.) to the context if you have more choices.

Matching functions and graphs without MathObjects: This code shows how to create a matching problem for functions and their graphs without using MathObjects. Students input their answers using drop-down select lists (popup lists). This code is old, and some of its routines have been deprecated.

PG problem file Explanation
DOCUMENT();

"PG.pl",
"PGbasicmacros.pl",
"PGchoicemacros.pl",
"PGcourse.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);  Set-up: This is probably the only section you need to modify. Create an array of questions (functions) and a corresponding array of images. Set the number of questions displayed,$k, manually if you like. You probably don't want more than five graphs to be displayed. Image files must be GIF or PNG and be located in the same directory as the pg file.

@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 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 (1..$k) { BEGIN_TEXT$j.
\{ pop_up_list(['?', @captions]) \} $SPACE @subset_of_questions[$j-1]
$BR$BR
END_TEXT
}

BEGIN_TEXT

\{imageRow(~~@shuffled_subset_of_images,~~@captions)\}

END_TEXT


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

install_problem_grader(~~&std_problem_grader);

$showPartialCorrectAnswers = 0; ANS(str_cmp([@ALPHABET[invert(@permutation)]])); ENDDOCUMENT();  Answer Evaluation: You should not need to modify this section at all. Matching graphs and graphs without MathObjects:This code shows how to create a matching problem for graphs and other graphs without using MathObjects. Students input their answers using drop-down select lists (popup lists). This code is old, and some of its routines have been deprecated. PG problem file Explanation DOCUMENT(); loadMacros( "PG.pl", "PGbasicmacros.pl", "PGchoicemacros.pl", "PGanswermacros.pl", "PGcourse.pl", );  Initialization: We need to include the PGchoicemacros.pl macro file. @surfaces = ( "Surface02.png", "Surface04.png", "Surface09.png", "Surface10.png", ); @contours = ( "Contour02.png", "Contour04.png", "Contour09.png", "Contour10.png", );$n = scalar(@questions);
$k =$n; # $k can be less than$n
@subset = NchooseK($n,$k);


Set-up: This is probably the only section you need to modify. Create an array of surfaces and a corresponding array of contour plots. You could also do this for functions and their derivatives. Set the number of questions displayed, $k, manually if you like. You probably don't want more than five graphs to be displayed. Image files must be GIF or PNG and be located in the same directory as the pg file. @subset_of_surfaces = @surfaces[@subset]; @subset_of_contours = @contours[@subset]; @permutation = NchooseK($k,$k); @shuffled_subset_of_contours = @subset_of_contours[@permutation]; @numbercaptions = (1..$k);
@alphacaptions = @ALPHABET[0..$k-1]; TEXT(beginproblem()); BEGIN_TEXT Match each graph with its contour plot. If you click on a graph, a larger graph will appear in a new window. Green contours represent lower elevations, and red contours represent higher elevations. In the contour plots, the x-axis is horizontal and the y-axis is vertical, as usual.$BR$BR END_TEXT for$j (1..$k) { BEGIN_TEXT$j. \{ pop_up_list(['?', @alphacaptions]) \}
$SPACE$SPACE$SPACE$SPACE$SPACE END_TEXT } BEGIN_TEXT \{imageRow(~~@subset_of_surfaces,~~@numbercaptions)\} \{imageRow(~~@shuffled_subset_of_contours,~~@alphacaptions)\} END_TEXT  Main Text: You may modify the instructions if you want. We display the popup lists on a single line so that they are visually arranged in the same way as the graphs. install_problem_grader(~~&std_problem_grader);$showPartialCorrectAnswers = 0;

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

ENDDOCUMENT();


Answer Evaluation: You should not need to modify this section at all.
{"ft_lang_label":"__label__en","ft_lang_prob":0.7503562,"math_prob":0.95601946,"size":7171,"snap":"2021-43-2021-49","text_gpt3_token_len":1990,"char_repetition_ratio":0.11176224,"word_repetition_ratio":0.43854475,"special_character_ratio":0.3044206,"punctuation_ratio":0.19710806,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9980115,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2021-10-17T09:00:25Z\",\"WARC-Record-ID\":\"<urn:uuid:e4a2f099-ca96-4898-b07c-ca181236db2e>\",\"Content-Length\":\"29273\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:cfcec905-5268-4777-9499-5ad0b7304fa1>\",\"WARC-Concurrent-To\":\"<urn:uuid:b0ccc32a-0048-4d5a-b504-6f91cb4d3c5f>\",\"WARC-IP-Address\":\"34.204.106.157\",\"WARC-Target-URI\":\"https://webwork.maa.org/mediawiki_new/index.php?title=MatchingStaticGraphs&oldid=5570\",\"WARC-Payload-Digest\":\"sha1:DBALVUFOY6QOLXUNZV6TYKDBOEHFPLX3\",\"WARC-Block-Digest\":\"sha1:IV5Z2JUJSQBP5TWHMLBEM6OVZYMOL63V\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2021/CC-MAIN-2021-43/CC-MAIN-2021-43_segments_1634323585171.16_warc_CC-MAIN-20211017082600-20211017112600-00083.warc.gz\"}"}