version 1.38, 2001/10/05 22:28:31
|
version 1.39, 2001/10/29 21:15:44
|
Line 15 $deg2rad=$pi/180.0;
|
Line 15 $deg2rad=$pi/180.0;
|
sub caparesponse_check { |
sub caparesponse_check { |
#not properly used yet: calc |
#not properly used yet: calc |
#not to be used: $ans_fmt |
#not to be used: $ans_fmt |
my ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc) = |
my ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc,$samples) = |
eval $_[1].';return ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc);'; |
eval $_[1]. |
|
';return ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc,$samples);'; |
|
|
my $tol_type=''; # gets it's value from whether tol has a % or not done |
my $tol_type=''; # gets it's value from whether tol has a % or not done |
my $sig_lbound=''; #done |
my $sig_lbound=''; #done |
Line 47 sub caparesponse_check {
|
Line 48 sub caparesponse_check {
|
} else { return "ERROR: Unknown type of answer: $type" } |
} else { return "ERROR: Unknown type of answer: $type" } |
} |
} |
|
|
|
my $points; |
|
my $id_list; |
|
#formula type setup the sample points |
|
if ($type eq '8') { |
|
($id_list,$points)=split(/@/,$samples); |
|
$message.="Found :$points: points<br />"; |
|
} |
if ($tol eq '') { |
if ($tol eq '') { |
$tol=0.0; |
$tol=0.0; |
$tol_type=1; #TOL_ABSOLUTE |
$tol_type=1; #TOL_ABSOLUTE |
Line 68 sub caparesponse_check {
|
Line 76 sub caparesponse_check {
|
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
$tol_type,$tol, |
$tol_type,$tol, |
$sig_lbound,$sig_ubound, |
$sig_lbound,$sig_ubound, |
$ans_fmt,$unit,$calc); |
$ans_fmt,$unit,$calc,$id_list, |
|
$points,$external::randomseed); |
|
|
if ($result == '1') { $result='EXACT_ANS'; } |
if ($result == '1') { $result='EXACT_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
Line 92 sub get_array_args {
|
Line 101 sub get_array_args {
|
# do these first, because who knows what varname the instructor might have used |
# do these first, because who knows what varname the instructor might have used |
# but it probably isn't $CAPARESPONSE_CHECK_LIST_answer |
# but it probably isn't $CAPARESPONSE_CHECK_LIST_answer |
my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #' |
my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #' |
my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer; |
if ($CAPARESPONSE_CHECK_LIST_answer =~ /^\s*[\$\@]/) { |
|
my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer; |
|
} |
my $result=''; |
my $result=''; |
$result.="error:$@:<br />"; |
$result.="error:$@:<br />"; |
# if the eval fails just use what is in the answer exactly |
# if the eval fails just use what is in the answer exactly |
Line 108 sub caparesponse_check_list {
|
Line 119 sub caparesponse_check_list {
|
my (@list) = &get_array_args($expr,'answer'); |
my (@list) = &get_array_args($expr,'answer'); |
my $aresult=''; |
my $aresult=''; |
my $current_answer; |
my $current_answer; |
$result.="Got response :$CAPARESPONSE_CHECK_LIST_answer:$list[0]:<br />"; |
my $answers=join(':',@list); |
|
$result.="Got response :$answers:<br />"; |
my @responselist; |
my @responselist; |
my $type =eval $expr.';return $answer;'; |
my $type =eval $expr.';return $answer;'; |
if ($type ne '' && $#list > 0) { |
if ($type ne '' && $#list > 0) { |