[LON-CAPA-cvs] cvs: loncom /homework/caparesponse caparesponse.pm

albertel lon-capa-cvs@mail.lon-capa.org
Thu, 11 Apr 2002 19:48:16 -0000


albertel		Thu Apr 11 15:48:16 2002 EDT

  Modified files:              
    /loncom/homework/caparesponse	caparesponse.pm 
  Log:
  - added sigfigs to the answer output. BUG#2 fixed
  
  
Index: loncom/homework/caparesponse/caparesponse.pm
diff -u loncom/homework/caparesponse/caparesponse.pm:1.51 loncom/homework/caparesponse/caparesponse.pm:1.52
--- loncom/homework/caparesponse/caparesponse.pm:1.51	Tue Feb 12 02:23:31 2002
+++ loncom/homework/caparesponse/caparesponse.pm	Thu Apr 11 15:48:16 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # caparesponse definition
 #
-# $Id: caparesponse.pm,v 1.51 2002/02/12 07:23:31 albertel Exp $
+# $Id: caparesponse.pm,v 1.52 2002/04/11 19:48:16 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -212,6 +212,10 @@
       if ($Apache::inputtags::params{'tol'}) {
 	($high,$low)=&get_tolrange($ans,$Apache::inputtags::params{'tol'});
       }	
+      my ($sighigh,$siglow);
+      if ($Apache::inputtags::params{'sig'}) {
+	($sighigh,$siglow)=&get_sigrange($Apache::inputtags::params{'sig'});
+      }
       if ($fmt) {
 	$ans = sprintf('%.'.$fmt,$ans);
 	if ($high) {
@@ -219,10 +223,11 @@
 	}
       }
       if ($high) { $ans.=' ['.$low.','.$high.'] '; }
+      if ($sighigh) { $ans.= "Sig <i>$siglow - $sighigh</i>"; }
       $result.=&Apache::response::answer_part($$tagstack[-1],$ans);
     }
     if ($unit) {
-      $result.=&Apache::response::answer_part($$tagstack[-1],"<b>$unit</b>");
+      $result.=&Apache::response::answer_part($$tagstack[-1],"Unit: <b>$unit</b>");
     }
     if ($type || $token->[1] eq 'stringresponse') {
       my $string='Case Insensitive';
@@ -261,6 +266,25 @@
     $low=$ans-$tol;
   }
   return ($high,$low);
+}
+
+sub get_sigrange {
+  my ($sig)=@_;
+  &Apache::lonxml::debug("Got a sig of :$sig:");
+  my $sig_lbound;
+  my $sig_ubound;
+  if ($sig eq '') {
+    $sig_lbound = 0; #SIG_LB_DEFAULT
+    $sig_ubound =15; #SIG_UB_DEFAULT
+  } else {
+    ($sig_lbound,$sig_ubound) = split(/,/,$sig);
+    if (!$sig_lbound) {
+      $sig_lbound = 0; #SIG_LB_DEFAULT
+      $sig_ubound =15; #SIG_UB_DEFAULT
+    }
+    if (!$sig_ubound) { $sig_ubound=$sig_lbound; }
+  }
+  return ($sig_ubound,$sig_lbound);
 }
 
 sub start_stringresponse {