Diff for /loncom/homework/default_homework.lcpm between versions 1.133 and 1.141

version 1.133, 2008/03/06 14:27:43 version 1.141, 2008/09/27 07:26:45
Line 254  sub caparesponse_check { Line 254  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 303  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 316  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 426  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 1028  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 {
      my ($timestamp)=@_;
      unless ($timestamp) { return ''; }
      return &locallocaltime($timestamp);
   }
   
 sub open_date {   sub open_date { 
     my @dc = split(/\s+/,localtime(&EXT('resource.0.opendate')));      my ($partid)=@_;
     return '' if ($dc[0] eq "Wed" and $dc[2] == 31 and $dc[4] == 1969);      unless ($partid) { $partid=0; }
     my @hm = split(/:/,$dc[3]);      return &eval_time(&EXT('resource.'.$partid.'.opendate'));
     my $ampm = " am";  }
     if ($hm[0] > 12) {  
  $hm[0]-=12;  sub due_date {
  $ampm = " pm";      my ($partid)=@_;
     }      unless ($partid) { $partid=0; } 
     return $dc[0].', '.$dc[1].' '.$dc[2].', '.$dc[4].' at '.$hm[0].':'.$hm[1].$ampm;      return &eval_time(&EXT('resource.'.$partid.'.duedate'));
 }  
   
 sub due_date {   
     my @dc = split(/\s+/,localtime(&EXT('resource.0.duedate')));  
     return '' if ($dc[0] eq "Wed" and $dc[2] == 31 and $dc[4] == 1969);  
     my @hm = split(/:/,$dc[3]);  
     my $ampm = " am";  
     if ($hm[0] > 12) {  
  $hm[0]-=12;  
  $ampm = " pm";  
     }  
     return $dc[0].', '.$dc[1].' '.$dc[2].', '.$dc[4].' at '.$hm[0].':'.$hm[1].$ampm;  
 }  }
   
 sub answer_date {   sub answer_date { 
     my @dc = split(/\s+/,localtime(&EXT('resource.0.answerdate')));      my ($partid)=@_;
     return '' if ($dc[0] eq "Wed" and $dc[2] == 31 and $dc[4] == 1969);      unless ($partid) { $partid=0; }
     my @hm = split(/:/,$dc[3]);      return &eval_time(&EXT('resource.'.$partid.'.answerdate'));
     my $ampm = " am";  }
     if ($hm[0] > 12) {  
  $hm[0]-=12;  sub open_date_epoch {
  $ampm = " pm";      my ($partid)=@_;
     }      unless ($partid) { $partid=0; }
     return $dc[0].', '.$dc[1].' '.$dc[2].', '.$dc[4].' at '.$hm[0].':'.$hm[1].$ampm;      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 {

Removed from v.1.133  
changed lines
  Added in v.1.141


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