ExtractingCoordinatesFromPoint

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Your title here: PG Code Snippet

This code snippet shows the essential PG code to check student answers that are equations. Note that these are insertions, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.

PG problem file Explanation
```  loadMacros("any macros files that are needed");
```

To do ..(what you are doing)........., we don't have to change the tagging and documentation section of the problem file. In the initialization section, we need to include the macros file `-------.pl`.

```Context( "Point" );

push( @point, Point( random(1,5,1) , random(-5,-1,1) ) );
push( @point, Point( random(5,10,1) , random(6,11,1) ) );

(\$d1, \$d2) = (\$point[0] - \$point[1])->value; # \$d1 = x1 - x2, \$d2 = y1 - y2

# Need to put () around \$d1 and \$d2 because if \$d1 = -6, then -6^2 = -36, not 36, as desired.
\$length = Compute("sqrt( (\$d1)^2+(\$d2)^2 )");
\$mid = ( \$point[1] + \$point[0] ) / 2;
```

We don't use ```Context("Vector") and norm( \$point[0] - \$point[1] ) to determine length because we don't want to accept an answer like |<5,7>-<7,8>| You could use \$length=norm( \$point[0] - \$point[1] ); with the Vector context if you didn't care about accepting answers that are valid in the Vector context. ```

``` Notes: on using this and related Contexts. ```
```Context()->texStrings;

BEGIN_TEXT
Consider the two points \( \$point[0] \) and \( \$point[1] \).
The distance between them is:\{ \$length->ans_rule() \}
\$BR
The midpoint of the line segment
that joins them is:\{ \$mid->ans_rule() \}
\$BR
END_TEXT

Context()->normalStrings;
```

The problem text section of the file is as we'd expect.

```ANS( \$length->cmp );
ANS( \$mid->cmp );
```