Hi All,

I'm trying to have the students enter a list of asymptotes (vertical, horizontal, oblique) and I'm getting some weird behavior.

Suppose the answer is: x=1/2, y=9x/2 + 9/4

If I enter the answer like that, it's fine. But if I enter them switched: "y=9x/2 + 9/4, x=1/2", then I get this strange error message -- " No value given for variable 'x' " and the 'x' in y=9x/2 + 9/4 is highlighted.

Also, if I only enter x=1/2 then I get the error message "Your second value isn't equation (it looks like a real number)". The bad grammar comes from my entry_type => "equation" in the code but I'd like that message to not be confusing (it sounds like it's treating x=1/2 as a list by itself) although I'd be happy to remove it entirely.

Here is the relevant code:

DOCUMENT();

loadMacros(

"PGstandard.pl",

"MathObjects.pl",

"parserAssignment.pl",

);

Context("Numeric")->flags->set(

formatStudentAnswer => parsed,

reduceConstants => 0,

reduceConstantFunctions => 0,

);

Context()->variables->are(x=>"Real",y=>"Real");

Parser::Number::NoDecimals;

parser::Assignment->Allow;

do {

$a = random(7,12,1);

$b = random(2,4,1);

$c = random(1,9,1);

} while (gcd($b,$c) != 1);

$fx = "\frac{$a x^2}{$b x - $c}";

$top = $c*$a;

$bot = $b**2;

$ans1 = Formula("y = $a x/$b + $top/$bot");

$ans2 = Formula("x = $c/$b");

$ans = List($ans1, $ans2);

#########################################

Context()->normalStrings;

BEGIN_TEXT

$PAR

Let \( \displaystyle f(x) = $fx \).

$PAR

Find all horizontal, vertical, and oblique asymptotes of the graph of \(f(x)\).

$BR

Enter your answer as a list of equations of lines.

$PAR

ANSWER: \{ans_rule(40)\}

END_TEXT

Context()->texStrings;

ANS( $ans -> cmp( entry_type => "equation" ) );

ENDDOCUMENT();

Any thoughts on how to proceed? Thanks!

-- C