Diff for /loncom/homework/default_homework.lcpm between versions 1.51 and 1.52

version 1.51, 2002/09/26 20:45:00 version 1.52, 2002/09/26 20:46:48
Line 57  sub caparesponse_check { Line 57  sub caparesponse_check {
   #remove leading and trailing whitespace    #remove leading and trailing whitespace
   if ($response=~ /^\s|\s$/) {    if ($response=~ /^\s|\s$/) {
     $response=~ s:^\s+|\s+$::g;      $response=~ s:^\s+|\s+$::g;
     $message .="Removed ws now :$response:<br />";      $message .="Removed ws now :$response:\n";
   } else {    } else {
     $message .="no ws in :$response:<br />";      $message .="no ws in :$response:\n";
   }    }
   
   if ($type eq '' ) {    if ($type eq '' ) {
     $message .= "Didn't find a type :$type:$expr: defaulting<br />";      $message .= "Didn't find a type :$type:$expr: defaulting\n";
     if ( $answer eq ($answer *1.0)) { $type = 2;      if ( $answer eq ($answer *1.0)) { $type = 2;
     } else { $type = 3; }      } else { $type = 3; }
   } else {    } else {
Line 82  sub caparesponse_check { Line 82  sub caparesponse_check {
   #formula type setup the sample points    #formula type setup the sample points
   if ($type eq '8') {    if ($type eq '8') {
     ($id_list,$points)=split(/@/,$samples);      ($id_list,$points)=split(/@/,$samples);
     $message.="Found :$points: points<br />";      $message.="Found :$points: points\n";
   }    }
   if ($tol eq '') {    if ($tol eq '') {
     $tol=0.0;      $tol=0.0;
Line 127  sub caparesponse_check { Line 127  sub caparesponse_check {
   elsif ($result =='12') { $result='WANTED_NUMERIC'; }    elsif ($result =='12') { $result='WANTED_NUMERIC'; }
   else  {$result = "ERROR: Unknown Result:$result:$@:";}    else  {$result = "ERROR: Unknown Result:$result:$@:";}
   
   return "$result:<br />Error $error:<br />Answer $answer:<br />Response $response:<br /> type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|<br />$message$expr";    return "$result:\nError $error:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message$expr";
 }  }
   
 sub get_array_args {  sub get_array_args {
Line 140  sub get_array_args { Line 140  sub get_array_args {
   if ($CAPARESPONSE_CHECK_LIST_answer =~ /^\s*[\$\@]/) {    if ($CAPARESPONSE_CHECK_LIST_answer =~ /^\s*[\$\@]/) {
     (@GET_ARRAY_ARGS_list) = eval $CAPARESPONSE_CHECK_LIST_answer;      (@GET_ARRAY_ARGS_list) = eval $CAPARESPONSE_CHECK_LIST_answer;
   }    }
   $GET_ARRAY_ARGS_result.="error:$@:<br />";    $GET_ARRAY_ARGS_result.="error:$@:\n";
   # if the eval fails just use what is in the answer exactly    # if the eval fails just use what is in the answer exactly
   if (!defined(@GET_ARRAY_ARGS_list) || !defined($GET_ARRAY_ARGS_list[0])) {    if (!defined(@GET_ARRAY_ARGS_list) || !defined($GET_ARRAY_ARGS_list[0])) {
     $GET_ARRAY_ARGS_result.="list zero is undefined<br />";      $GET_ARRAY_ARGS_result.="list zero is undefined\n";
     $GET_ARRAY_ARGS_list[0]=$CAPARESPONSE_CHECK_LIST_answer;      $GET_ARRAY_ARGS_list[0]=$CAPARESPONSE_CHECK_LIST_answer;
   }    }
   return $GET_ARRAY_ARGS_result,@GET_ARRAY_ARGS_list;    return $GET_ARRAY_ARGS_result,@GET_ARRAY_ARGS_list;
Line 156  sub caparesponse_check_list { Line 156  sub caparesponse_check_list {
   my $aresult='';    my $aresult='';
   my $current_answer;    my $current_answer;
   my $answers=join(':',@list);    my $answers=join(':',@list);
   $result.="Got response :$answers:<br />";    $result.="Got response :$answers:\n";
   my @responselist;    my @responselist;
   my $type =eval $expr.';return $answer;';    my $type =eval $expr.';return $answer;';
   if ($type ne '' && $#list > 0) {    if ($type ne '' && $#list > 0) {
Line 165  sub caparesponse_check_list { Line 165  sub caparesponse_check_list {
     (@responselist)=($response);      (@responselist)=($response);
   }    }
   my $unit='';    my $unit='';
   $result.="Initial final response :$responselist['-1']:<br />";    $result.="Initial final response :$responselist['-1']:\n";
   if ($type eq '') {    if ($type eq '') {
     #for numerical problems split off the unit      #for numerical problems split off the unit
     if ( $responselist['-1']=~ /(.*[^\s])\s+([^\s]+)/ ) {      if ( $responselist['-1']=~ /(.*[^\s])\s+([^\s]+)/ ) {
Line 173  sub caparesponse_check_list { Line 173  sub caparesponse_check_list {
       $unit=$2;        $unit=$2;
     }      }
   }    }
   $result.="Final final response :$responselist['-1']:<br />";    $result.="Final final response :$responselist['-1']:\n";
   $result.=":$#list: answers<br />";    $result.=":$#list: answers\n";
   $unit=~s/\s//;    $unit=~s/\s//;
   my $i=0;    my $i=0;
   my $awards='';    my $awards='';
   for ($i=0; $i<@list;$i++) {    for ($i=0; $i<@list;$i++) {
     $result.="trying answer :$list[$i]:<br />";      $result.="trying answer :$list[$i]:\n";
     if ($unit eq '') {      if ($unit eq '') {
       $aresult=&caparesponse_check($responselist[$i],        $aresult=&caparesponse_check($responselist[$i],
      $expr.';my $answer=\''.$list[$i].'\';');       $expr.';my $answer=\''.$list[$i].'\';');
Line 192  sub caparesponse_check_list { Line 192  sub caparesponse_check_list {
     $result.=$aresult;      $result.=$aresult;
   }    }
   chop $awards;    chop $awards;
   return "$awards:<br />$result";    return "$awards:\n$result";
 }  }
   
 sub tex {  sub tex {

Removed from v.1.51  
changed lines
  Added in v.1.52


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