version 1.42, 2001/12/04 14:49:37
|
version 1.47, 2002/05/31 22:19:06
|
Line 30
|
Line 30
|
# |
# |
# 05/25/2001 H. K. Ng |
# 05/25/2001 H. K. Ng |
# 05/31/2001 H. K. Ng |
# 05/31/2001 H. K. Ng |
|
# 12/21/2001 Matthew |
# |
# |
#init some globals |
#init some globals |
$hidden::RANDOMINIT=0; |
$hidden::RANDOMINIT=0; |
$pi=atan2(1,1)*4; |
$pi=atan2(1,1)*4; |
$rad2deg=180.0/$pi; |
$rad2deg=180.0/$pi; |
$deg2rad=$pi/180.0; |
$deg2rad=$pi/180.0; |
|
$"=' '; |
|
|
sub caparesponse_check { |
sub caparesponse_check { |
#not properly used yet: calc |
#not properly used yet: calc |
Line 99 sub caparesponse_check {
|
Line 101 sub caparesponse_check {
|
$sig_ubound =15; #SIG_UB_DEFAULT |
$sig_ubound =15; #SIG_UB_DEFAULT |
} else { |
} else { |
($sig_lbound,$sig_ubound) = split /,/,$sig; |
($sig_lbound,$sig_ubound) = split /,/,$sig; |
|
if (!$sig_lbound) { |
|
$sig_lbound = 0; #SIG_LB_DEFAULT |
|
$sig_ubound =15; #SIG_UB_DEFAULT |
|
} |
|
if (!$sig_ubound) { $sig_ubound=$sig_lbound; } |
} |
} |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
$tol_type,$tol, |
$tol_type,$tol, |
Line 208 sub web {
|
Line 215 sub web {
|
if ( $external::target eq "tex" ) { |
if ( $external::target eq "tex" ) { |
return @_[1]; |
return @_[1]; |
} else { |
} else { |
if ( $external::target eq "web") { |
if ( $external::target eq "web" || $external::target eq "answer") { |
return @_[2]; |
return @_[2]; |
} else { |
} else { |
return @_[0]; |
return @_[0]; |
Line 236 sub random {
|
Line 243 sub random {
|
srand($external::randomseed); |
srand($external::randomseed); |
$hidden::RANDOMINIT=1; |
$hidden::RANDOMINIT=1; |
} |
} |
|
if (!defined($step)) { $step=1; } |
my $num=1+int(($end-$start)/$step); |
my $num=1+int(($end-$start)/$step); |
my $result=$start + int(rand() * $num)*$step; |
my $result=$start + int(rand() * $num)*$step; |
return $result; |
return $result; |
Line 437 sub format {
|
Line 445 sub format {
|
return sprintf('%.'.$fmt,$value); |
return sprintf('%.'.$fmt,$value); |
} |
} |
|
|
|
sub prettyprint { |
|
my ($value,$fmt)=@_; |
|
my $result; |
|
if ($fmt) { $value=sprintf('%.'.$fmt,$value); } |
|
if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/ ) { |
|
my $frac=$1; |
|
my $exponent=$2; |
|
$exponent=~s/^\+0*//; |
|
if (!$exponent) { return $frac; } |
|
if ($external::target eq 'web') { |
|
$result=$frac.'×10<sup>'.$exponent.'</sup>'; |
|
} elsif ($external::target eq 'tex') { |
|
$result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}'; |
|
} else { |
|
$result=$value; |
|
} |
|
} else { |
|
$result=$value; |
|
} |
|
return $result; |
|
} |
|
|
sub map { |
sub map { |
my ($phrase,$dest,$source)=@_; |
my ($phrase,$dest,$source)=@_; |
my @seed = &random_seed_from_phrase($phrase); |
my @seed = &random_seed_from_phrase($phrase); |