Diff for /loncom/homework/default_homework.lcpm between versions 1.78 and 1.83

version 1.78, 2004/05/17 18:26:31 version 1.83, 2004/05/27 03:46:02
Line 69  sub caparesponse_check { Line 69  sub caparesponse_check {
  $answer=~s/ +/ /g;   $answer=~s/ +/ /g;
  $response=~s/ +/ /g;   $response=~s/ +/ /g;
     }      }
       if ($type eq 'float') { $response=~s/,//g; }
     if (length($response) > 500) { return "TOO_LONG: Answer too long"; }      if (length($response) > 500) { return "TOO_LONG: Answer too long"; }
   
     if ($type eq '' ) {      if ($type eq '' ) {
Line 142  sub caparesponse_check { Line 143  sub caparesponse_check {
     elsif ($result =='15') { $result='UNIT_IRRECONCIBLE'; }      elsif ($result =='15') { $result='UNIT_IRRECONCIBLE'; }
     else  {$result = "ERROR: Unknown Result:$result:$@:";}      else  {$result = "ERROR: Unknown Result:$result:$@:";}
   
     return ("$result:\nRetError $reterror:\nError $error:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message",$reterror);      return ("$result:\nRetError $reterror:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message",$reterror);
 }  }
   
   
Line 172  sub caparesponse_check_list { Line 173  sub caparesponse_check_list {
     $unit=$2;      $unit=$2;
  }   }
     }      }
     $result.="Final final response :$responselist['-1']:\n";      $result.="Final final response :$responselist['-1']:$unit:\n";
     $result.=":$#list: answers\n";      $result.=":$#list: answers\n";
     $unit=~s/\s//;      $unit=~s/\s//;
     my $i=0;      my $i=0;
Line 480  sub floor  {return (($_[0]-CORE::int($_[ Line 481  sub floor  {return (($_[0]-CORE::int($_[
   
 sub format {  sub format {
     my ($value,$fmt)=@_;      my ($value,$fmt)=@_;
     my $dollarmode;      my ($dollarmode,$commamode,$alwaysperiod,$options);
     if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; }       if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; } 
       #if ($options =~ /\$/) { $dollamode=1; }
       #if ($options =~ /,/)  { $commamode=1; }
       if ($options =~ /\./) { $alwaysperiod=1; }
     $fmt=~s/e/E/g;      $fmt=~s/e/E/g;
     my $result=sprintf('%.'.$fmt,$value);      my $result=sprintf('%.'.$fmt,$value);
       if ($alwaysperiod && $fmt eq '0f') { $result .='.'; }
     $result=~s/(E[+-]*)0/$1/;      $result=~s/(E[+-]*)0/$1/;
     if ($dollarmode) {$result=&dollarmode($result);}      #if ($dollarmode) {$result=&dollarformat($result);}
       #if ($commamode) {$result=&commaformat($result);}
     return $result;      return $result;
 }  }
   
Line 531  sub chemparse { Line 537  sub chemparse {
 sub prettyprint {  sub prettyprint {
     my ($value,$fmt,$target)=@_;      my ($value,$fmt,$target)=@_;
     my $result;      my $result;
     my $dollarmode;  
     if (!$target) { $target = $external::target; }      if (!$target) { $target = $external::target; }
     if ($fmt =~ /chem/i) { return(&chemparse($value)); }      if ($fmt =~ /chem/i) { return(&chemparse($value)); }
     if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; }       my ($dollarmode,$commamode,$alwaysperiod,$options);
       if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; } 
       if ($options =~ /\$/) { $dollamode=1; }
       if ($options =~ /,/)  { $commamode=1; }
       if ($options =~ /\./) { $alwaysperiod=1; }
     if ($fmt) { $value=sprintf('%.'.$fmt,$value); }      if ($fmt) { $value=sprintf('%.'.$fmt,$value); }
       if ($alwaysperiod && $fmt eq '0f') {
    if ($target eq 'tex') {
       $value .='\\ensuremath{.}';
    } else {
       $value .='.';
    }
       }
     if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/i ) {      if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/i ) {
  my $frac=$1;   my $frac=$1;
  if ($dollarmode) { $frac=&dollarformat($frac); }   if ($dollarmode) { $frac=&dollarformat($frac); }
    if ($commamode) { $frac=&commaformat($frac); }
  my $exponent=$2;   my $exponent=$2;
  $exponent=~s/^\+0*//;   $exponent=~s/^\+0*//;
  $exponent=~s/^-0*/-/;   $exponent=~s/^-0*/-/;
Line 558  sub prettyprint { Line 575  sub prettyprint {
     } else {      } else {
  $result=$value;   $result=$value;
  if ($dollarmode) { $result=&dollarformat($result,$target); }   if ($dollarmode) { $result=&dollarformat($result,$target); }
    if ($commamode) { $result=&commaformat($result,$target); }
     }      }
     return $result;      return $result;
 }  }
   
 sub dollarformat {  sub commaformat {
     my ($number,$target) = @_;      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 574  sub dollarformat { Line 591  sub dollarformat {
     $number = $1.','.$2.$3;      $number = $1.','.$2.$3;
  }   }
     }      }
       return $number;
   }
   
   sub dollarformat {
       my ($number,$target) = @_;
       if (!$target) { $target = $external::target; }
       $number=&commaformat($number,$target);
     if ($target eq 'tex') {      if ($target eq 'tex') {
  $number='\$'.$number; #' stupid emacs   $number='\$'.$number; #' stupid emacs
     } else {      } else {

Removed from v.1.78  
changed lines
  Added in v.1.83


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