--- loncom/homework/default_homework.lcpm 2000/11/29 00:51:57 1.12 +++ loncom/homework/default_homework.lcpm 2001/02/19 20:31:53 1.17 @@ -2,7 +2,9 @@ # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # # +#init some globals $RANDOMINIT=0; +$pi=atan2(1,1)*4; sub caparesponse_check { my $answer=''; #done @@ -67,9 +69,38 @@ sub caparesponse_check { elsif ($result =='10') { $result='SUB_RECORDED'; } elsif ($result =='11') { $result='BAD_FORMULA'; } elsif ($result =='12') { $result='WANTED_NUMERIC'; } - else {$result = "ERROR: Unknown Result: $result";} + else {$result = "ERROR: Unknown Result:$result:$@:";} - return "$result:$error:$answer:$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$units"; + return "$result:
Error $error:
Answer $answer:
Response $response:
$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$units
"; +} + +sub caparesponse_check_list { + my ($response,$expr)=@_; + my $result=''; + my $aresult=''; + my $current_answer; + my $answer = eval $expr.';return $answer'; + my (@list) = eval $answer; + my (@responselist)=split /,/,$response; + my $unit=''; + $result.="Final response :$responselist['-1']:
"; + if ( $responselist['-1']=~ /(.*[^\s])\s+([^\s]+)/ ) { + $responselist['-1']=$1; + $unit=$2; + } + $result.="Final response :$responselist['-1']:
"; + $unit=~s/\s//; + my $i=0; + my $awards=''; + for ($i=0; $i<@list;$i++) { + $aresult=&caparesponse_check($responselist[$i]." $unit", + $expr.';my $answer='.$list[$i].';'); + my ($temp)=split /:/, $aresult; + $awards.="$temp,"; + $result.=$aresult; + } + chop $awards; + return "$awards:
$result"; } sub tex {