--- loncom/homework/default_homework.lcpm 2004/06/09 21:08:21 1.86 +++ loncom/homework/default_homework.lcpm 2004/10/05 20:30:17 1.89 @@ -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.86 2004/06/09 21:08:21 albertel Exp $ +# $Id: default_homework.lcpm,v 1.89 2004/10/05 20:30:17 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,7 +41,7 @@ sub caparesponse_check { my $type=$LONCAPA::CAPAresponse_args{'type'}; my $tol=$LONCAPA::CAPAresponse_args{'tol'}; my $sig=$LONCAPA::CAPAresponse_args{'sig'}; - my $ans_fmt=$LONCAPA::CAPAresponse_args{'ans_fmt'}; + my $ans_fmt=$LONCAPA::CAPAresponse_args{'format'}; my $unit=$LONCAPA::CAPAresponse_args{'unit'}; my $calc=$LONCAPA::CAPAresponse_args{'calc'}; my $samples=$LONCAPA::CAPAresponse_args{'samples'}; @@ -70,6 +70,12 @@ sub caparesponse_check { $response=~s/ +/ /g; } if ($type eq 'float') { $response=~s/,//g; } + if ($type eq 'float' && $ans_fmt=~/\$/) { + if ($response!~/^\$/) { return "NO_UNIT: Missing \$ "; } + $response=~s/\$//g; + } + $ans_fmt=~s/\W//g; + if (length($response) > 500) { return "TOO_LONG: Answer too long"; } if ($type eq '' ) { @@ -344,7 +350,7 @@ sub random_multivariate_normal { my ($item_cnt,$seed,$mean,$covar) = @_; my @oldseed=&random_get_seed(); &random_set_seed_from_phrase($seed); - @retArray=&math_random_multivariate_normal($item_cnt,@$mean,@$covar); + my @retArray=&math_random_multivariate_normal($item_cnt,@$mean,@$covar); &random_set_seed(@oldseed); return @retArray; } @@ -354,7 +360,7 @@ sub random_multinomial { my @oldseed=&random_get_seed(); my @retArray; &random_set_seed_from_phrase($seed); - @retArray=&math_random_multinomial($item_cnt,@p); + my @retArray=&math_random_multinomial($item_cnt,@p); &random_set_seed(@oldseed); return @retArray; } @@ -523,7 +529,7 @@ sub chemparse { $formula .= $molecule.' '; } # get rid of trailing space - $formula =~ s/(\Q${nbsp}\E| )$//; + $formula =~ s/(\ \;| )$//; return &xmlparse($formula); }