--- loncom/homework/default_homework.lcpm 2008/09/12 09:56:09 1.139 +++ loncom/homework/default_homework.lcpm 2008/11/26 18:11:52 1.142 @@ -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.139 2008/09/12 09:56:09 raeburn Exp $ +# $Id: default_homework.lcpm,v 1.142 2008/11/26 18:11:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -217,7 +217,13 @@ 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') || ($type eq '8')) { + if ($response=~/\=/) { + return ('BAD_FORMULA','Please submit just an expression, not an equation.'); + } elsif ($response =~ /\,/) { + return ('BAD_FORMULA'); + } + } if ($type eq '9') { $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror); } else { @@ -259,7 +265,6 @@ sub caparesponse_check { sub caparesponse_check_list { - my ($tag) = @_; my $responses=$LONCAPA::CAPAresponse_args{'response'}; &LONCAPA_INTERNAL_DEBUG("args ".join(':',%LONCAPA::CAPAresponse_args)); my $type = $LONCAPA::CAPAresponse_args{'type'}; @@ -304,7 +309,7 @@ sub caparesponse_check_list { &LONCAPA_INTERNAL_DEBUG("Initial final response :$responses->[0][-1]:"); my $unit; - if (($type eq 'float') || (($type eq '') && (($tag ne 'stringresponse') && ($tag ne 'stringhint')) ) ) { + if ($type eq 'float' || $type eq '') { #for numerical problems split off the unit # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) { if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) { @@ -321,7 +326,7 @@ sub caparesponse_check_list { $element =~ s/\s//g; } my $appendunit=$unit; - if ($unit=~/\%/) { + if (($unit=~/\%/) && ($answerunit ne '%')) { $element=$element/100; $appendunit=~s/\%//; }