Annotation of loncom/homework/default_homework.lcpm, revision 1.7

1.1       harris41    1: # file name (temp): default_homework 
                      2: # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run()
                      3: # 
                      4: #
1.3       albertel    5: $RANDOMINIT=0;
                      6: 
1.7     ! albertel    7: sub caparesponse_check {
        !             8:   my $answer='';
        !             9:   my $type='';
        !            10:   my $tol_type='';
        !            11:   my $tolerance='';
        !            12:   my $sig_lbound='';
        !            13:   my $sig_ubound='';
        !            14:   my $ans_fmt='';
        !            15:   my $unit_str='';
        !            16:   my $calc='';
        !            17:   my ($response,$expr)=@_;
        !            18:   
        !            19:   ($answer,$type,$tol_type,$tolerance,$sig_lbound,$sig_ubound,$ans_fmt,
        !            20:    $unit_str,$calc) = eval $expr.'return $answer,$type,$tol_type,$tolerance,$sig_lbound,$sig_ubound,$ans_fmt,$unit_str,$calc';
        !            21:   my $result = &caparesponse_capa_check_answer($response,$answer,$type,
        !            22: 					       $tol_type,$tolerance,
        !            23: 					       $sig_lbound,$sig_ubound,
        !            24: 					       $ans_fmt, $unit_str,$calc);
        !            25:   return ":$result:$response:$answer:";
        !            26: }
        !            27: 
1.4       albertel   28: sub tex {
                     29:   if ( $external::target eq "tex" ) {
                     30:     #$SCRIPT_RESULT.=@_[0];
                     31:     return @_[0];
                     32:   } else {
                     33:     #$SCRIPT_RESULT.=@_[1];
                     34:     return @_[1];
                     35:   }
                     36: }
                     37: 
                     38: sub web {
                     39:   if ( $external::target eq "tex" ) {
                     40:     #$SCRIPT_RESULT.=@_[1];
                     41:     return @_[1];
                     42:   } else {
                     43:     if ( $external::target eq "web") {
                     44:       #$SCRIPT_RESULT.=@_[0];
                     45:       return @_[0];
                     46:     } else {
                     47:       #$SCRIPT_RESULT.=@_[2];
                     48:       return @_[2];
                     49:     }
                     50:   }
                     51: }
                     52: 
                     53: sub problem {
                     54:   $SCRIPT_RESULT.='1';
                     55:   return '';
                     56: }
                     57: 
1.1       harris41   58: sub hinton {
                     59:   return 0;
                     60: }
                     61: 
                     62: sub random {
                     63:   my ($start,$end,$step)=@_;
1.3       albertel   64:   if ( ! $RANDOMINIT ) { srand($external::randomseed); $RANDOMINIT=1; }
1.1       harris41   65:   my $num=1+int(($end-$start)/$step);
                     66:   my $result=$start + int(rand() * $num)*$step;
                     67:   return $result;
                     68: }
                     69: 
                     70: sub tan  { sin($_[0]) / cos($_[0]) }
                     71: sub acos { atan2(sqrt(1 - $_[0] * $_[0]), $_[0] ); }
                     72: sub asin { atan2($_[0], sqrt(1- $_[0] * $_[0]) );  }
                     73: 
                     74: sub html {
1.4       albertel   75:   if ( $external::target eq "web" ) {
                     76:     #$SCRIPT_RESULT.=@_[0];
                     77:     return @_[0];
1.1       harris41   78:   }
                     79: }
                     80: 
                     81: 
                     82: sub pow   {return $_[0] ** $_[1]; }
                     83: sub ceil  {return (($_[0]-int($_[0]))== 0.0) ? $_[0] : (int($_[0])+ 1); }
                     84: sub floor {return int($_[0]);  }
                     85: 
1.2       albertel   86: sub format {
                     87:   my ($value,$fmt)=@_;
                     88:   $SCRIPT_RESULT.=sprintf('%.'.$fmt,$value);
                     89: }
1.5       albertel   90: 
                     91: sub map {
                     92:   my $num = $#_/2;
                     93:   my $i;
1.6       albertel   94:   my @used;
                     95:   my @permutation;
                     96:   for ($i=0; $i < $num;) {
                     97:     $rand = &random(1,$num,1);
                     98:     if ( $used[$rand] == '0' ) {
                     99:       $i++;
                    100:       $used[$rand]='1';
                    101:       $permutation[$i]=$rand;
                    102:     }
                    103:   }
1.5       albertel  104:   for ( $i=1 ; $i<$num+1 ; $i++ ) {
1.6       albertel  105:     ${$_[$permutation[$i]]}=$_[$i+$num]
1.5       albertel  106:   }
                    107: }
                    108: 
                    109: sub choose {
                    110:   my $num = $_[0];
                    111:   return $_[$num];
                    112: }
1.6       albertel  113: #$external::randomseed=time;
1.5       albertel  114: #$a=2;
                    115: #$b=2;
1.6       albertel  116: #$c=2;
                    117: #&map(1,\$a,\$b,\$c,3,4,5);
1.5       albertel  118: #print $a."\n".$b."\n";

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>