Diff for /loncom/imspackages/imsprocessor.pm between versions 1.21 and 1.24

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') {

Removed from v.1.21  
changed lines
  Added in v.1.24


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>