[LON-CAPA-cvs] cvs: loncom(version_1_1_X) /homework/caparesponse caparesponse.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 26 Feb 2004 18:24:24 -0000
albertel Thu Feb 26 13:24:24 2004 EDT
Modified files: (Branch: version_1_1_X)
/loncom/homework/caparesponse caparesponse.pm
Log:
- backporting bubbl fixes 1.134 1.135
Index: loncom/homework/caparesponse/caparesponse.pm
diff -u loncom/homework/caparesponse/caparesponse.pm:1.126.2.1 loncom/homework/caparesponse/caparesponse.pm:1.126.2.2
--- loncom/homework/caparesponse/caparesponse.pm:1.126.2.1 Thu Feb 19 14:24:38 2004
+++ loncom/homework/caparesponse/caparesponse.pm Thu Feb 26 13:24:24 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# caparesponse definition
#
-# $Id: caparesponse.pm,v 1.126.2.1 2004/02/19 19:24:38 albertel Exp $
+# $Id: caparesponse.pm,v 1.126.2.2 2004/02/26 18:24:24 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -383,23 +383,24 @@
my $cell_width_real=0;
if ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {
$cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;
- } elsif ($member=~/(\d*)\.?(\d*)/) {
- $cell_width_real=(length($1)+length($2)+2)*$scale;
+ } elsif ($member=~/(\d*)\.(\d*)/) {
+ $cell_width_real=(length($1)+length($2)+3)*$scale;
} else {
$cell_width_real=(length($member)+1)*$scale;
}
if ($cell_width_real>$cell_width) {$cell_width=$cell_width_real;}
}
- $cell_width+=8;
+ $cell_width+=8;
my $textwidth;
if ($ENV{'form.textwidth'} ne '') {
- $ENV{'form.textwidth'}=~/(\d+)/;
- $textwidth=$1;
+ $ENV{'form.textwidth'}=~/(\d*)\.?(\d*)/;
+ $textwidth=$1.'.'.$2;
} else {
- $ENV{'textwidth'}=~/(\d+)/;
- $textwidth=$1;
+ $ENV{'textwidth'}=~/(\d+)\.?(\d*)/;
+ $textwidth=$1.'.'.$2;
}
my $bubbles_per_line=int($textwidth/$cell_width);
+ if (($bubbles_per_line > $number_of_bubbles/2) && ($number_of_bubbles % 2==0)) {$bubbles_per_line=$number_of_bubbles/2;}
my $number_of_tables = int($number_of_bubbles/$bubbles_per_line);
my @table_range = ();
for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;}
@@ -457,9 +458,17 @@
@bubble_values=sort {$a <=> $b} (@bubble_values,$answer);
&Apache::lonxml::debug("Answer was :$answer: returning :".$#bubble_values.": whih are :".join(':',@bubble_values));
&Math::Random::random_set_seed(@oldseed);
+ if (defined($format) && $format ne '') {
+ foreach my $value (@bubble_values) {
+ $value=&format_number($value,$format,$target);
+ }
+ }
return @bubble_values;
}
- #FIXME what to do when not enough incorrects specified?
+ if (defined($$incorrect[0]) &&
+ scalar(@$incorrect)+1 < $number_of_bubbles) {
+ &Apache::lonxml::warning("Not enough incorrect answers were specified in the incorrect array, ignoring the specified incorrect answers and instead generating them.");
+ }
}
my @factors = (1.13,1.17,1.25,1.33,1.45); #default values of factors
my @powers = (1..$number_of_bubbles);