Posté le 16/12/2014 19:35
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 55 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 16/12/2014 19:40 | #
19, de rien
...
...
...
...
...
Citer : Posté le 16/12/2014 20:11 | #
ton commentaire ne m'est d'aucune utilité
Citer : Posté le 16/12/2014 21:00 | #
Qu'entends tu par calcul de masse molaire ? La masse molaire en fonction des particules dans l'atome (neutrons, protons) ou la masse en fonction d'un certain nombre d'atomes avec les moles d'une réaction ?
Citer : Posté le 16/12/2014 21:28 | #
Sans prendre en compte les priorités, ce n'est pas très compliqué à réaliser, par congre en prenant compte des priorités ça me semble moins évident.
Globalement, tu as 3 variables :
- Une string (tmp)
- Un int. (nombre)
- Un char (op)
Tu parcours la chaine originale, si c'est un chiffre tu l'ajoute à tmp, sinon tu fait nombre = atoi(tmp); tu réinitialise tmp et tu met l'opération rencontré dans op. Tu continue, quand tu arrive à la fin d'un second nombre tu fait nombre += atoi (tmp) (si c'est une addition). Tu continue ainsi de suite et tu retourne nombre à la fin.
C'est un algorithme naïf et pas implémenté alors j'ai pu raconter de la merde, et ça peut ne pas être optimisé du tout
Citer : Posté le 16/12/2014 21:30 | #
Ton deuxième point juste la masse polaire de molecules
Citer : Posté le 16/12/2014 22:11 | # | Fichier joint
S'il y a des priorités, alors Il vaut mieux utilisé des arbres binaires, par exemple (5+8)*(6+3) donne :
Il est assez difficile de convertir une chaîne de caractère en AB, mais une fois convertit, il est très facile de calculer le résultat, il suffit juste de parcourir l'arbre en profondeur (récursivement)
[u]Structure[/u] tArbre //Permet de représenter 1 noeud de l'arbre
valeur : int //contient un nombre
symboleMath : caractère //contient soit '+', soit '-', soit '*', soit '/'
FilsGauche : tArbre //pointeur sur le fils gauche du noeud
FilsDroite : tArbre //pointeur sur le fils droit du noeud
[u]FinStructure[/u]
[u]Fonction[/u] Calcul ( Arbre : tArbre ) : Réel
[u]Si[/u] (EstFeuille(Arbre)) //EstFeuille retourne VRAI si FilsDroite == NULL et FilsGauche == NULL
retourner Arbre->valeur //on est dans une feuille
[u]sinon[/u]
[u]si[/u] (Arbre->symboleMath == '+')
retourner Calcul( Arbre->FilsGauche ) + Calcul( Arbre->FilsDroite )
[u]sinon si[/u] (Arbre->symboleMath == '-')
retourner Calcul( Arbre->FilsGauche ) - Calcul( Arbre->FilsDroite )
[u]sinon si[/u] (Arbre->symboleMath == '/')
retourner Calcul( Arbre->FilsGauche ) / Calcul( Arbre->FilsDroite )
//etc
//etc
[u]fsi[/u]
[u]fsi[/u]
[u]Fin[/u]
Citer : Posté le 17/12/2014 07:19 | #
Exactement ce qu'il me faut smash car la masse molaire de l' O2 est donc de 2*16=32 g/mol
Citer : Posté le 17/12/2014 13:17 | #
J'ai 20 fois plus simple
Il y a un syscall pour ça !
Citer : Posté le 17/12/2014 15:44 | #
oui lephé ? ça m' intéresse cela
Citer : Posté le 17/12/2014 18:28 | #
J'ai 20 fois plus simple
Il y a un syscall pour ça !
oui lephé ? ça m' intéresse cela
Ah, la facilité, toujours la facilité !
Attention je pense, tu risques de devoir changer les '*' en '×' et j'en passe.
http://media.taricorp.net/prizm/simon_chm/fx_legacy_Expressions.HTM
Citer : Posté le 18/12/2014 06:55 | #
cool ton truc et dans la compréhension du code, ça peut aider mais sinon la méthode de smash ou Jules était aussi bien
j'ai regardé ton truc mais je n'ai pas tout compris
Ajouté le 18/12/2014 à 18:25 :
je sais pas trop utiliser les syscall
Citer : Posté le 18/12/2014 18:32 | #
Ben, tu passes les arguments comme ça :
[red]TBCDvalue[/red] result;
char c = 0x31;
CalculateExpression([red]&[/red]chaine,&c,[red]&[/red]result,1);
La TBDCvalue est le type de variable du système, comme A~Z, θ, r ou Ans... tu peux le décoder avec d'autres syscalls éventuellement.
Citer : Posté le 18/12/2014 19:34 | #
j'avais pas vu que tu m'avais repondu
merci bcp je vais essayer de faire quelque chose
Ajouté le 20/03/2015 à 18:08 :
L'appel du syscall a l'air de marcher mais maintenant ça me donne un problème avec le TBCDvalue
Faut-il que je déclare le syscall dans le header pour les arguments ?
Citer : Posté le 20/03/2015 18:38 | #
Oui. Et il faut que tu ajoutes le header qui définit la structure.
Citer : Posté le 20/03/2015 19:53 | #
http://media.taricorp.net/prizm/simon_chm/fx_legacy_BCDdouble.HTM
Quand j'ai ça je met en header directement ?
Citer : Posté le 20/03/2015 20:10 | #
To convert BCD to/from double, the following code-piece could be used.
Est-ce que ça te semble correct ?
Citer : Posté le 21/03/2015 11:02 | #
Faut donc je je mette tous cela dans un .hpp alors ?
Citer : Posté le 21/03/2015 11:09 | #
Bordel mais lis le texte au moins ! Il est marqué que ça permet de convertir le binaire décimal en décimal !
Ce qui t'intéresse c'est juste la définition de la classe.
Citer : Posté le 21/03/2015 13:30 | #
Donc je ne met que la classe, le reste ne sert à rien ?
Citer : Posté le 21/03/2015 13:40 | #
... est-ce que tu comprends ce morceau de code ?
Parce que sinon, c'est sûr que tu vas pas aller bien loin...