**TI89**main saved with Tokens89OCX v.1.00.0005 Racidsolvû¥Z¡() Prgm Local i,j,order,dosage,defs,tmp,analyse getConfg()tmp 0j ""order While order"Free RAM" j+1j tmp[j]order EndWhile If tmp[j+1]<6000 Then : Text "Pas assez de mémoire!":Goto prgend:EndIf setMode("Display Digits","FLOAT 3") setMode("Exact/Approx","APPROXIMATE") Define analyse()=Prgm Local esp,cpls,ncpls,i,j,acidm,basem,basen,acidn,base1,acid2 Disp "Plan:" For i,1,30:EndFor Disp "1 Inventaire des espèces introduites " For i,1,30:EndFor Disp "2 Inventaire des couples mis en jeu" For i,1,30:EndFor Disp "3 Repérer l'acide le + fort (sauf mino)" For i,1,30:EndFor Disp "4 Repérer la base la + forte (ritaires)" For i,1,30:EndFor Disp "5 En déduire l'équation bilan" For i,1,30:EndFor Disp "6 Calcul de Kr" For i,1,30:EndFor Disp "7 Conclure sur la prépondérance 1 / 2" For i,1,30:EndFor Disp "8 Inventaire de espèces à l'équilibre" Pause Input "Liste des espèces init. ['xx','yy'...]",esp Input "Couples ['A','B','pKa';'A',...;...]",cpls rowDim(cpls)ncpls ­1basem:15acidm For i,1,colDim(esp):For j,1,ncpls If cpls[j,1]=esp[1,i] Then :If acidm>cpls[j,3] Then :cpls[j,3]acidm:esp[1,i]acidn:cpls[j,2]base1:EndIf:EndIf If cpls[j,2]=esp[1,i] Then :If basem1 and k<10^4:Disp "K>1","La réaction est avancée vers la droite." If kœ10^(­4):Disp "K<10^­4","La réaction est très peu déplacer vers","la droite et A1 & B2 ne réagissent","presque pas." If kž10^4:Disp "K>10^4","La réaction vers la droite peut-être","considérée comme totale." EndPrgm Define defs()=Prgm Local i Disp "1 Acide fort" For i,1,30:EndFor Disp "2 Acide faible" For i,1,30:EndFor Disp "3 Base forte" For i,1,30:EndFor Disp "4 Base faible" For i,1,30:EndFor Disp "5 Autres" Input "",i If i=1 Disp "Molécule ou ion capable de céder un ou","plusieurs protons et qui réagit","totalement avec l'eau." If i=2 Disp "Molécule ou ion capable de céder un ou","plusieurs protons et qui réagit","partiellement avec l'eau." If i=3 Disp "Molécule ou ion capable de capter un","ou plusieurs protons et qui réagit","totalement avec l'eau." If i=4 Disp "Molécule ou ion capable de capter un","ou plusieurs protons et qui réagit","partiellement avec l'eau." If i=5 Then Disp "1 Constante d'équilibre","2 Constante réduite d'équilibre","3 Constante d'acidité","4 Equivalence acido-basique","5 Solution tampon" Input "",i If i=1 Disp "Permet de déterminer la prépondérance","d'une réaction sur l'autre.","A + B / C + D","[C].[D] k est ss unité","-------=k","[A].[B] si k grand,  plus à droite." If i=2 Disp "C'est la constante d'équilibre avec","une réaction où l'eau intervient.","La concentration en H2O est dite constante.""A + H2O / B + C","[B].[C] kr est ss unité","-------=kr"," [A]" If i=3 Disp "La constante d'acidité (Ka) d'un couple","A/B est la constante réduite de la","réaction de l'acide de ce couple avec","l'eau. A + H2O / H3O+ + B","[H3O+].[B]","---------=Ka"," [A]" If i=4 Disp "Situation dans laquelle les réactifs","sont introduits dans les proportions","stoechiométriques de la réaction de","dosage. Dans une réaction acido-basique","n acicde = n base" If i=5 Disp "Solution dont le pH varie peu par","dilution ou par ajout de quantité","modérée d'un acide fort ou d'une base","forte." EndIf Pause EndPrgm Define dilut()=Prgm Local con1,vol1,con2,vol2,n1,n2 Input "Concentration du soluté initial:",con1 Input "Volume final:",vol2 Input "Concentration final:",con2 Disp "Lors d'une dilution le nombre de moles","reste constant, seul la concentration","varie.","or n = c initial . v preleve","et n = c final . v final","soit cinit. vpreleve = cfinal . vfinal" Pause Disp "soit v prel.= c fin . v fin / c init","v prel.="&string(con2)&"*"&string(vol2)&"/"&string(con1)," ="&string(con2*vol2/con1)&" L." Disp "On prend une pipette dans laquelle on","prelève "&string(con2*vol2/con1)&"L. du soluté que l'on","introduit dans une fiole jaugée de","(volume voulue) puis on complète la","la fiole jusqu'au trait de jauge avec","de l'eau distillée." Pause EndPrgm Define dosage()=Prgm Local i Disp "1 Méthode" For i,1,30:EndFor Disp "2 Schéma" For i,1,30:EndFor Disp "3 Point équivalent" For i,1,30:EndFor Disp "4 Concentration du soluté" For i,1,30:EndFor Disp "5 Liste du matériel" For i,1,30:EndFor Disp "6 Forme de la courbe" Input "",i If i=1 Then :dilut():Disp "On place le contenu de la fiole dans un","bécher avec un pH-mètre calibré","on place le réactif dosant dans la","burette graduée. Eh hop dosing...":EndIf If i=2 Then :FnOff:ClrDraw:RclPic dosage:Pause:EndIf If i=6 If i=4:calccon() If i=5 Then :Disp "Si à l'état liquide:","-Un bécher suffisament grand","-Une pipette gradué ou jaugée","-Un agitateur magnétique","-Un pH-mètre","-Des solutions tampons":Pause:Disp "-Une burette graduée","Si à l'état solide:","-Liquide + une balance électronique":EndIf If i=3 Then :PopUp {"Par indicateur coloré","Par la méthode des tangentes","Par ¼vb/¼pH"},i:If i=1:Disp "L'indicateur change de couleur lorsqu'il","et dans un milieu où le pH est dans la","zone de virage":If i=2:Disp "Tracer 2 tangentes parrallèles à la","courbes aux endroits le pH varie","brusquement, tracer la parrallèle qui est","entre les deux autres (| | |). Le point","d'intersection avec la courbe est (E).":If i=3:Disp "La valeur maximale des pics de","¼vb/¼pH indique une équivalence.":EndIf EndPrgm ClrIO Disp "SOLVEUR D'EXERCICES DE CHIMIE" Disp "avec des réactions acidobasiques." Disp " Par Solc (L. BARBIER)" Lbl init Disp "Initialised" Lbl awaitord InputStr "Awaiting order... ('help' for help)",order If order="" Goto awaitord If order="help" Disp "help pour aide","anal pour analyse","def pour définitions","dos pour dosage","dilut pour dilution","exit pour quitter" If order="exit" Goto prgend If order="def" defs() If order="anal" analyse() If order="dos" dosage() If order="dilut" dilut() If order="clr" ClrIO Goto awaitord Lbl prgend Disp "Deleting temps...","Programme fait par L. BARBIER","Question(s)? martien_1998@yahoo.com" DelVar dilut,analyse setMode("Display Digits","FLOAT 6") setMode("Exact/Approx","AUTO") DispHome EndPrgm äåÜâ