!! remplacer une inconnue par son expression dans une équation
<u><b>Sustituir :</b></u>
!goto $wims_read_parm
!exit


:question
!form reply
!if $nbreesscalc=0
   En la ecuación 
   !formselect repexo1 from 1 to 2 prompt 
   , reemplazar la incógnita 
   !formselect repexo2 from 1 to 2 prompt $listinc
   por su expresión obtenida en la otra ecuación.
!else
   !let tmp=!item $repexo2 of $listinc
   En la ecuación $(repexo1), reemplazo la incógnita \($tmp) por su expresión en la otra ecuación.
!endif
!if $nocalcul!=1
   <br>La ecuación siguiente :
   <input type=text name=repexo4 size=5 value=$repexo4>
   !if $mode=3
      !formselect repexo5 list 1,2,3,4,5 prompt $symbole
   !else
      <input type=hidden name=repexo5 value="1">
      =
   !endif
   <input type=text name=repexo6 size=5 value=$repexo6>
!endif
<input type=hidden name=status value=3>
<center><input type=submit value="Enviar"></center>
</form>
!exit

:reponse
<p>
   <blockquote>
   <p>
   !let tmp=!item $repexo2 of $listinc
   En la ecuación $(repexo1), reemplazada la incógnita \($tmp) por su expressión hallada en la otra ecuación.</p>
   !let tmp=!item $repexo5 of $symboleaff
   <p> la nueva ecuación será \($repexo4 $tmp $repexo6).</p>
!if $erreur!=calcul
   <font color=red><p>$erreur .</p></font>
   <p>usted puede:</p>
   <ul>
   <li>
   !href cmd=resume&status=2 elegir
   otra sustitución
   </li>
      <li>
   !href cmd=resume&status=1 regresar
   al menú general.
   </li>
   </ul>
!else
   !read erreurcalc.phtml
!endif
</blockquote>
!let wims_module_error=error : $erreur
!let erreur=$empty
!exit

:analyse
!! --------------- test si tous les champs sont remplis

!if $repexo1=$empty or $repexo2=$empty 
   erreur=$meserreur
   status=2
   !exit
!endif

!! ------------- test si la substitution est possible
tmp0=!item $repexo1 of 2,1
tmp=!line $tmp0 of $(sys$nbetape)
!distribute items $tmp into tmp1,tmp2,tmp3
tmp4=!item $repexo2 of $listinc
!if ($tmp4!=$tmp1 or $tmp4 isin $tmp3) and ($tmp4!=$tmp3 or $tmp4 isin $tmp1)
   erreur=No se puede obtener la expresión de la variable $tmp4 utilizando la ecuación $tmp0 tal como está escrita actualmente.
   !increase nbreerrrais
   !exit
!endif

!! ------------- calcul de la nouvelle equation/inequation
!if $evitecalc=0
   evitecalc=1
   !if $tmp4=$tmp1
      tmp5=$tmp3
   !else
      tmp5=$tmp1
   !endif
   tmp6=!line $repexo1 of $(sys$nbetape)
   tmp6=!replace internal $tmp4 by ($tmp5) in $tmp6
val40=$tmp6
   !distribute items $tmp6 into tmp7,tmp8,tmp9
   tmp1=!exec pari $tmp7\
$tmp9
val41=$tmp1
   !distribute lines $tmp1 into tmp7,tmp9
   tmp7=$tmp7,1,$tmp9
val42=$tmp7
   sys$[$nbetape+1]=!replace line number $repexo1 by $tmp7 in $(sys$nbetape)
!endif

!! ------------ verification de l'exactitude des calculs
!if $nocalcul!=1
tmp1=!line $repexo1 of $(sys$[$nbetape+1])
repexo4=!rawmath $repexo4
repexo6=!rawmath $repexo6
!read verifequ.calc $tmp1,$repexo4,$repexo5,$repexo6
!if NaN isin $test  
   erreur=$meserreur
   status=2
   !exit
!endif
!if $test!=$empty
   erreur=$test
   !exit
!endif
!if $mode=2
   !replace line number $repexo2 of $(sys$[$nbetape+1]) by $repexo4,$repexo5,$repexo6
!else
   sys$[$nbetape+1]=$repexo4,$repexo5,$repexo6
!endif
!endif
!increase nbetape
status=1
evitecalc=0
!exit
