Diff for /loncom/homework/default_homework.lcpm between versions 1.81 and 1.88

version 1.81, 2004/05/18 23:12:15 version 1.88, 2004/10/05 20:18:29
Line 41  sub caparesponse_check { Line 41  sub caparesponse_check {
     my $type=$LONCAPA::CAPAresponse_args{'type'};      my $type=$LONCAPA::CAPAresponse_args{'type'};
     my $tol=$LONCAPA::CAPAresponse_args{'tol'};      my $tol=$LONCAPA::CAPAresponse_args{'tol'};
     my $sig=$LONCAPA::CAPAresponse_args{'sig'};      my $sig=$LONCAPA::CAPAresponse_args{'sig'};
     my $ans_fmt=$LONCAPA::CAPAresponse_args{'ans_fmt'};      my $ans_fmt=$LONCAPA::CAPAresponse_args{'format'};
     my $unit=$LONCAPA::CAPAresponse_args{'unit'};      my $unit=$LONCAPA::CAPAresponse_args{'unit'};
     my $calc=$LONCAPA::CAPAresponse_args{'calc'};      my $calc=$LONCAPA::CAPAresponse_args{'calc'};
     my $samples=$LONCAPA::CAPAresponse_args{'samples'};      my $samples=$LONCAPA::CAPAresponse_args{'samples'};
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; }
       &LONCAPA_INTERNAL_DEBUG("fmt $ans_fmt, res is $response");
       if ($type eq 'float' && $ans_fmt=~/\$/) {
    if ($response!~/^\$/)  { return "NO_UNIT: Missing \$ "; }
    $response=~s/\$//g;
       }
       $ans_fmt=~s/\W//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 105  sub caparesponse_check { Line 113  sub caparesponse_check {
  }   }
     }      }
   
     if ($sig eq '') {      ($sig_ubound,$sig_lbound)=&LONCAPA_INTERNAL_get_sigrange($sig);
  $sig_lbound = 0; #SIG_LB_DEFAULT  
  $sig_ubound =15; #SIG_UB_DEFAULT  
     } else {  
  ($sig_lbound,$sig_ubound) = split /,/,$sig;  
  if (!defined($sig_lbound)) {  
     $sig_lbound = 0; #SIG_LB_DEFAULT  
     $sig_ubound =15; #SIG_UB_DEFAULT  
  }  
  if (!defined($sig_ubound)) { $sig_ubound=$sig_lbound; }  
     }  
     my $reterror="";      my $reterror="";
     my $result = &caparesponse_capa_check_answer($response,$answer,$type,      my $result = &caparesponse_capa_check_answer($response,$answer,$type,
  $tol_type,$tol,   $tol_type,$tol,
Line 142  sub caparesponse_check { Line 141  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 171  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 241  sub random { Line 240  sub random {
     if ( ! $hidden::RANDOMINIT ) {      if ( ! $hidden::RANDOMINIT ) {
  if ($external::randomseed == 0) { $external::randomseed=1; }   if ($external::randomseed == 0) { $external::randomseed=1; }
  if ($external::randomseed =~/,/) {   if ($external::randomseed =~/,/) {
     my ($num1,$num2)=split(/,/,$seed);      my ($num1,$num2)=split(/,/,$external::randomseed);
       &random_set_seed(1,abs($num1));
    } elsif ($external::randomseed =~/:/) {
       my ($num1,$num2)=split(/:/,$external::randomseed);
     &random_set_seed(abs($num1),abs($num2));      &random_set_seed(abs($num1),abs($num2));
  } else {   } else {
     &random_set_seed(1,int(abs($external::randomseed)));      &random_set_seed(1,int(abs($external::randomseed)));
Line 349  sub random_multivariate_normal { Line 351  sub random_multivariate_normal {
     my ($item_cnt,$seed,$mean,$covar) = @_;      my ($item_cnt,$seed,$mean,$covar) = @_;
     my @oldseed=&random_get_seed();      my @oldseed=&random_get_seed();
     &random_set_seed_from_phrase($seed);      &random_set_seed_from_phrase($seed);
     @retArray=&math_random_multivariate_normal($item_cnt,@$mean,@$covar);      my @retArray=&math_random_multivariate_normal($item_cnt,@$mean,@$covar);
     &random_set_seed(@oldseed);      &random_set_seed(@oldseed);
     return @retArray;      return @retArray;
 }  }
Line 359  sub random_multinomial { Line 361  sub random_multinomial {
     my @oldseed=&random_get_seed();      my @oldseed=&random_get_seed();
     my @retArray;      my @retArray;
     &random_set_seed_from_phrase($seed);      &random_set_seed_from_phrase($seed);
     @retArray=&math_random_multinomial($item_cnt,@p);      my @retArray=&math_random_multinomial($item_cnt,@p);
     &random_set_seed(@oldseed);      &random_set_seed(@oldseed);
     return @retArray;      return @retArray;
 }  }
Line 484  sub format { Line 486  sub format {
     if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; }       if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; } 
     #if ($options =~ /\$/) { $dollamode=1; }      #if ($options =~ /\$/) { $dollamode=1; }
     #if ($options =~ /,/)  { $commamode=1; }      #if ($options =~ /,/)  { $commamode=1; }
     if ($options =~ /\./) {      if ($options =~ /\./) { $alwaysperiod=1; }
  $alwaysperiod=1;  
  &LONCAPA_INTERNAL_DEBUG("hrrm setting it to 1");  
     }  
     &LONCAPA_INTERNAL_DEBUG("alwyas per $alwaysperiod opt $options fmt $fmt");  
     $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 .='.'; }      if ($alwaysperiod && $fmt eq '0f') { $result .='.'; }
Line 532  sub chemparse { Line 530  sub chemparse {
  $formula .= $molecule.' ';   $formula .= $molecule.' ';
     }      }
     # get rid of trailing space      # get rid of trailing space
     $formula =~ s/(\Q${nbsp}\E| )$//;      $formula =~ s/(\&nbsp\;| )$//;
           
     return &xmlparse($formula);      return &xmlparse($formula);
 }  }
   
 sub prettyprint {  sub prettyprint {
     my ($value,$fmt,$target)=@_;      my ($value,$fmt,$target)=@_;
       &LONCAPA_INTERNAL_DEBUG("format -$fmt-");
     my $result;      my $result;
     if (!$target) { $target = $external::target; }      if (!$target) { $target = $external::target; }
     if ($fmt =~ /chem/i) { return(&chemparse($value)); }      if ($fmt =~ /chem/i) { return(&chemparse($value)); }
     my ($dollarmode,$commamode,$alwaysperiod,$options);      my ($dollarmode,$commamode,$alwaysperiod,$options);
     if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; }       if ($fmt =~ /^([^\d]*)(.*)/) { $options=$1; $fmt=$2; } 
     if ($options =~ /\$/) { $dollamode=1; }      if ($options =~ /\$/) { $dollarmode=1; }
     if ($options =~ /,/)  { $commamode=1; }      if ($options =~ /,/)  { $commamode=1; }
     if ($options =~ /\./) { $alwaysperiod=1; }      if ($options =~ /\./) { $alwaysperiod=1; }
     if ($fmt) { $value=sprintf('%.'.$fmt,$value); }      if ($fmt) { $value=sprintf('%.'.$fmt,$value); }
Line 577  sub prettyprint { Line 576  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); }   elsif ($commamode)  { $result=&commaformat($result,$target); }
     }      }
     return $result;      return $result;
 }  }

Removed from v.1.81  
changed lines
  Added in v.1.88


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