Blame | Last modification | View Log | RSS feed
!set methtit2=Óò»±äºÅ´úÊýʽ³Ë²»µÈʽ
!set methtit=ÓôúÊýʽ³Ë²»µÈʽ
!set methenv=ZZ QQ RR
!set methparmtype=function,parm inequality >,choice,parm inequality >
!set methparmrelax=4
!set methhelp=´Ë·½·¨°Ñ²»µÈʽ \(A > B) ±ä»»³É\
\(A*f > B*f) (»ò \(A*f < B*f)), ÕâÀï \(f) ÊÇÓк㶨·ûºÅµÄ´úÊýʽ.\
´Ë·½·¨ÔÊÐí \(f) ÓÐÁãµã. Ϊ´Ë, Ô²»µÈʽÓëв»µÈʽ²»Ò»¶¨µÈ¼Û,\
Òò´ËÖ»±»ÓÃÓÚ¼ÙÉèÌõ¼þ.
!if $wims_read_parm iswordof form check
!goto $wims_read_parm
!endif
!exit
:form
°Ñ²»µÈʽ
!read deduc/methparm.phtml 2
³ËÒÔ´úÊýʽ
!read deduc/methparm.phtml 1,10
, Õâ¸öʽ×Ó
!formselect methparm3 list 0,-1,1 prompt \
$ch_choose, È¡¸ºÖµ»òÁãÖµ, È¡ÕýÖµ»òÁãÖµ
ÒòΪ
!set ch_optional=ÕâÊÇÒ»¸öÊý
!read deduc/methparm.phtml 4
!exit
:check
!bound methparm3 within -1,0,1 default 0
!if $methparm3=0
error=empty_data
!exit
!endif
!distribute items $methparmobj2 into data,left,sign,right
!read deduc/sub/checkineq ($methparm1),=,0
ztest=$out
!if $ztest=true
zr=zero
sign2=>=
!goto OK
!endif
!if $ztest=bad
!if $methparm4<1
:bad
sens=!item ($methparm3+3)/2 of ¸ºµÄ, ÕýµÄ
error=ÎÒ¿´²»³öΪʲô \($methparm1) ÊÇ$sens.
!exit
!endif
!distribute items $methparmobj4 into data,left2,sign2,right2
gt=>
lt=<
eq=$(empty)=
!if ($methparm3>0 and $lt isin $sign2) or \
($methparm3<0 and $gt isin $sign2)
!exchange left2,right2
!endif
sens=!item ($methparm3+3)/2 of <,>
!read deduc/sub/checkineq ($methparm1) - ($left2) + ($right2),$sens=,0\
($methparm1) - ($left2) + ($right2),=,0
!distribute line $out into sn,zr
!if $sn!=true
!goto bad
!endif
!else
!if ($methparm1)*$methparm3<0
error=·ûºÅ´í!
!exit
!endif
!endif
:OK
methexp=°Ñ \($left $sign $right) ³ËÒÔ \($methparm1)
!read deduc/sub/simplify ($left) * ($methparm1)\
($right) * ($methparm1)
!distribute lines $out into newleft,newright
!if $newleft=$empty or $newright=$empty
error=bad_data
!exit
!endif
!if $methparm3<0
newsign=!translate internal <> to >< in $sign
!else
newsign=$sign
!endif
newobject2=$newleft $newsign $newright
!if $eq notin $sign and $zr=true and $eq isin $sign2
newsign=$newsign=
newobject0=$newobject2
oldobject=0
!else
oldobject=2
!endif
badsign=!translate internal <> to >< in $newsign
resultlist=$newobject2,\
$newright $newsign $newleft,\
$newleft $badsign $newright
!exit