Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
Lun 4 Déc 2017 - 8:59 par persalteas

» Lancement du TI-Concours 2017 !
Sam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Ven 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Ven 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Dim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Mer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Jeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Jeu 15 Déc 2016 - 10:24 par Ti64CLi++

» flappy bird
Jeu 15 Déc 2016 - 10:23 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Ti64CLi++
 
persalteas
 


Équilibrage de réactions chimiques

Voir le sujet précédent Voir le sujet suivant Aller en bas

Équilibrage de réactions chimiques

Message par Ruadh le Ven 6 Nov 2015 - 16:10

Bonjour !
Voici un programme qui permet d'équilibrer les réactions chimiques.

Taille : 400 octets

Code:
:Input "EQ:",Chaîne1
:EffVar[A]1->J
:1.1->E
:1->A
:{0->L1
:Rép->L2
:"#->Chaîne3    //# est une espace
:For(I,longueur(Chaîne1),1,-1
:sous-Chaîne(Chaîne1,I,1->Chaîne2
:If carChaîne("0123456789",Chaîne2
:Then
:expr(Chaîne2
:Rép+(9Rép+E)non(partDéc(E->E
:Else
:J->dim(L2
:carChaîne("-e.",Chaîne2
:If Rép
:Then
:L2(J)+ApartEnt(E)(1-2non(Rép=3->L2(J
:Else
:carChaîne("+=",Chaîne2
:If non(Rép
:Then
:If non(carChaîne(Chaîne3,Chaîne2
:Chaîne3+Chaîne2->Chaîne3
:longueur(Chaîne3)-non(max(abs(L2
:{Rép,J->dim([A]
:carChaîne(Chaîne3,Chaîne2)-1
:ApartEnt(E)+[A](Rép,J->[A](Rép,J
:Else
:If Rép=2
:-1->A
:J+1->J
:End
:End
:1.1->E
:End
:End
:If max(abs(L2
:Then
:For(I,1,dim(L2
:L2(I->[A](longueur(Chaîne3),I
:End
:End
:Gauss-Jordan([A]->[A]
:For(I,2,J
:-[A](J-I+1,J->L1(I
:End
:0=/=max(abs(L1->L1(1    // =/= est le signe [différent]
:While max(abs(partDéc(arrondi(RépL1,9
:Rép+1
:End
:RépL1

Ce programme affiche les nombres stœchiométriques de chaque espèce de la réaction que vous entrez.
Quelques règles pour qu'il fonctionne :
- Une lettre par atome, deux lettres sont considérés comme deux atomes différents (il faut écrire F à la place de Fe par exemple).
- Les charges positives et négatives sont traitées comme des éléments (Fe2+ s'écrira donc F+2).
- Les parenthèses ne sont pas prises en charge, (OH)2 devra donc être écrit O2H2 ou OHOH.

* J'ai choisi "." pour la charge positive et "-" (le moins situé sous le 3) pour la charge négative, vous pouvez les remplacer par ce que vous voulez, à part un chiffre, "=", "+" et "e". "e" (exponentielle) représente un électron.

Un exemple pour montrer le fonctionnement du programme :
Équation : O2 + H+ + Fe = Fe2+ + H2O
Dans la calculatrice : O2+H.+F=F.2+H20
Résultat : {1, 4, 2, 2, 2

Un autre programme qui équilibre les réactions chimiques : http://tout82.free.fr/forum/sujet.php?sujet=2435 (de linkakro)

Ruadh
Nouveau Venu
Nouveau Venu

Messages : 5
Points Concours : 0
Productivité : 0
Date d'inscription : 01/06/2015
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum