version 1.144, 2009/04/17 01:00:15
|
version 1.148, 2010/10/14 04:59:08
|
Line 326 sub caparesponse_check_list {
|
Line 326 sub caparesponse_check_list {
|
$element =~ s/\s//g; |
$element =~ s/\s//g; |
} |
} |
my $appendunit=$unit; |
my $appendunit=$unit; |
if (($unit=~/\%/) && ($answerunit ne '%')) { |
# Deal with percentages |
$element=$element/100; |
# unit is unit entered by student, answerunit is unit by author |
$appendunit=~s/\%//; |
# Deprecated: divide answer by 100 if student entered percent, |
} |
# but author did not. Too much confusion |
|
# if (($unit=~/\%/) && ($answerunit ne '%')) { |
|
# $element=$element/100; |
|
# $appendunit=~s/\%//; |
|
# } |
|
# Author entered percent, student did not |
|
if (($unit!~/\%/) && ($answerunit=~/\%/)) { |
|
$element=$element*100; |
|
$appendunit='%'.$appendunit; |
|
} |
|
# Zero does not need a dimension |
if (($element==0) && ($unit!~/\w/) && ($answerunit=~/\w/)) { |
if (($element==0) && ($unit!~/\w/) && ($answerunit=~/\w/)) { |
$appendunit=$answerunit; |
$appendunit=$answerunit; |
} |
} |
$element .= " $appendunit"; |
if ($appendunit ne '') { |
|
$element .= " $appendunit"; |
|
} |
&LONCAPA_INTERNAL_DEBUG("Made response element :$element:"); |
&LONCAPA_INTERNAL_DEBUG("Made response element :$element:"); |
} |
} |
} |
} |
Line 434 sub caparesponse_check_list {
|
Line 446 sub caparesponse_check_list {
|
sub cas { |
sub cas { |
my ($system,$input,$library)=@_; |
my ($system,$input,$library)=@_; |
my $output; |
my $output; |
|
my $dump; |
if ($system eq 'maxima') { |
if ($system eq 'maxima') { |
$output=&maxima_eval($input,$library); |
$output=&maxima_eval($input,$library); |
} elsif ($system eq 'R') { |
} elsif ($system eq 'R') { |
$output=&r_eval($input,$library); |
($output,$dump)=&r_eval($input,$library,0); |
} else { |
} else { |
$output='Error: unrecognized CAS'; |
$output='Error: unrecognized CAS'; |
} |
} |
return $output; |
return $output; |
} |
} |
|
|
|
sub cas_hashref { |
|
my ($system,$input,$library)=@_; |
|
if ($system eq 'maxima') { |
|
return 'Error: unsupported CAS'; |
|
} elsif ($system eq 'R') { |
|
return &r_eval($input,$library,1); |
|
} else { |
|
return 'Error: unrecognized CAS'; |
|
} |
|
} |
|
|
|
# |
|
# cas_hashref_entry takes a list of indices and gets the entry in a hash generated by Rreturn. |
|
# Call: cas_hashref_entry(Rvalue, index1, index2, ...) where Rvalue is a hash returned by Rreturn. |
|
# Rentry will return the first scalar value it encounters (ignoring excess indices). |
|
# If an invalid key is given, it returns undef. |
|
# |
|
sub cas_hashref_entry { |
|
return &Rentry(@_); |
|
} |
|
|
|
# |
|
# cas_hashref_array takes a list of indices and gets a column array from a hash generated by Rreturn. |
|
# Call: cas_hashref_array(Rvalue, index1, index2, ...) where Rvalue is a hash returned by Rreturn. |
|
# If an invalid key is given, it returns undef. |
|
# |
|
sub cas_hashref_array { |
|
return &Rarray(@_); |
|
} |
|
|
sub tex { |
sub tex { |
if ( $external::target eq "tex" ) { |
if ( $external::target eq "tex" ) { |
return $_[0]; |
return $_[0]; |