Diff for /loncom/homework/default_homework.lcpm between versions 1.66 and 1.70

version 1.66, 2003/09/25 18:48:40 version 1.70, 2004/03/12 16:55:35
Line 44  sub caparesponse_check { Line 44  sub caparesponse_check {
   #not to be used: $ans_fmt    #not to be used: $ans_fmt
   my ($type,$tol,$sig,$ans_fmt,$unit,$calc,$samples) =    my ($type,$tol,$sig,$ans_fmt,$unit,$calc,$samples) =
     eval $_[2].      eval $_[2].
       ';return ($type,$tol,$sig,$ans_fmt,$unit,$calc,$samples);';        ';return ($__LC__type,$__LC__tol,$__LC__sig,$__LC__ans_fmt,$__LC__unit,$__LC__calc,$__LC__samples);';
   
   my $tol_type=''; # gets it's value from whether tol has a % or not done    my $tol_type=''; # gets it's value from whether tol has a % or not done
   my $sig_lbound=''; #done    my $sig_lbound=''; #done
Line 165  sub caparesponse_check_list { Line 165  sub caparesponse_check_list {
   my $answers=join(':',@list);    my $answers=join(':',@list);
   $result.="Got response :$answers:\n";    $result.="Got response :$answers:\n";
   my @responselist;    my @responselist;
   my $type =eval $expr.';return $type;';    my $type =eval $expr.';return $__LC__type;';
     $result.="Got type :$type:\n";
   if ($type ne '' && $#list > 0) {    if ($type ne '' && $#list > 0) {
     (@responselist)=split /,/,$response;      (@responselist)=split /,/,$response;
   } else {    } else {
Line 490  sub format { Line 491  sub format {
   my ($value,$fmt)=@_;    my ($value,$fmt)=@_;
   my $dollarmode;    my $dollarmode;
   if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; }     if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } 
   $fmt=~/e/E/g;    $fmt=~s/e/E/g;
   my $result=sprintf('%.'.$fmt,$value);    my $result=sprintf('%.'.$fmt,$value);
   $result=~s/(E[+-]*)0/$1/;    $result=~s/(E[+-]*)0/$1/;
   if ($dollarmode) {$result=&dollarmode($result);}    if ($dollarmode) {$result=&dollarmode($result);}
Line 498  sub format { Line 499  sub format {
 }  }
   
 sub prettyprint {  sub prettyprint {
   my ($value,$fmt)=@_;    my ($value,$fmt,$target)=@_;
   my $result;    my $result;
   my $dollarmode;    my $dollarmode;
     if (!$target) { $target = $external::target; }
   if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; }     if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } 
   if ($fmt) { $value=sprintf('%.'.$fmt,$value); }    if ($fmt) { $value=sprintf('%.'.$fmt,$value); }
   if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/ ) {    if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/i ) {
     my $frac=$1;      my $frac=$1;
     if ($dollarmode) { $frac=&dollarformat($frac); }      if ($dollarmode) { $frac=&dollarformat($frac); }
     my $exponent=$2;      my $exponent=$2;
Line 512  sub prettyprint { Line 514  sub prettyprint {
     $exponent=~s/^-0*/-/;      $exponent=~s/^-0*/-/;
     if ($exponent eq '-') { undef($exponent); }      if ($exponent eq '-') { undef($exponent); }
     if ($exponent) {      if ($exponent) {
       if ($external::target eq 'web') {        if ($target eq 'web') {
  $result=$frac.'&#215;10<sup>'.$exponent.'</sup>';   $result=$frac.'&#215;10<sup>'.$exponent.'</sup>';
       } elsif ($external::target eq 'tex') {        } elsif ($target eq 'tex') {
  $result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}';   $result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}';
       } else {        } else {
  $result=$value;   $result=$value;
Line 524  sub prettyprint { Line 526  sub prettyprint {
     }      }
   } else {    } else {
     $result=$value;      $result=$value;
     if ($dollarmode) { $result=&dollarformat($result); }      if ($dollarmode) { $result=&dollarformat($result,$target); }
   }    }
   return $result;    return $result;
 }  }
   
 sub dollarformat {  sub dollarformat {
   my ($number) = @_;    my ($number,$target) = @_;
     if (!$target) { $target = $external::target; }
   if ($number =~ /\./) {    if ($number =~ /\./) {
     while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) {      while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) {
       $number = $1.','.$2.$3;        $number = $1.','.$2.$3;
Line 540  sub dollarformat { Line 543  sub dollarformat {
       $number = $1.','.$2.$3;        $number = $1.','.$2.$3;
     }      }
   }    }
   if ($external::target eq 'tex') {    if ($target eq 'tex') {
     $number='\$'.$number; #' stupid emacs      $number='\$'.$number; #' stupid emacs
   } else {    } else {
     $number='$'.$number; #' stupid emacs      $number='$'.$number; #' stupid emacs

Removed from v.1.66  
changed lines
  Added in v.1.70


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