Diff for /loncom/homework/default_homework.lcpm between versions 1.135 and 1.142

version 1.135, 2008/06/10 16:20:29 version 1.142, 2008/11/26 18:11:52
Line 217  sub caparesponse_check { Line 217  sub caparesponse_check {
   
     my $reterror="";      my $reterror="";
     my $result;      my $result;
     if ((($type eq '9') || ($type eq '8')) && ($response=~/\=/)) { return ('BAD_FORMULA','Please submit just an expression, not an equation.'); }      if (($type eq '9') || ($type eq '8')) {
           if ($response=~/\=/) {
               return ('BAD_FORMULA','Please submit just an expression, not an equation.');
           } elsif ($response =~ /\,/) {
               return ('BAD_FORMULA');
           }
       }
     if ($type eq '9') {      if ($type eq '9') {
       $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror);        $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror);
     } else {      } else {
Line 254  sub caparesponse_check { Line 260  sub caparesponse_check {
   
     &LONCAPA_INTERNAL_DEBUG("RetError $reterror: Answer $answer: Response $response:  type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|");      &LONCAPA_INTERNAL_DEBUG("RetError $reterror: Answer $answer: Response $response:  type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|");
     &LONCAPA_INTERNAL_DEBUG(" $answer $response $result ");      &LONCAPA_INTERNAL_DEBUG(" $answer $response $result ");
     return ($result,$reterror)      return ($result,$reterror);
 }  }
   
   
Line 303  sub caparesponse_check_list { Line 309  sub caparesponse_check_list {
   
     &LONCAPA_INTERNAL_DEBUG("Initial final response :$responses->[0][-1]:");      &LONCAPA_INTERNAL_DEBUG("Initial final response :$responses->[0][-1]:");
     my $unit;      my $unit;
     if ($type eq '' || $type eq 'float') {      if ($type eq 'float' || $type eq '') {
  #for numerical problems split off the unit   #for numerical problems split off the unit
 # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) {  # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) {
         if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) {          if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) {
Line 316  sub caparesponse_check_list { Line 322  sub caparesponse_check_list {
     $unit=~s/\s//;      $unit=~s/\s//;
     foreach my $response (@$responses) {      foreach my $response (@$responses) {
        foreach my $element (@$response) {         foreach my $element (@$response) {
           $element =~ s/\s//g;            if (($type eq 'float') || (($type eq '') && ($unit ne ''))) {
                 $element =~ s/\s//g;
             }
           my $appendunit=$unit;            my $appendunit=$unit;
           if ($unit=~/\%/) {            if (($unit=~/\%/) && ($answerunit ne '%'))  {
              $element=$element/100;               $element=$element/100;
              $appendunit=~s/\%//;               $appendunit=~s/\%//;
           }                }    
Line 424  sub caparesponse_check_list { Line 432  sub caparesponse_check_list {
 }  }
   
 sub cas {  sub cas {
     my ($system,$input)=@_;      my ($system,$input,$library)=@_;
     my $output;      my $output;
     if ($system eq 'maxima') {      if ($system eq 'maxima') {
        $output=&maxima_eval($input);         $output=&maxima_eval($input,$library);
       } else {
          $output='Error: unrecognized CAS';
     }      }
     return $output;      return $output;
 }  }
Line 1024  sub sec { Line 1034  sub sec {
     return $sec;      return $sec;
 }  }
   
   sub submission {
      my ($partid,$responseid,$subnumber)=@_;
      my $sub='';
      if ($subnumber) { $sub=$subnumber.':'; }
      return &EXT('user.resource.'.$sub.'resource.'.$partid.'.'.$responseid.'.submission');
   }
   
   sub currentpart {
      return $external::part;
   }
   
 sub eval_time {  sub eval_time {
    my ($timestamp)=@_;     my ($timestamp)=@_;
    unless ($timestamp) { return ''; }     unless ($timestamp) { return ''; }
Line 1048  sub answer_date { Line 1069  sub answer_date {
     return &eval_time(&EXT('resource.'.$partid.'.answerdate'));      return &eval_time(&EXT('resource.'.$partid.'.answerdate'));
 }  }
   
   sub open_date_epoch {
       my ($partid)=@_;
       unless ($partid) { $partid=0; }
       return &EXT('resource.'.$partid.'.opendate');
   }
   
   sub due_date_epoch {
       my ($partid)=@_;
       unless ($partid) { $partid=0; }
       return &EXT('resource.'.$partid.'.duedate');
   }
   
   sub answer_date_epoch {
       my ($partid)=@_;
       unless ($partid) { $partid=0; }
       return &EXT('resource.'.$partid.'.answerdate');
   }
   
 sub array_moments {  sub array_moments {
     my @input=@_;      my @input=@_;
     my (@output,$N);      my (@output,$N);

Removed from v.1.135  
changed lines
  Added in v.1.142


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