version 1.44, 2001/12/21 21:37:26
|
version 1.48, 2002/07/17 18:08:39
|
Line 101 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 238 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 436 sub floor {return (($_[0]-int($_[0]))==
|
Line 442 sub floor {return (($_[0]-int($_[0]))==
|
|
|
sub format { |
sub format { |
my ($value,$fmt)=@_; |
my ($value,$fmt)=@_; |
return sprintf('%.'.$fmt,$value); |
my $dollarmode; |
|
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
|
my $result=sprintf('%.'.$fmt,$value); |
|
if ($dollarmode) {$result=&dollarmode($result);} |
|
return $result; |
|
} |
|
|
|
sub prettyprint { |
|
my ($value,$fmt)=@_; |
|
my $result; |
|
my $dollarmode; |
|
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
|
if ($fmt) { $value=sprintf('%.'.$fmt,$value); } |
|
if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/ ) { |
|
my $frac=$1; |
|
if ($dollarmode) { $frac=&dollarformat($frac); } |
|
my $exponent=$2; |
|
$exponent=~s/^\+0*//; |
|
if ($exponent) { |
|
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=$frac; |
|
} |
|
} else { |
|
$result=$value; |
|
if ($dollarmode) { $result=&dollarformat($result); } |
|
} |
|
return $result; |
|
} |
|
|
|
sub dollarformat { |
|
my ($number) = @_; |
|
if ($number =~ /\./) { |
|
while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) { |
|
$number = $1.','.$2.$3; |
|
} |
|
} else { |
|
while ($number =~ /([^,]+)([^,][^,][^,])([,0-9]*)$/) { |
|
$number = $1.','.$2.$3; |
|
} |
|
} |
|
if ($external::target eq 'tex') { |
|
$number='\$'.$number; #' stupid emacs |
|
} else { |
|
$number='$'.$number; #' stupid emacs |
|
} |
|
return $number; |
} |
} |
|
|
sub map { |
sub map { |