π
<-

[WIP] MolMax!

Pour le TI-Basic sur Nspire

[WIP] MolMax!

Unread postby Levak » 19 Sep 2009, 22:56

Bonsoir à tous !

Je me lance dans un nouveau WIP (Work In Progress) pour vous proposer un programme de calcul intelligent manipulant les quantités de matières.
A la base je voulais adapter le programme Mmolaire par Lucas LOEGEL sur TI-83+ qui m'avais assisté pendant la Seconde et ma Première. Il s'agit d'un formulaire tout bête mais très bien pensé où l'on choisi les unités à convertir parmi celles disponibles.
Vous avez bien entendu ! FORMULAIRE ! euh oui, adapter un formulaire pour TI-nSpire c'est pas de la tarte. :#langue#:

Ma pensée est la suivante :
L'exercice propose de connaître la quantité de matière contenue dans 5g de Carbone solide.
Nous connaissons la masse molaire du carbone, mais on peut très bien envisager de coupler le programme avec les librairies de Nelson.
l'utilisateur rentre alors sur la TI :
Code: Select all
molmax("mol","12kg/mol","5g")

Et là comme par magie, au nom du Dieu Mic, la caltoche renvoie :
Code: Select all
n= 4.17x10⁻⁴ mol


Bon, ça c'est le plan extérieur, le "comment" s'en servir... après le plan intérieur est bien plus compliqué à mettre en place.

Pour l'instant, j'ai réussis à faire un système de reconnaissance d'unités au nombre expansif, c'est à dire que l'on peut rajouter des entrées histoire de rendre le programme presque universel (à moins que les formules après suivent). C'est tout simplement une sorte d' "explode" en code PHP mais un peu personnalisé pour le programme. Le programme explode(var) renvoie une liste de deux arguments, le premier la valeur numérique, le deuxième l'unité reconnue. Grâce à un jeu de commande on arrive à rendre les unités équivalentes comme suit :

en "français" on écrit
Code: Select all
 kg.mol⁻¹
vrai ? seulement pour le programme sur calto, il faut le mettre dans une chaîne ce qui donne :
Code: Select all
"kg*mol^-1"
mais aussi
Code: Select all
kg/mol
. Ces trois écritures sont reconnues comme une seule et même unité, et cela prend même pas une dizaine de caractères : string(expr(d))
:#gni#:

Voilà, donc actuellement le programme renvoie les valeurs d'entrée en séparant la valeur de l'unité, tout bête mais moi je suis content :#tritop#: (par rapport au reste où je vais morfler xD)

@+ !
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby Levak » 20 Sep 2009, 12:16

Re
Bon pour l'instant je fait du pur formulaire sans aucune optimisation, hier avec mes méninges fatiguées j'avais essayé de trouver une issue possible pour avoir une boucle simple mais finalement rien ne marchait alors ce matin je suis reparti sur le chemin du "sans danger" mais pas du tout optimisé ^^

Le principe est une série de contrôle suivant les unités choisies par l'utilisateur, si on a "mol" en 1er argument, on va scanner les autres unités et déterminer le reste avec un disp et la formule. Le problème c'est qu'il faut programmer chaque branche, une formule en déduit une autre et une autre et encore une autre...

Pour l'instant seule la branche mol est développée, avec m/M et C*V qui pour chacun a deux branches puisque l'utilisateur n'est pas obligé de respecter l'ordre des donnés.

voilà le screen :
Image

@+ !
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby tama » 21 Sep 2009, 19:48

yay c'est cool ça, continue on t'encourage à distance ! :D
(pis t'as mérité un +1, et toc !)
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: [WIP] MolMax!

Unread postby Levak » 21 Sep 2009, 19:53

tama wrote:yay c'est cool ça, continue on t'encourage à distance ! :D
(pis t'as mérité un +1, et toc !)


merci ^^
Bon j'ai fini on va dire le gros du boulot, les formules "simples" j'essaierais de voir si yen a d'autres à rajouter dans chaques branches qui sont déjà bien remplies.
En faisant cette technique j'ai remarqué qu'en fait je ne pouvais pas avoir de combinaison de formules avec 3 arguments donnés et une inconnue puisque qu'il n'y a que 3 entrées : 1 inconnue et 2 arguments donnés.

De plus j'ai très envi de rendre le programme compatible avec les grammes, décigrammes, millilitres, milimoles, cm³, etc... histoire de donner un véritable atout à ce programme :):
Pour l'instant je n'ai aucune idée de comment faire...quoique si, de façon pas optimisée ça peut se faire xD
@+ !
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby Adriweb » 24 Sep 2009, 15:56

hmm, excellent :D

j'attends ca avec impatience :D

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [WIP] MolMax!

Unread postby Levak » 24 Sep 2009, 18:01

Mic wrote:Sympa de voir un nouveau projet venant de ta part.
Que du bon comme d'hab !
AdRiWeB wrote:hmm, excellent :D
j'attends ca avec impatience :D

Merci ^^

Bon bon bon... j'ai presque failli crier EUREKA cet aprem en heure de perm mais malheureusement j'avais eu une mauvaise vision, donc le programme reconnaissant les "sous-unités" (mg, ml, mmol etc...) n'est pas pour demain. Hyperbole bien sûr !Certes j'ai pas réussis à inclure mon optimisation merveilleuse de cette mod (comment ça moi crâneur ? xD) avec mon programme... (haaaan ! et toc ! dans la face !)
Pourquoi ?
Tout simplement parce que mon programme explode(d) est tellement puissant que je n'arrive plus à me rappeler comme il marche... il arrive à me séparer les lettres des nombres en supprimant les lettres qu'il connais pas ! Je ne sais pas d'où ça vient parce que sur brouillon (sur un feuille de calcul sans variables) ça renvoi exactement les deux morceaux, sans tronquer une partie, seulement là, je ne sais pas ce qu'il fait, sûrement qu'à sa tête !

Code: Select all
Define explode(d,m)=
Prgm
 Local enti,i
 If m=1 then
  enti:= {"k", "h", "da", "[]", "d", "c", "m"}
 ElseIf m=0 then
  enti:= {"l", "mol", "g", "kg/mol", "mol/l"}
 EndIf
 For i, 1, dim(enti)
  Try
   result:= { left( string( expr( d ) ), inString( string( expr( d ) ), enti[i] ) -1 ), enti[i] }
  Else
  EndTry
 EndFor
EndPrgm


Ouai je sais c'est pas très lisible comme çà ^^
J'ai mis le programme explode(d,m) qui s'exécute avec une chaîne de caractère au début et un nombre 1 (pour l'instant)
avec explode( "13mmol", 1 ) il sera censé retourner dans result la valeur { "13m", "mol"} mais il renvoie { "13", "mol" }

Euuh... attendez... je comprends plus rien là... d'un seul coup il remarche :|: je doit avoir des hallucinations :#fou2#:

Bon bah c'est bon alors !! l'intégration va marcher :#wahoo#:


Levak est reparti coder.... :#tritop#:
A dans disons 10 minutes :#langue#:

@+
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby Levak » 24 Sep 2009, 19:02

Bon... après des minutes trèèèès longues, des moments intenses de joie puis de colère parce que ça marche pas... j'ai ENFIN fait ce que je voulais faire :#gni#:

la preuve :
Image

:#wahoo#: :#wahoo#:

là franchement, je suis super content :#ouin#:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby critor » 24 Sep 2009, 22:29

J'ai remarqué...


C'est sûrement génial...

Mais je me sens à plat. crepe:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.9%
 
Posts: 41980
Images: 15866
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: [WIP] MolMax!

Unread postby Levak » 24 Sep 2009, 22:30

critor2000 wrote:J'ai remarqué...
C'est sûrement génial...
Mais je me sens à plat. crepe:


Comme toujours, critor est enigmatique... que veux-tu dire par là :|: :hum:


:#gni#:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [WIP] MolMax!

Unread postby tama » 24 Sep 2009, 22:31

changement de piles pour bientôt :p
pas mal pas mal, ça avance bien tout ça ^^
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Next

Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
763 utilisateurs:
>744 invités
>12 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)