Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.130 and 1.138

version 1.130, 2004/02/13 21:05:34 version 1.138, 2004/03/02 16:09:42
Line 382  sub get_table_sizes { Line 382  sub get_table_sizes {
     my $cell_width=0;      my $cell_width=0;
     foreach my $member (@$rbubble_values) {      foreach my $member (@$rbubble_values) {
  my $cell_width_real=0;   my $cell_width_real=0;
  if ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {   if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$\\times\s*10\^{(\+|-)?(\d+)}\$/) {
       $cell_width_real=(length($2)+length($3)+length($5)+7)*$scale;
    } elsif ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {
     $cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;      $cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;
  } elsif ($member=~/(\d*)\.?(\d*)/) {          } elsif ($member=~/(\d*)\.(\d*)/) {
     $cell_width_real=(length($1)+length($2)+2)*$scale;      $cell_width_real=(length($1)+length($2)+3)*$scale;
  } else {   } else {
     $cell_width_real=(length($member)+1)*$scale;      $cell_width_real=(length($member)+1)*$scale*0.9;
  }   }
  if ($cell_width_real>$cell_width) {$cell_width=$cell_width_real;}   if ($cell_width_real>$cell_width) {$cell_width=$cell_width_real;}
     }      }
     $cell_width+=8;      $cell_width+=8; 
     my $textwidth;      my $textwidth;
     if ($ENV{'form.textwidth'} ne '') {      if ($ENV{'form.textwidth'} ne '') {
  $ENV{'form.textwidth'}=~/(\d+)/;   $ENV{'form.textwidth'}=~/(\d*)\.?(\d*)/;
  $textwidth=$1;   $textwidth=$1.'.'.$2;
     } else {      } else {
  $ENV{'textwidth'}=~/(\d+)/;   $ENV{'textwidth'}=~/(\d+)\.?(\d*)/;
  $textwidth=$1;   $textwidth=$1.'.'.$2;
     }      }
     my $bubbles_per_line=int($textwidth/$cell_width);      my $bubbles_per_line=int($textwidth/$cell_width);
       if (($bubbles_per_line > $number_of_bubbles/2) && ($number_of_bubbles % 2==0)) {$bubbles_per_line=$number_of_bubbles/2;}
     my $number_of_tables = int($number_of_bubbles/$bubbles_per_line);      my $number_of_tables = int($number_of_bubbles/$bubbles_per_line);
     my @table_range = ();      my @table_range = ();
     for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;}      for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;}
Line 409  sub get_table_sizes { Line 412  sub get_table_sizes {
  push @table_range,($number_of_bubbles % $bubbles_per_line);   push @table_range,($number_of_bubbles % $bubbles_per_line);
     }      }
     $cell_width-=8;      $cell_width-=8;
       $cell_width=$cell_width*3/4;
     return ($cell_width,$number_of_tables,@table_range);      return ($cell_width,$number_of_tables,@table_range);
 }  }
   
Line 458  sub make_numerical_bubbles { Line 462  sub make_numerical_bubbles {
     @bubble_values=sort {$a <=> $b} (@bubble_values,$answer);      @bubble_values=sort {$a <=> $b} (@bubble_values,$answer);
     &Apache::lonxml::debug("Answer was :$answer: returning :".$#bubble_values.": whih are :".join(':',@bubble_values));      &Apache::lonxml::debug("Answer was :$answer: returning :".$#bubble_values.": whih are :".join(':',@bubble_values));
     &Math::Random::random_set_seed(@oldseed);      &Math::Random::random_set_seed(@oldseed);
       if (defined($format) && $format ne '') {
    foreach my $value (@bubble_values) {
       $value=&format_number($value,$format,$target);
    }
       }
     return @bubble_values;      return @bubble_values;
  }   }
  if (defined($$incorrect[0]) &&   if (defined($$incorrect[0]) &&
Line 513  sub get_sigrange { Line 522  sub get_sigrange {
  }   }
  if (!$sig_ubound) { $sig_ubound=$sig_lbound; }   if (!$sig_ubound) { $sig_ubound=$sig_lbound; }
     }      }
       if (($sig_ubound<$sig_lbound) ||
    ($sig_lbound > 15) ||
    ($sig =~/(\+|-)/ ) ) {
    my $errormsg=&mt("Invalid Significant figures detected")." ($sig)";
    if ($ENV{'request.state'} eq 'construct') {
       $errormsg.=
    &Apache::loncommon::help_open_topic('Significant_Figures');
    }
    &Apache::lonxml::error($errormsg);
       }
     return ($sig_ubound,$sig_lbound);      return ($sig_ubound,$sig_lbound);
 }  }
   
Line 535  sub start_stringresponse { Line 554  sub start_stringresponse {
     [['inline','Inline']],$token);      [['inline','Inline']],$token);
  $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row();   $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  &Apache::edit::get_new_args($token,$parstack,         my $constructtag;
     $safeeval,'answer','type');         $constructtag=&Apache::edit::get_new_args($token,$parstack,
  my $answerdisplay=$ENV{'form.'.&Apache::edit::html_element_name('answerdisplay')};                                                   $safeeval,'answer',
  if ($answerdisplay) {                                                   'type','answerdisplay');
     $token->[2]->{'answerdisplay'}=$answerdisplay;         if ($constructtag) {
  } else {             $result = &Apache::edit::rebuild_tag($token);
     delete $token->[2]->{'answerdisplay'};             $result.=&Apache::edit::handle_insert();
  }         }
  $result = &Apache::edit::rebuild_tag($token);  
  $result.=&Apache::edit::handle_insert();  
     } elsif ($target eq 'answer' || $target eq 'grade') {      } elsif ($target eq 'answer' || $target eq 'grade') {
  &Apache::response::reset_params();   &Apache::response::reset_params();
     }      }

Removed from v.1.130  
changed lines
  Added in v.1.138


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