version 1.249.4.1, 2012/01/16 11:54:37
|
version 1.256, 2015/10/30 03:49:55
|
Line 296 sub start_numericalresponse {
|
Line 296 sub start_numericalresponse {
|
} elsif ($token->[1] eq 'formularesponse') { |
} elsif ($token->[1] eq 'formularesponse') { |
$constructtag=&Apache::edit::get_new_args($token,$parstack, |
$constructtag=&Apache::edit::get_new_args($token,$parstack, |
$safeeval,'answer', |
$safeeval,'answer', |
'samples','preproces'); |
'samples','preprocess'); |
} |
} |
if ($constructtag) { |
if ($constructtag) { |
$result = &Apache::edit::rebuild_tag($token); |
$result = &Apache::edit::rebuild_tag($token); |
Line 456 sub check_submission {
|
Line 456 sub check_submission {
|
my ($result,@msgs) = |
my ($result,@msgs) = |
&Apache::run::run("&caparesponse_check_list()",$safeeval); |
&Apache::run::run("&caparesponse_check_list()",$safeeval); |
&Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0)); |
&Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0)); |
|
|
&Apache::lonxml::debug('msgs are '.join(':',@msgs)); |
&Apache::lonxml::debug('msgs are '.join(':',@msgs)); |
my ($awards)=split(/:/,$result); |
my ($awards)=split(/:/,$result); |
my @awards= split(/,/,$awards); |
my @awards= split(/,/,$awards); |
Line 636 sub end_numericalresponse {
|
Line 635 sub end_numericalresponse {
|
$result.=' \textit{(in} \verb|'.$unit.'|\textit{)} '; |
$result.=' \textit{(in} \verb|'.$unit.'|\textit{)} '; |
} |
} |
if ($tag eq 'numericalresponse') { |
if ($tag eq 'numericalresponse') { |
$result .= &make_latex_bubbles($bubble_values, $bubble_display); |
$result .= &make_horizontal_latex_bubbles($bubble_values, $bubble_display, |
|
'$\bigcirc$'); |
} else { |
} else { |
$increment = &Apache::response::repetition(); |
$increment = &Apache::response::repetition(); |
} |
} |
} |
} |
} |
} |
if (($target eq 'web') && ($tag eq 'formularesponse') |
|
&& ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') |
|
&& (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) { |
|
$result.=&Apache::response::edit_mathresponse_button($id,"HWVAL_$id"); |
|
} |
|
|
|
&Apache::response::setup_prior_tries_hash(\&format_prior_response_numerical); |
&Apache::response::setup_prior_tries_hash(\&format_prior_response_numerical); |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result.='</td></tr>'.&Apache::edit::end_table; |
$result.='</td></tr>'.&Apache::edit::end_table; |
Line 894 sub get_table_sizes {
|
Line 889 sub get_table_sizes {
|
my ($number_of_bubbles,$rbubble_values)=@_; |
my ($number_of_bubbles,$rbubble_values)=@_; |
my $scale=2; #mm for one digit |
my $scale=2; #mm for one digit |
my $cell_width=0; |
my $cell_width=0; |
&Apache::lonnet::logthis("textwidth envvar: " . $env{'form.textwidth'}); |
|
foreach my $member (@$rbubble_values) { |
foreach my $member (@$rbubble_values) { |
my $cell_width_real=0; |
my $cell_width_real=0; |
if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$?\\times\s*10\^{(\+|-)?(\d+)}\$?/) { |
if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$?\\times\s*10\^{(\+|-)?(\d+)}\$?/) { |
Line 970 sub make_numerical_bubbles {
|
Line 964 sub make_numerical_bubbles {
|
my $number_of_bubbles = |
my $number_of_bubbles = |
&Apache::response::get_response_param($part.'_'.$id,'numbubbles',8); |
&Apache::response::get_response_param($part.'_'.$id,'numbubbles',8); |
|
|
|
# |
|
# Fixes for BZ 6519 - number of bubbles <= 0 or non-integer. |
|
# |
|
$number_of_bubbles = int($number_of_bubbles + 0.5); |
|
if ($number_of_bubbles <= 0) { |
|
$number_of_bubbles = 8; |
|
} |
|
|
|
|
my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval); |
my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval); |
my $name = (exists($answer{$tag_internal_answer_name}) |
my $name = (exists($answer{$tag_internal_answer_name}) |
? $tag_internal_answer_name |
? $tag_internal_answer_name |
Line 1058 sub make_numerical_bubbles {
|
Line 1061 sub make_numerical_bubbles {
|
} |
} |
|
|
## |
## |
# Produce LaTeX bubbles given a set of bubble values: |
# Produce LaTeX bubbles laid out horizontally given a set of bubble values: |
# |
# |
# @param bubble_values - reference to an array of bubble 'values' |
# @param bubble_values - reference to an array of bubble 'values' |
# @param bubble_display - reference to the array of texts to display to the user |
# @param bubble_display - reference to the array of texts to display to the user |
# for each bubble_value (this is mostly for numerical response |
# for each bubble_value (this is mostly for numerical response |
# when the displayed value may not be an exact |
# when the displayed value may not be an exact |
# representation of the bubble value. |
# representation of the bubble value. |
|
# @param bubble_fragment- The LaTeX fragment that will be plugged in to make |
|
# the bubble itself. Note that the code will autonomously |
|
# label each bubble with a lable...and that it's perfectly |
|
# acceptable to use "" for the bubble_fragment. |
# |
# |
# @return string - the LaTeX fragment that produces the bubbles. |
# @return string - the LaTeX fragment that produces the bubbles. |
# |
# |
sub make_latex_bubbles { |
sub make_horizontal_latex_bubbles { |
my ($bubble_values, $bubble_display) = @_; |
my ($bubble_values, $bubble_display, $bubble_fragment) = @_; |
my $result; |
my $result; |
|
|
my $number_of_bubbles = scalar(@{$bubble_values}); |
my $number_of_bubbles = scalar(@{$bubble_values}); |
Line 1093 sub make_latex_bubbles {
|
Line 1100 sub make_latex_bubbles {
|
} |
} |
$result.='\noindent \setlength{\tabcolsep}{2 mm}\hskip 2pc\begin{tabular}{'; |
$result.='\noindent \setlength{\tabcolsep}{2 mm}\hskip 2pc\begin{tabular}{'; |
for (my $ind=0;$ind<$table_range[$j];$ind++) { |
for (my $ind=0;$ind<$table_range[$j];$ind++) { |
$result.='p{3 mm}p{'.$celllength.' mm}'; |
$result.='p{4 mm}p{'.$celllength.' mm}'; |
} |
} |
$result.='}'; |
$result.='}'; |
for (my $ind=$cou;$ind<$cou+$table_range[$j];$ind++) { |
for (my $ind=$cou;$ind<$cou+$table_range[$j];$ind++) { |
$result.='\hskip -4 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$ & \hskip -3 mm {\small '.$bubble_display->[$ind].'} '; |
$result.='\hskip -4 mm {\small \textbf{ '.$alphabet[$ind].'}}' |
if ($ind != $cou+$table_range[$j]-1) {$result.=' & ';} |
. $bubble_fragment |
|
. '& \hskip -3 mm {\small '.$bubble_display->[$ind].'} '; |
|
if ($ind != $cou+$table_range[$j]-1) { |
|
$result.=' & '; |
|
} |
} |
} |
$cou += $table_range[$j]; |
$cou += $table_range[$j]; |
$j++; |
$j++; |