--- loncom/homework/default_homework.lcpm 2000/09/26 19:29:07 1.1 +++ loncom/homework/default_homework.lcpm 2000/10/12 21:51:03 1.5 @@ -2,12 +2,45 @@ # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # # +$RANDOMINIT=0; + +sub tex { + if ( $external::target eq "tex" ) { + #$SCRIPT_RESULT.=@_[0]; + return @_[0]; + } else { + #$SCRIPT_RESULT.=@_[1]; + return @_[1]; + } +} + +sub web { + if ( $external::target eq "tex" ) { + #$SCRIPT_RESULT.=@_[1]; + return @_[1]; + } else { + if ( $external::target eq "web") { + #$SCRIPT_RESULT.=@_[0]; + return @_[0]; + } else { + #$SCRIPT_RESULT.=@_[2]; + return @_[2]; + } + } +} + +sub problem { + $SCRIPT_RESULT.='1'; + return ''; +} + sub hinton { return 0; } sub random { my ($start,$end,$step)=@_; + if ( ! $RANDOMINIT ) { srand($external::randomseed); $RANDOMINIT=1; } my $num=1+int(($end-$start)/$step); my $result=$start + int(rand() * $num)*$step; return $result; @@ -18,8 +51,9 @@ sub acos { atan2(sqrt(1 - $_[0] * $_[0]) sub asin { atan2($_[0], sqrt(1- $_[0] * $_[0]) ); } sub html { - if ( $external::target == "web" ) { - $Apache::scripttag::start_script::result.=@_[0]; + if ( $external::target eq "web" ) { + #$SCRIPT_RESULT.=@_[0]; + return @_[0]; } } @@ -28,4 +62,24 @@ sub pow {return $_[0] ** $_[1]; } sub ceil {return (($_[0]-int($_[0]))== 0.0) ? $_[0] : (int($_[0])+ 1); } sub floor {return int($_[0]); } +sub format { + my ($value,$fmt)=@_; + $SCRIPT_RESULT.=sprintf('%.'.$fmt,$value); +} +sub map { + my $num = $#_/2; + my $i; + for ( $i=1 ; $i<$num+1 ; $i++ ) { + ${$_[$i]}=$_[$i+$num] + } +} + +sub choose { + my $num = $_[0]; + return $_[$num]; +} +#$a=2; +#$b=2; +#&map(1,\$a,\$b,3,4); +#print $a."\n".$b."\n";