Subversion Repositories wimsdev

Rev

Rev 2071 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

!set methtit2=Á½¸öÕýÖµ²»µÈʽÏà³Ë
!set methtit=Á½¸ö²»µÈʽÏà³Ë
!set methenv=ZZ QQ RR
!set methparmrelax=3,4
!set methparmtype=parm inequality >,\
    parm inequality >,\
    parm inequality >,\
    parm inequality >
!set methhelp=´Ë·½·¨Ó¦ÓÃÁËÒÔÏÂÐÔÖÊ. <p>\
 <center><em>Èô \(A <= B),  \(C <= D) Âú×ã \(B >= 0), \(C >= 0), Ôò\
 \(AC <= BD).\
 </em></center> <p>\
½á¹û (\(AC <= BD)) ½«±»¼Óµ½¼ÙÉèÖÐ.\
Èç¹ûijЩԭʼ²»µÈʽÊÇÑϸñµÄ, ÄÇô¿ÉÒÔÓÐ \(AC < BD).

!if $wims_read_parm iswordof form check
 !goto $wims_read_parm
!endif

!exit
:form
 Ó¦ÓÃÁËÒÔÏÂÐÔÖÊ. <p>
 <center><em>Èô \(A <= B), \(C <= D) Âú×ã \(B >= 0), \(C >= 0), Ôò
 \(AC <= BD).
 </em></center>
 <p>
 !set ch_optional=ÕâÊÇÏÔÈ»µÄ
 ¶ÔÓÚ \(A < B) : ²»µÈʽ
 !read deduc/methparm.phtml 1
 ÕâÀï \(B >= 0) ÊÇÓÉÓÚ
 !read deduc/methparm.phtml 3
 <br/>
 ¶ÔÓÚ \(C < D) : ²»µÈʽ
 !read deduc/methparm.phtml 2
 ÕâÀï \(C >= 0) ÊÇÓÉÓÚ
 !read deduc/methparm.phtml 4

!exit
:check
 gt=>
 lt=<
 eq=$empty=
 !for i=1 to 4
  !distribute items $(methparmobj$i) into data,left$i,sign$i,right$i
  mt$i=$(left$i) $(sign$i) $(right$i)
  !if $lt isin $(sign$i)
   !exchange left$i,right$i
  !endif
 !next i
 methexp=°Ñ \($mt1) Óë \($mt2) Ïà³Ë

 !read deduc/sub/checkineq ($right1),>=,0\
    ($left1),>=,0\
    ($right1),>,0\
    ($left1),>,0
 !distribute lines $out into t1,t2,t3,t4
 !if $t2=false
  error=µÚÒ»¸ö²»µÈʽ²»Âú×ãÌõ¼þ!
  !advance penalty
  !exit
 !endif
 !if $t1=true or $t2=true
  !if $t2=true
   sign3=$sign1=
   mt2=$t4
  !else
   sign3=$sign1
   mt2=$t3
  !endif
  !goto ok1
 !endif
 !ifval $methparm3=0
  !goto bad1
 !endif
 !read deduc/sub/checkineq ($left1) - ($left3) + ($right3),>=,0\
    ($left1) - ($left3) + ($right3),>,0
 !distribute lines $out into mt1,mt2
 !if $mt1!=true
   :bad1
   error=ÎÒ¿´²»³öΪʲôµÚÒ»¸ö²»µÈʽÂú×ãÌõ¼þ.
   !advance penalty
   !exit
 !endif
 :ok1
 !read deduc/sub/checkineq ($right2),>=,0\
    ($right2),>,0
 !distribute lines $out into mt3,mt4
 !if $mt3=true
  sign4=$sign2=
  !goto ok2
 !endif
 !if $out=false
  error=µÚ¶þ¸ö²»µÈʽ²»Âú×ãÌõ¼þ!
  !advance penalty
  !exit
 !endif
 !if $[$methparm4]=0
  !goto bad2
 !endif
 !read deduc/sub/checkineq ($right2) - ($left4) + ($right4),>=,0
    ($right2) - ($left4) + ($right4),>,0
 !distribute lines $out into mt3,mt4
 !if $mt3!=true
   :bad2
   error=ÎÒ¿´²»³öΪʲôµÚ¶þ¸ö²»µÈʽÂú×ãÌõ¼þ.
   !exit
 !endif
 :ok2

 !read deduc/sub/simplify ($left1) * ($left2)\
    ($right1) * ($right2)
 !distribute lines $out into newright, newleft
 !if $newleft=$empty or $newright=$empty
  error=bad_data
  !exit
 !endif

 s_=<
 !if $eq isin $sign3 and $mt2!=true
  eq1=true
 !endif
 !if $eq isin $sign4 and $mt4!=true
  eq2=true
 !endif
 !if ($eq isin $sign1 and $eq isin $sign2) or\
    ($eq1=true and $eq2=true) or\
    ($eq isin $sign1 and $eq1=true) or ($eq isin $sign2 and $eq2=true)
  s_=$s_=
 !endif
 newobject0=$newleft $s_ $newright
 oldobject=0

!exit