Diff for /loncom/homework/default_homework.lcpm between versions 1.120 and 1.123

version 1.120, 2006/11/10 17:45:52 version 1.123, 2006/12/15 22:11:43
Line 256  sub caparesponse_check { Line 256  sub caparesponse_check {
     return ($result,$reterror)      return ($result,$reterror)
 }  }
   
 sub maxima_cas_formula_fix {  
    my ($expression)=@_;  
    return &implicit_multiplication($expression);  
 }  
   
 sub capa_formula_fix {  
    my ($expression)=@_;  
    return &implicit_multiplication($expression);  
 }  
   
 sub implicit_multiplication {  
     my ($expression)=@_;  
 # Escape scientific notation, so 3e8 does not become 3*e*8  
 # 3e8 -> 3&8; 3e-8 -> 3&-8; 3E+8 -> e&+8  
     $expression=~s/(\d+)e([\+\-]*\d+)/$1\&\($2\)/gsi;  
 # 3x10^8 -> 3&8; 3*10^-8 -> 3&-8  
     $expression=~s/(\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1\&\($2\)/gsi;  
 # Fill in multiplication signs  
 # a b -> a*b;3 b -> 3*b;3 4 -> 3*4  
     $expression=~s/(\w)\s+(\w)/$1\*$2/gs;  
 # )( -> )*(; ) ( -> )*(  
     $expression=~s/\)\s*\(/\)\*\(/gs;  
 # 3a -> 3*a; 3( -> 3*(; 3 ( -> 3*(; 3A -> 3*A  
     $expression=~s/(\d)\s*([a-zA-Z\(])/$1\*$2/gs;  
 # a ( -> a*(  
     $expression=~s/(\w)\s+\(/$1\*\(/gs;  
 # a3 -> a*3;  
     $expression=~s/([a-zA-Z])(\d)/$1\*$2/gs;  
 # )a -> )*a; )3 -> )*3; ) 3 -> )*3  
     $expression=~s/\)\s*(\w)/\)\*$1/gs;  
 # 3&8 -> 3e8; 3&-4 -> 3e-4  
     $expression=~s/(\d+)\&\(([\+\-]*\d+)\)/$1e$2/gs;  
     return $expression;  
 }  
   
 sub caparesponse_check_list {  sub caparesponse_check_list {
     my $responses=$LONCAPA::CAPAresponse_args{'response'};      my $responses=$LONCAPA::CAPAresponse_args{'response'};
     &LONCAPA_INTERNAL_DEBUG(" answer is ".  #    &LONCAPA_INTERNAL_DEBUG(" answer is ".
     &LONCAPA_INTERNAL_Dumper($LONCAPA::CAPAresponse_answer).":\n");  #    &LONCAPA_INTERNAL_Dumper($LONCAPA::CAPAresponse_answer).":\n");
     &LONCAPA_INTERNAL_DEBUG(" respons is ".  #    &LONCAPA_INTERNAL_DEBUG(" respons is ".
     &LONCAPA_INTERNAL_Dumper($responses).":\n");  #    &LONCAPA_INTERNAL_Dumper($responses).":\n");
     &LONCAPA_INTERNAL_DEBUG("args ".join(':',%LONCAPA::CAPAresponse_args));      &LONCAPA_INTERNAL_DEBUG("args ".join(':',%LONCAPA::CAPAresponse_args));
     my $type = $LONCAPA::CAPAresponse_args{'type'};      my $type = $LONCAPA::CAPAresponse_args{'type'};
     &LONCAPA_INTERNAL_DEBUG("Got type :$type:\n");      &LONCAPA_INTERNAL_DEBUG("Got type :$type:\n");
Line 324  sub caparesponse_check_list { Line 290  sub caparesponse_check_list {
     $responses->[$which]=[$responses->[$which]];      $responses->[$which]=[$responses->[$which]];
  }   }
     }      }
     &LONCAPA_INTERNAL_DEBUG(" parsed response is ".  #    &LONCAPA_INTERNAL_DEBUG(" parsed response is ".
     &LONCAPA_INTERNAL_Dumper($responses).":\n");  #    &LONCAPA_INTERNAL_Dumper($responses).":\n");
     foreach my $which (0..($num_input_lines-1)) {      foreach my $which (0..($num_input_lines-1)) {
  my $answer_size =    my $answer_size = 
     scalar(@{$LONCAPA::CAPAresponse_answer->{'answers'}[$which]});      scalar(@{$LONCAPA::CAPAresponse_answer->{'answers'}[$which]});
Line 365  sub caparesponse_check_list { Line 331  sub caparesponse_check_list {
     }      }
   
   
     &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses));  #    &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses));
     my %memoized;      my %memoized;
     if ($LONCAPA::CAPAresponse_answer->{'type'}  eq 'ordered') {      if ($LONCAPA::CAPAresponse_answer->{'type'}  eq 'ordered') {
  for (my $i=0; $i<scalar(@$responses);$i++) {   for (my $i=0; $i<scalar(@$responses);$i++) {

Removed from v.1.120  
changed lines
  Added in v.1.123


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