!set methtit=方程的加权和式
!set methparmtype=parm equation >,parm equation >,\
    number, number, choice 2
!set methparmrelax=5
!set methhelp=这个方法计算两个方程的加权和式.\
    所得结果或者可以加到假设中,\
    或者取代两个初始方程中的一个.

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

!exit
:form
 引入一个新方程, 它是 <br/>
 !default methparm3=1
 !default methparm4=1
 !read deduc/methparm.phtml 3,5
 乘方程
 !read deduc/methparm.phtml 1
 <br/>加上
 !read deduc/methparm.phtml 4,5
 乘方程
 !read deduc/methparm.phtml 2
 <br/>
 新的方程
 !formselect methparm5 list 0,1,2 prompt \
    被加到假设中,\
    替换第一个方程,\
    替换第二个方程
!exit
:check
 !ifval $methparm3=0 and $methparm4=0
  error=系数是零!
  !exit
 !endif
 !ifval ($methparm=1 and $methparm3=0) or \
    ($methparm=2 and $methparm4=0)
  error=你要用一个系数全为零的方程去替换吗?\
   这会丢失信息的!
  !advance penalty
  !exit
 !endif
 !distribute items $methparmobj1 into data1,left1,sign1,right1
 !distribute items $methparmobj2 into data2,left2,sign2,right2
 !if $data1 issametext $data2
  error=这个方法禁止一个方程与自己相加.
  !exit
 !endif
 methexp=\(($methparm3)*($left1 $sign1 $right1) + ($methparm4)*($left2 $sign2 $right2))
 
 !read deduc/sub/simplify ($methparm3)*($left1) + ($methparm4)*($left2)\
    ($methparm3)*($right1) + ($methparm4)*($right2)
 !distribute lines $out into newleft, newright
 !if $newleft=$empty or $newright=$empty
  error=bad_data
  !exit
 !endif

 newobject$methparm5=$newleft = $newright
 oldobject=$methparm5
 forcereplace=$methparm5

!exit

