Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 22 Déc 2009, 22:21
Les tableaux d'avancement de réaction chimique c'est très simple mais ça peut être bien de verrifier ses résultats rapidement.
Ce programme calcule xmax et l'état final.
La saisie des réactifs est illimitée et non prédéfinie. Il faut appuyer sur le point pendant une "pause" pour valider la totalité. Entrer valide chaque saisie et fais passer aux suivantes.
Code
EffEcr
EffListe L1,L2,L3,L4
0->¤
0->R
0->P
1->Q
Disp "reactif"
Lbl 0
¤+1->¤
output(1,13,¤-R
input "coef=",A
If Q=1
input "ni=",B
A->L1(¤)
B->L2(¤)
0->K
repeat K=103
codetouche->K
If K=105
goto 0
End
If Q=1
Then
¤->R
2->Q
EffEcr
Disp "produit"
goto 0
End
¤->P
EffEcr
For(W,1,R
L2(W)/L1(W)->L3(W)
End
min(L3)->X
For(W,1,R
L2(W)-X*L1(W)->L4(W)
End
For(W,R+1,P
L1(W)*X->L4(W)
End
Disp "XMAX"
output(1,7,X
Disp "reactifs"
For(W,1,R
Disp L4(W)
If W+1-ent((W+1)/6)*6=0 et W[=/=]R
Then
Pause
Disp " "
End
End
If P>4
Then
Pause
EffEcr
End
Disp "produits"
For(W,R+1,P
Disp L4(W)
If W-R-ent((W-R)/6)*6=0 et W[=/=]P
Then
Pause
Disp " "
End
End
Pause
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
bonjour,
j'ai un probleme, lorsque je met les coeff et que j'appuye sur . lors d'une pose cela me met ERR:DIM INVALIDE donc je met voir et cela m'affiche la ligne
:min(L3)->X
pourtant j'ai bien mis ce que c'est écris dans le modele ...
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 18 Mai 2010, 0:20
J'ai "ouvert les yeux" en me rendant compte que ma méthode de saisie n'est que rarement vraiment utile (en tout cas pas ici)
Cela devrait éliminer du même coups ton erreur de dim (qui ne me semble pas venir de moi)
Rappel : il ne calcule que Xmax et l'état final.
Code
EffEcr
EffListe L1,L2,L3,L4
Input "NB REACTIF=",R
Input "NB PRODUIT=",P
P+R->P
For(W,1,P
EffEcr
If W[<ou=]R
Then
Disp "REACTIF"
Output(1,9,W
Else
Disp "PRODUIT"
Output(1,9,W-R
End
Input "COEF=",A
If W[<ou=]R // symbole inférieur ou égal du menu test (2nde+math)
Input "MOL=",B
A->L1(W)
B->L2(W)
End
EffEcr
For(W,1,R
L2(W)/L1(W)->L3(W)
End
min(L3)->X /// à partir d'ici rien n'est changé fondammentalement
For(W,1,R
L2(W)-X*L1(W)->L4(W)
End
For(W,R+1,P
L1(W)*X->L4(W)
End
Disp "XMAX"
output(1,7,X
Disp "reactifs"
For(W,1,R
Disp L4(W)
If partDéc((W+1)/6)=0 et W[=/=]R // symbole égal barré
Then
Pause
Disp " "
End
End
If P>4
Then
Pause
EffEcr
End
Disp "produits"
For(W,R+1,P
Disp L4(W)
If partDéc((W-R)/6)=0 et W[=/=]P
Then
Pause
Disp " "
End
End
Pause
Le mien calcule des valeurs tandis que celui de Reinhart dessine le tableau et les expressions de chaque état.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 13 Jui 2011, 9:52
Ce n'est pas "[" puis "<" puis "ou" puis "=" puis "]" puis "R" mais le signe inférieur ou égal ( tu le trouve dans [2nde][maths][2] ) suivit de la lettre R (dans [alpha] [ *(multiplié)] ).
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 13 Jui 2011, 14:53
Oui.
J'ai ajoûté des commentaires et amélioré le calcul "W+1-ent((W+1)/6)*6=0" avec "partDéc((W+1)/6)=0"
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Salut, j'ai recopié le programme de maniere identique mais quand je l'utilise ça affiche "Dim invalide" et quand je fais voir,je vois que l'erreur vient de la ligne "Disp L4(W)"
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 16 Mai 2013, 0:55
J'ai de nouveau testé le programme sans problème. J'avais même posté quelque chose d'un peu plus optimisé que ce que j'ai conservé comme fichiers.
Dis-moi ce que tu as saisis, puis les valeurs de W,P,R et le contenu de L4 pour que je cherche le problème. Va dans le menu stat>edit pour voir toutes les listes.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 16 Mai 2013, 18:35
Il y a un problème avec la boucle suivante dans ta calculatrice.
Manifestement L4 n'est pas affectée.
Code
For(W,R+1,P
L1(W)*X->L4(W
End
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)