version 1.21, 2005/05/28 01:32:32
|
version 1.24, 2005/07/13 19:56:37
|
Line 2893 sub write_webct4_questions {
|
Line 2893 sub write_webct4_questions {
|
$resourcedata{$symb.'randomize'} = 'yes'; |
$resourcedata{$symb.'randomize'} = 'yes'; |
$resourcedata{$symb.'maxfoils'} = 10; |
$resourcedata{$symb.'maxfoils'} = 10; |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
$output = qq|<problem> |
unless ($$settings{$id}{class} eq 'numerical') { |
|
$output = qq|<problem> |
|; |
|; |
|
} |
} |
} |
$$total{prob} ++; |
$$total{prob} ++; |
if (exists($$settings{$id}{uri})) { |
if (exists($$settings{$id}{uri})) { |
Line 3249 sub write_webct4_questions {
|
Line 3251 sub write_webct4_questions {
|
} |
} |
} |
} |
} elsif ($$settings{$id}{class} eq 'numerical') { |
} elsif ($$settings{$id}{class} eq 'numerical') { |
|
my %mathfns = ( |
|
'abs' => 'abs', |
|
'acos' => 'acos', |
|
'asin' => 'asin', |
|
'atan' => 'atan', |
|
'ceil' => 'ceil', |
|
'cos' => 'cos', |
|
'exp' => 'exp', |
|
'fact' => 'factorial', |
|
'floor' => 'floor', |
|
'int' => 'int', |
|
'ln' => 'log', |
|
'log' => 'log', |
|
'max' => 'max', |
|
'min' => 'min', |
|
'round' => 'roundto', |
|
'sin' => 'sin', |
|
'sqrt' => 'sqrt', |
|
'tan' => 'tan', |
|
); |
|
|
my $scriptblock = qq| |
my $scriptblock = qq| |
<script type="loncapa/perl"> |
<script type="loncapa/perl"> |
|; |
|; |
foreach my $numid (@{$$settings{$id}{numids}}) { |
foreach my $numid (@{$$settings{$id}{numids}}) { |
my $formula = $$settings{$id}{$numid}{formula}; |
my $formula = $$settings{$id}{$numid}{formula}; |
|
my $pattern = join('|',(sort (keys (%mathfns)))); |
|
$formula =~ s/($pattern)/\&$mathfns{$1}/g; |
foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) { |
foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) { |
my $decnum = $$settings{$id}{$numid}{vars}{$var}{dec}; |
my $decnum = $$settings{$id}{$numid}{vars}{$var}{dec}; |
my $increment = '0.'; |
my $increment = '0.'; |
Line 3267 sub write_webct4_questions {
|
Line 3292 sub write_webct4_questions {
|
} |
} |
$increment .= '1'; |
$increment .= '1'; |
} |
} |
$formula =~ s/{($var)}/\$$1/g; |
$formula =~ s/{($var)}/(\$$1)/g; |
$formula =~ s/ln\(?([^\)])\)?/ &log($1) /g; |
|
$formula =~ s/sqrt/\&sqrt/g; |
|
$scriptblock .= qq| |
$scriptblock .= qq| |
\$$var=&random($$settings{$id}{$numid}{vars}{$var}{min},$$settings{$id}{$numid}{vars}{$var}{max},$increment); |
\$$var=&random($$settings{$id}{$numid}{vars}{$var}{min},$$settings{$id}{$numid}{vars}{$var}{max},$increment); |
|; |
|; |
Line 3279 sub write_webct4_questions {
|
Line 3302 sub write_webct4_questions {
|
</script> |
</script> |
|; |
|; |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
$output = $scriptblock.$output; |
$output = "<problem>\n".$scriptblock.$output; |
my $ansformat = ''; |
my $ansformat = ''; |
my $sigfig = '0,15'; |
my $sigfig = '0,15'; |
if ($$settings{$id}{$numid}{format} eq 'sig') { |
if ($$settings{$id}{$numid}{format} eq 'sig') { |