--- loncom/homework/default_homework.lcpm 2006/11/01 23:24:52 1.119 +++ loncom/homework/default_homework.lcpm 2006/12/15 22:11:43 1.123 @@ -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.119 2006/11/01 23:24:52 albertel Exp $ +# $Id: default_homework.lcpm,v 1.123 2006/12/15 22:11:43 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -256,55 +256,21 @@ sub caparesponse_check { return ($result,$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)=@_; -# Escape scientific notation, so 3e8 does not become 3*e*8 -# 3e8 -> 3&8; 3e-8 -> 3&-8; 3E+8 -> e&+8 - $expression=~s/(\d+)e([\+\-]*\d+)/$1\&\($2\)/gsi; -# 3x10^8 -> 3&8; 3*10^-8 -> 3&-8 - $expression=~s/(\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1\&\($2\)/gsi; -# Fill in multiplication signs -# a b -> a*b;3 b -> 3*b;3 4 -> 3*4 - $expression=~s/(\w)\s+(\w)/$1\*$2/gs; -# )( -> )*(; ) ( -> )*( - $expression=~s/\)\s*\(/\)\*\(/gs; -# 3a -> 3*a; 3( -> 3*(; 3 ( -> 3*(; 3A -> 3*A - $expression=~s/(\d)\s*([a-zA-Z\(])/$1\*$2/gs; -# a ( -> a*( - $expression=~s/(\w)\s+\(/$1\*\(/gs; -# a3 -> a*3; - $expression=~s/([a-zA-Z])(\d)/$1\*$2/gs; -# )a -> )*a; )3 -> )*3; ) 3 -> )*3 - $expression=~s/\)\s*(\w)/\)\*$1/gs; -# 3&8 -> 3e8; 3&-4 -> 3e-4 - $expression=~s/(\d+)\&\(([\+\-]*\d+)\)/$1e$2/gs; - return $expression; -} sub caparesponse_check_list { my $responses=$LONCAPA::CAPAresponse_args{'response'}; - &LONCAPA_INTERNAL_DEBUG(" answer is ". - &LONCAPA_INTERNAL_Dumper($LONCAPA::CAPAresponse_answer).":\n"); - &LONCAPA_INTERNAL_DEBUG(" respons is ". - &LONCAPA_INTERNAL_Dumper($responses).":\n"); +# &LONCAPA_INTERNAL_DEBUG(" answer is ". +# &LONCAPA_INTERNAL_Dumper($LONCAPA::CAPAresponse_answer).":\n"); +# &LONCAPA_INTERNAL_DEBUG(" respons is ". +# &LONCAPA_INTERNAL_Dumper($responses).":\n"); &LONCAPA_INTERNAL_DEBUG("args ".join(':',%LONCAPA::CAPAresponse_args)); my $type = $LONCAPA::CAPAresponse_args{'type'}; &LONCAPA_INTERNAL_DEBUG("Got type :$type:\n"); my $num_input_lines = scalar(@{$LONCAPA::CAPAresponse_answer->{'answers'}}); - if ($type ne '' - && $num_input_lines > 1) { + + if ($type ne '' ) { if (scalar(@$responses) < $num_input_lines) { return 'MISSING_ANSWER'; } @@ -324,8 +290,8 @@ sub caparesponse_check_list { $responses->[$which]=[$responses->[$which]]; } } - &LONCAPA_INTERNAL_DEBUG(" parsed response is ". - &LONCAPA_INTERNAL_Dumper($responses).":\n"); +# &LONCAPA_INTERNAL_DEBUG(" parsed response is ". +# &LONCAPA_INTERNAL_Dumper($responses).":\n"); foreach my $which (0..($num_input_lines-1)) { my $answer_size = scalar(@{$LONCAPA::CAPAresponse_answer->{'answers'}[$which]}); @@ -365,7 +331,7 @@ sub caparesponse_check_list { } - &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses)); +# &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses)); my %memoized; if ($LONCAPA::CAPAresponse_answer->{'type'} eq 'ordered') { for (my $i=0; $i