version 1.216, 2007/06/06 17:03:54
|
version 1.235, 2008/09/23 19:15:57
|
Line 427 sub check_submission {
|
Line 427 sub check_submission {
|
} |
} |
} elsif ($tag eq 'numericalresponse') { |
} elsif ($tag eq 'numericalresponse') { |
$$args_ref{'type'}='float'; |
$$args_ref{'type'}='float'; |
|
} elsif ($tag eq 'stringresponse') { |
|
if ($$args_ref{'type'} eq '') { |
|
$$args_ref{'type'} = 'ci'; |
|
} |
} |
} |
|
|
&add_in_tag_answer($parstack,$safeeval); |
&add_in_tag_answer($parstack,$safeeval); |
|
|
|
if (!%answer) { |
|
&Apache::lonxml::error("No answers are defined"); |
|
} |
|
|
my (@final_awards,@final_msgs,@names); |
my (@final_awards,@final_msgs,@names); |
foreach my $name (keys(%answer)) { |
foreach my $name (keys(%answer)) { |
&Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} })); |
&Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} })); |
Line 506 sub end_numericalresponse {
|
Line 514 sub end_numericalresponse {
|
&Apache::lonxml::debug($$parstack[-1] . "\n<br>"); |
&Apache::lonxml::debug($$parstack[-1] . "\n<br>"); |
|
|
if ( &Apache::response::submitted('scantron')) { |
if ( &Apache::response::submitted('scantron')) { |
&add_in_tag_answer($parstack,$safeeval); |
&add_in_tag_answer($parstack,$safeeval); |
my ($values,$display)=&make_numerical_bubbles($partid,$id, |
my ($values,$display)=&make_numerical_bubbles($partid,$id, |
$target,$parstack,$safeeval); |
$target,$parstack,$safeeval); |
$response=$values->[$response]; |
$response=$values->[$response]; |
} |
} |
$Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; |
$Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; |
my ($ad,$msg,$name)=&check_submission($response,$partid,$id, |
my ($ad,$msg,$name)=&check_submission($response,$partid,$id, |
$tag,$parstack, |
$tag,$parstack, |
$safeeval); |
$safeeval); |
Line 598 sub end_numericalresponse {
|
Line 606 sub end_numericalresponse {
|
} |
} |
} |
} |
} |
} |
|
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 674 sub end_numericalresponse {
|
Line 688 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 699 sub end_numericalresponse {
|
Line 713 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 783 sub end_numericalresponse {
|
Line 797 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') { |
&Apache::lonxml::increment_counter($increment); |
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"); |
|
if ($target eq 'analyze') { |
|
&Apache::lonhomework::set_bubble_lines(); |
|
} |
} |
} |
&Apache::response::end_response(); |
&Apache::response::end_response(); |
return $result; |
return $result; |
Line 975 sub make_numerical_bubbles {
|
Line 998 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); |
} |
} |
Line 1005 sub get_sigrange {
|
Line 1038 sub get_sigrange {
|
my ($sig)=@_; |
my ($sig)=@_; |
#&Apache::lonxml::debug("Got a sig of :$sig:"); |
#&Apache::lonxml::debug("Got a sig of :$sig:"); |
my $courseid=$env{'request.course.id'}; |
my $courseid=$env{'request.course.id'}; |
if (lc($env{"course.$courseid.disablesigfigs"}) eq 'yes') { |
if ($env{'request.state'} ne 'construct' |
|
&& lc($env{"course.$courseid.disablesigfigs"}) eq 'yes') { |
return (15,0); |
return (15,0); |
} |
} |
my $sig_lbound; |
my $sig_lbound; |
Line 1127 sub end_stringresponse {
|
Line 1161 sub end_stringresponse {
|
my @args = ('type'); |
my @args = ('type'); |
my $args_ref = &setup_capa_args($safeeval,$parstack, |
my $args_ref = &setup_capa_args($safeeval,$parstack, |
\@args,$response); |
\@args,$response); |
|
if ($$args_ref{'type'} eq '') { |
|
$$args_ref{'type'} = 'ci'; |
|
} |
&add_in_tag_answer($parstack,$safeeval); |
&add_in_tag_answer($parstack,$safeeval); |
my (@final_awards,@final_msgs,@names); |
my (@final_awards,@final_msgs,@names); |
foreach my $name (keys(%answer)) { |
foreach my $name (keys(%answer)) { |
Line 1222 sub end_stringresponse {
|
Line 1258 sub end_stringresponse {
|
} |
} |
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') { |
&Apache::lonxml::increment_counter(&Apache::response::repetition()); |
&Apache::lonxml::increment_counter(&Apache::response::repetition(), |
|
"$part.$id"); |
|
if ($target eq 'analyze') { |
|
&Apache::lonhomework::set_bubble_lines(); |
|
} |
} |
} |
&Apache::response::end_response; |
&Apache::response::end_response; |
return $result; |
return $result; |