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