version 1.220, 2007/11/16 08:44:37
|
version 1.227, 2008/07/26 15:06:43
|
Line 310 sub start_numericalresponse {
|
Line 310 sub start_numericalresponse {
|
$safeeval); |
$safeeval); |
if ($unit =~ /\S/) { $result.=" (in $unit) "; } |
if ($unit =~ /\S/) { $result.=" (in $unit) "; } |
} |
} |
|
if (($token->[1] eq 'formularesponse') && |
|
($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')) { |
|
$result.=&edit_formula_button($id,"HWVAL_$id"); |
|
} |
if ( &Apache::response::show_answer() ) { |
if ( &Apache::response::show_answer() ) { |
&set_answertext($tag_internal_answer_name,$target,$token,$tagstack, |
&set_answertext($tag_internal_answer_name,$target,$token,$tagstack, |
$parstack,$parser,$safeeval,-1); |
$parstack,$parser,$safeeval,-1); |
Line 318 sub start_numericalresponse {
|
Line 322 sub start_numericalresponse {
|
return $result; |
return $result; |
} |
} |
|
|
|
sub edit_formula_button { |
|
my ($id,$field)=@_; |
|
my $button=&mt('Edit Answer'); |
|
my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
|
return(<<ENDFORMULABUTTON); |
|
<script language="JavaScript"> |
|
function edit_${id}_${field} (textarea) { |
|
thenumber = textarea; |
|
thedata = document.forms['lonhomework'].elements[textarea].value; |
|
newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable"); |
|
} |
|
</script> |
|
<input type='button' value='$button' onclick="javascript:edit_${id}_${field}('${field}');void(0);" />$helplink |
|
ENDFORMULABUTTON |
|
} |
|
|
sub set_answertext { |
sub set_answertext { |
my ($name,$target,$token,$tagstack,$parstack,$parser,$safeeval, |
my ($name,$target,$token,$tagstack,$parstack,$parser,$safeeval, |
$response_level) = @_; |
$response_level) = @_; |
Line 678 sub end_numericalresponse {
|
Line 698 sub end_numericalresponse {
|
#} |
#} |
} |
} |
if ($high && $tag eq 'numericalresponse') { |
if ($high && $tag eq 'numericalresponse') { |
$element.=' ['.$low.','.$high.']'; |
$element.='; ['.$low.'; '.$high.']'; |
$tolline .= "[$low, $high]"; |
$tolline .= "[$low, $high]"; |
} |
} |
if (defined($sighigh) && $tag eq 'numericalresponse') { |
if (defined($sighigh) && $tag eq 'numericalresponse') { |
if ($env{'form.answer_output_mode'} eq 'tex') { |
if ($env{'form.answer_output_mode'} eq 'tex') { |
$element.= " Sig $siglow - $sighigh"; |
$element.= "; Sig $siglow - $sighigh"; |
} else { |
} else { |
$element.= " Sig <i>$siglow - $sighigh</i>"; |
$element.= " Sig <i>$siglow - $sighigh</i>"; |
$sigline .= "[$siglow, $sighigh]"; |
$sigline .= "[$siglow, $sighigh]"; |
Line 703 sub end_numericalresponse {
|
Line 723 sub end_numericalresponse {
|
} |
} |
} |
} |
if ($target eq 'answer') { |
if ($target eq 'answer') { |
$result.= &Apache::response::answer_part($tag,join(', ',@all_answer_info)); |
$result.= &Apache::response::answer_part($tag,join('; ',@all_answer_info)); |
} |
} |
} |
} |
|
|
Line 787 sub end_numericalresponse {
|
Line 807 sub end_numericalresponse {
|
} |
} |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze') { |
$target eq 'tex' || $target eq 'analyze') { |
|
if (($tag eq 'formularesponse') && ($target eq 'analyze')) { |
|
my $type = &Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.type'); |
|
if ($type eq 'exam') { |
|
$increment = &Apache::response::repetition(); |
|
} |
|
} |
&Apache::lonxml::increment_counter($increment,"$partid.$id"); |
&Apache::lonxml::increment_counter($increment,"$partid.$id"); |
if ($target eq 'analyze') { |
if ($target eq 'analyze') { |
&Apache::lonhomework::set_bubble_lines(); |
&Apache::lonhomework::set_bubble_lines(); |
Line 982 sub make_numerical_bubbles {
|
Line 1008 sub make_numerical_bubbles {
|
$ind=&Math::Random::random_uniform_integer(1,0,$#factors); |
$ind=&Math::Random::random_uniform_integer(1,0,$#factors); |
my $factor = $factors[$ind]; |
my $factor = $factors[$ind]; |
my @bubble_display; |
my @bubble_display; |
|
my $answerfactor=$answer; |
|
if ($answer==0) { |
|
$answerfactor=&Math::Random::random_uniform_integer(1,1,100)/ |
|
&Math::Random::random_uniform_integer(1,1,10); |
|
} |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
$bubble_values[$ind] = $answer*($factor**($power-$powers[$#powers-$ind])); |
$bubble_values[$ind] = $answerfactor*($factor**($power-$powers[$#powers-$ind])); |
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$format,$target,$safeeval); |
$format,$target,$safeeval); |
|
|
} |
} |
my $correct = $alphabet[$number_of_bubbles-$power]; |
my $correct = $alphabet[$number_of_bubbles-$power]; |
|
if ($answer==0) { |
|
$correct='A'; |
|
$bubble_values[0]=0; |
|
$bubble_display[0] = &format_number($bubble_values[0], |
|
$format,$target,$safeeval); |
|
} |
&Math::Random::random_set_seed(@oldseed); |
&Math::Random::random_set_seed(@oldseed); |
return (\@bubble_values,\@bubble_display,$correct); |
return (\@bubble_values,\@bubble_display,$correct); |
} |
} |