MatrixAnswer2

From WeBWorK_wiki
Revision as of 20:07, 28 June 2014 by Paultpearson (talk | contribs)
Jump to navigation Jump to search

Matrix Answer 2

Click to enlarge

This PG code shows how to collect matrix answers using one textbox for the entire matrix a student enters.


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"PGcourse.pl",
);

TEXT(beginproblem()); 

Initialization:

Context('Matrix');

$example1 = Matrix([[1,2,3],[4,5,6]]);
$example2 = $example1->column(1);
$example3 = $example1->row(1);

Setup 1: We construct a 2 by 3 matrix and extract its first column and first row.

Context()->texStrings;
BEGIN_TEXT
The purpose of this question is to show you the syntax needed to enter 
matrices in WeBWorK when there is only one answer box for entering a matrix 
(which is not obvious) 
or when there are multiple answer boxes for entering a matrix (which is obvious).
The examples below should be self-explanatory, so you can jump to them if you want;
however, a detailed explanation follows if you want to read more.
$BR
$BR
Matrices use square brackets to enclose items in lists.  
A matrix with one row, such as a row vector, is a comma separated list enclosed by square brackets.
A matrix with more than one row or a column vector is a comma separated list of lists, where each list 
uses square brackets to enclose its items.
Your answers must use square brackets to enclose each row in a matrix or in a
column vector.  Also, a pair of square brackets is needed to enclose
a matrix with more than one row (e.g., a \( 2 \times 3 \) matrix
and a \( 2 \times 1 \) column vector have multiple rows so they need extra 
square brackets, but a \( 1 \times 3 \) row vector has only one row so it does
not need extra square brackets).  Your answers may have spaces and line breaks in them, 
such as 
$PAR
$BCENTER
[ [1, 2, 3], $BR [4, 5, 6] ]
$ECENTER
$BR
$BR
Enter the matrix \( $example1 \) as \{ $example1->string \}
$BR
\{ ans_box(3,30) \}
$BR
$BR
Enter the column vector \( $example2 \) as \{ $example2->string \}
$BR
\{ ans_box(3,30) \}
$BR
$BR
Enter the row vector \( $example3 \) as \{ $example3->string \}
$BR
\{ ans_box(3,30) \}
END_TEXT
Context()->normalStrings;

Main Text 1: Use $matrix->string to get the string representation of the matrix (i.e., the string answer the student needs to type in) and ans_box(rows,cols) to create a re-sizable text box for the student to enter their answer.

$showPartialCorrectAnswers = 1;

ANS( $example1->cmp() );
ANS( $example2->cmp() );
ANS( $example3->cmp() );

Answer Evaluation 1:

Context('Matrix');

$example1 = Matrix([[1,2,3],[4,5,6]]);

Setup 2: Reset the context by calling Context('Matrix'); because the matrix answer checker gets confused when the ans_box and ans_array methods are co-mingled.

Context()->texStrings;
BEGIN_TEXT
$BR
$BR
Entering a matrix using multiple answer blanks is straightforward -- 
just put each matrix entry into its own answer blank.
$BR
Enter the matrix \( $example1 \) with one matrix entry per answer box.
$BR
\{ $example1->ans_array \}
END_TEXT
Context()->normalStrings;

Main Text 2:

ANS( $example1->cmp() );

COMMENT('MathObject version.');

ENDDOCUMENT();

Answer Evaluation 2:

Templates by Subject Area