Diff for /loncom/imspackages/imsprocessor.pm between versions 1.23 and 1.26

version 1.23, 2005/07/13 17:42:53 version 1.26, 2005/07/13 21:21:01
Line 2095  sub parse_webct4_questionDB { Line 2095  sub parse_webct4_questionDB {
             $$settings{$id}{$numid}{toltype} = $attr->{type};              $$settings{$id}{$numid}{toltype} = $attr->{type};
         }          }
         if ("@state" eq "questestinterop section item resprocessing itemproc_extension webct:x_webct_v01_autocalculate webct:x_webct_v01_unit") {          if ("@state" eq "questestinterop section item resprocessing itemproc_extension webct:x_webct_v01_autocalculate webct:x_webct_v01_unit") {
             my $unitid = $attr->{ident};              $unitid = $attr->{ident};
             %{$$settings{$id}{$numid}{$unitid}} = ();              %{$$settings{$id}{$numid}{$unitid}} = ();
             push(@{$$settings{$id}{$numid}{units}},$unitid);              push(@{$$settings{$id}{$numid}{units}},$unitid);
             $$settings{$id}{$numid}{$unitid}{value} = $attr->{value};               $$settings{$id}{$numid}{$unitid}{value} = $attr->{value}; 
Line 3060  sub write_webct4_questions { Line 3060  sub write_webct4_questions {
                     } else {                      } else {
                         $output .= qq|                          $output .= qq|
 <optionresponse max="10" randomize="yes">  <optionresponse max="10" randomize="yes">
     <foilgroup options=$allmatchlist>      <foilgroup options="$allmatchlist">
 |;  |;
                     }                      }
                 } else {                  } else {
Line 3251  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};
                     $formula =~ s/ln/\&log/g;                      my $pattern = join('|',(sort (keys (%mathfns))));
                     $formula =~ s/sqrt/\&sqrt/g;                      $formula =~ s/($pattern)/\&$mathfns{$1}/g;
                     $formula =~ s/sin/\&sin/g;  
                     $formula =~ s/cos/\&cos/g;  
                     $formula =~ s/exp/\&exp/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 3305  sub write_webct4_questions { Line 3323  sub write_webct4_questions {
                         }                          }
                         my $unitentry = '';                          my $unitentry = '';
                         if ($unit ne '') {                          if ($unit ne '') {
                             $unitentry =  'unit='.$unit;                              $unitentry =  'unit="'.$unit.'"';
                         }                          }
                         $output .= qq|                          $output .= qq|
 <numericalresponse $unitentry $ansformat  answer="\$answervar">  <numericalresponse $unitentry $ansformat  answer="\$answervar">

Removed from v.1.23  
changed lines
  Added in v.1.26


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