--- loncom/homework/default_homework.lcpm 2001/08/23 16:44:22 1.36 +++ loncom/homework/default_homework.lcpm 2001/10/05 22:28:31 1.38 @@ -7,7 +7,7 @@ # 05/31/2001 H. K. Ng # #init some globals -$RANDOMINIT=0; +$hidden::RANDOMINIT=0; $pi=atan2(1,1)*4; $rad2deg=180.0/$pi; $deg2rad=$pi/180.0; @@ -87,11 +87,11 @@ sub caparesponse_check { return "$result:
Error $error:
Answer $answer:
Response $response:
type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|
$message$expr"; } -sub caparesponse_check_list { - my ($response,$expr)=@_; +sub get_array_args { + my ($expr,$arg)=@_; # do these first, because who knows what varname the instructor might have used # but it probably isn't $CAPARESPONSE_CHECK_LIST_answer - my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $answer'; + my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #' my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer; my $result=''; $result.="error:$@:
"; @@ -100,6 +100,12 @@ sub caparesponse_check_list { $result.="list zero is undefined
"; $list[0]=$CAPARESPONSE_CHECK_LIST_answer; } + return @list; +} + +sub caparesponse_check_list { + my ($response,$expr)=@_; + my (@list) = &get_array_args($expr,'answer'); my $aresult=''; my $current_answer; $result.="Got response :$CAPARESPONSE_CHECK_LIST_answer:$list[0]:
"; @@ -185,7 +191,10 @@ sub hinton { sub random { my ($start,$end,$step)=@_; - if ( ! $RANDOMINIT ) { srand($external::randomseed); $RANDOMINIT=1; } + if ( ! $hidden::RANDOMINIT ) { + srand($external::randomseed); + $hidden::RANDOMINIT=1; + } my $num=1+int(($end-$start)/$step); my $result=$start + int(rand() * $num)*$step; return $result;