Diff for /loncom/homework/default_homework.lcpm between versions 1.75 and 1.79

version 1.75, 2004/03/19 22:02:03 version 1.79, 2004/05/17 21:15:56
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 #  #
 # Guy Albertelli  
 #  
 # 05/25/2001 H. K. Ng  
 # 05/31/2001 H. K. Ng  
 # 12/21/2001 Matthew  
 #  
 #init some globals  #init some globals
 $hidden::RANDOMINIT=0;  $hidden::RANDOMINIT=0;
 $pi=atan2(1,1)*4;  $pi=atan2(1,1)*4;
Line 68  sub caparesponse_check { Line 63  sub caparesponse_check {
     } else {      } else {
  $message .="no ws in :$response:\n";   $message .="no ws in :$response:\n";
     }      }
       if ($type eq 'cs' || $type eq 'ci' || $type eq 'mc') {
    #for string answers make surec all places spaces occur, there is 
           #really only 1 space, in both the answer and the response
    $answer=~s/ +/ /g;
    $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 135  sub caparesponse_check { Line 135  sub caparesponse_check {
     elsif ($result == '9') { $result='ANS_CNT_NOT_MATCH'; }      elsif ($result == '9') { $result='ANS_CNT_NOT_MATCH'; }
     elsif ($result =='10') { $result='SUB_RECORDED'; }      elsif ($result =='10') { $result='SUB_RECORDED'; }
     elsif ($result =='11') { $result='BAD_FORMULA'; }      elsif ($result =='11') { $result='BAD_FORMULA'; }
     elsif ($result =='12') { $result='WANTED_NUMERIC'; }      elsif ($result =='13') { $result='UNIT_INVALID_INSTRUCTOR'; }
       elsif ($result =='141') { $result='UNIT_INVALID_STUDENT'; }
       elsif ($result =='142') { $result='UNIT_INVALID_STUDENT'; }
       elsif ($result =='143') { $result='UNIT_INVALID_STUDENT'; }
       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:\nError $error:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message",$reterror);
Line 480  sub format { Line 484  sub format {
     if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; }       if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } 
     $fmt=~s/e/E/g;      $fmt=~s/e/E/g;
     my $result=sprintf('%.'.$fmt,$value);      my $result=sprintf('%.'.$fmt,$value);
       if ($fmt eq '0f') { $result .='.'; }
     $result=~s/(E[+-]*)0/$1/;      $result=~s/(E[+-]*)0/$1/;
     if ($dollarmode) {$result=&dollarmode($result);}      if ($dollarmode) {$result=&dollarmode($result);}
     return $result;      return $result;
Line 497  sub chemparse { Line 502  sub chemparse {
  if ($token eq '<=>') {   if ($token eq '<=>') {
     if ($external::target eq 'web' &&      if ($external::target eq 'web' &&
  &EXT('request.browser.unicode')) {   &EXT('request.browser.unicode')) {
  $formula .= '&#8660; ';   $formula .= '&#8652; ';
     } else {      } else {
  $formula .= &web('<=> ','<m>\ensuremath{\rightleftharpoons}</m> ',   $formula .= &web('<=> ','<m>\ensuremath{\rightleftharpoons}</m> ',
  '&lt;=$gt; ');   '&lt;=$gt; ');
Line 509  sub chemparse { Line 514  sub chemparse {
   
  my $molecule = $2;   my $molecule = $2;
  # subscripts   # subscripts
  $molecule =~ s|(?<=[a-zA-Z\[\s])(\d+)|<sub>$1</sub>|g;   $molecule =~ s|(?<=[a-zA-Z\)\]\s])(\d+)|<sub>$1</sub>|g;
  # superscripts   # superscripts
  $molecule =~ s|\^(\d*[+\-]*)|<sup>$1</sup>|g;   $molecule =~ s|\^(\d*[+\-]*)|<sup>$1</sup>|g;
  # strip whitespace   # strip whitespace
Line 532  sub prettyprint { Line 537  sub prettyprint {
     if ($fmt =~ /chem/i) { return(&chemparse($value)); }      if ($fmt =~ /chem/i) { return(&chemparse($value)); }
     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 ($fmt eq '0f') { $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); }

Removed from v.1.75  
changed lines
  Added in v.1.79


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