--- loncom/homework/default_homework.lcpm 2006/12/15 22:11:43 1.123 +++ loncom/homework/default_homework.lcpm 2008/03/05 16:06:39 1.127 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.123 2006/12/15 22:11:43 www Exp $ +# $Id: default_homework.lcpm,v 1.127 2008/03/05 16:06:39 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -166,7 +166,7 @@ sub caparesponse_check { $response=~s/[\s,]//g; } if ($type eq 'float' && $unit=~/\$/) { - if ($response!~/^\$/) { return ('NO_UNIT', undef); } + if ($response!~/^\$|\$$/) { return ('NO_UNIT', undef); } $response=~s/\$//g; } if ($type eq 'float' && $unit=~/\,/ && (&check_commas($response)<0)) { @@ -217,6 +217,7 @@ sub caparesponse_check { my $reterror=""; my $result; + if ((($type eq '9') || ($type eq '8')) && ($response=~/\=/)) { return ('BAD_FORMULA','Please submit just an expression, not an equation.'); } if ($type eq '9') { $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror); } else { @@ -318,7 +319,8 @@ sub caparesponse_check_list { $unit=~s/\s//; if ($unit ne '') { foreach my $response (@$responses) { - foreach my $element (@$response) { + foreach my $element (@$response) { + $element =~ s/\s//g; $element .= " $unit"; } } @@ -417,6 +419,15 @@ sub caparesponse_check_list { return ($final_award,$final_msg); } +sub cas { + my ($system,$input)=@_; + my $output; + if ($system eq 'maxima') { + $output=&maxima_eval($input); + } + return $output; +} + sub tex { if ( $external::target eq "tex" ) { return $_[0];