--- loncom/homework/default_homework.lcpm 2006/06/13 14:57:54 1.107 +++ loncom/homework/default_homework.lcpm 2006/06/30 21:24:27 1.108 @@ -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.107 2006/06/13 14:57:54 albertel Exp $ +# $Id: default_homework.lcpm,v 1.108 2006/06/30 21:24:27 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -152,9 +152,9 @@ sub caparesponse_check { my $reterror=""; my $result; if ($type eq '9') { - $result = &maxima_check($response,$answer,\$reterror); + $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror); } else { - $result = &caparesponse_capa_check_answer($response,$answer,$type, + $result = &caparesponse_capa_check_answer(&capa_formula_fix($response),&capa_formula_fix($answer),$type, $tol_type,$tol, $sig_lbound,$sig_ubound, $ans_fmt,$unit,$calc,$id_list, @@ -184,6 +184,23 @@ sub caparesponse_check { return ("$result:\nRetError $reterror:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message",$reterror); } +sub maxima_cas_formula_fix { + my ($expression)=@_; + return &implicit_multiplication($expression); +} + +sub capa_formula_fix { + my ($expression)=@_; + return &implicit_multiplication($expression); +} + +sub implicit_multiplication { + my ($expression)=@_; + $expression=~s/\s+/\*/g; + $expression=~s/(\d)([a-zA-Z\(])/$1\*$2/g; + $expression=~s/\)(\w)/\)\*$1/g; + return $expression; +} sub caparesponse_check_list { my $response=$LONCAPA::CAPAresponse_args{'response'};