Simple calcul avec des variables [Résolu]

Messages postés
20
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
3 août 2013
- - Dernière réponse : oelihasimanitra
Messages postés
20
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
3 août 2013
- 25 août 2011 à 12:51
Bonjour à tous!
J'aimerai créer quelques lignes de code qui puissent faire un simple calcul d'algèbre d'une chaîne de caractère qui contient un ou plusieurs variables:
exemples : 2x+5+4x-5b devient 6x+5-5b
ou 2x^5+3x^2-2x^5 devient 3x^2

est-ce-que quelqu'un pourra me donner une idée de comment je dois procéder?

Merci!
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
28
3
Merci
Bonjour

Si on part du principe qu'il n'y a pas de multiplications/divisions :
il va te falloir plusieurs choses.

- Une méthode qui permette de lire une expression comme -2x^5, et de la décomposer ainsi : -2 et x^5 (si pas de multiplication ou divisions, inutile de décomposer la puissance).
=> avec du string.split(), string.substring()... tu devrais y arriver

- Un dictionnaire de type Dictionary<string, int> (int peut être remplacé par double s'il y a des nombres à virgule).
En gros, dans ton dictionnaire, tu mets comme clé ta variable ("x", "b", "x^2"...), et comme valeur, tu ajoutes le coefficient à la valeur précédente.

Exemple : ta première équation
1) On lit : 2x
2) On regarde s'il existe déjà la clé "x"
3) Il n'en existe pas, on crée la clé "x" avec la valeur 2
4) On lit : +5
5) Pour les constantes, on n'a qu'à imaginer une clé "constante"
6) On regarde s'il existe déjà la clé "constante"
7) Il n'en existe pas, on crée la clé "constante" avec la valeur 5
8) On lit : +4x
9) On regarde s'il existe déjà la clé "x"
10) Elle existe déjà, donc on ajoute la valeur +4 à la clé
11) On lit : -5b
12) On regarde s'il existe déjà la clé "b"
13) Il n'en existe pas, on crée la clé "b" avec la valeur -5
14) Plus de texte. On lit les valeurs du dictionnaire une par une
15) Première valeur : 6, clé "x" => On affiche 6x
16) Deuxième valeur : 5, clé "constante" => On affiche +5
17) Troisième valeur : -5, clé "b" => On affiche -5b
18) Plus de valeur. On a fini.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
20
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
3 août 2013
1
0
Merci
Bonjour krimog,
Merci beaucoup pour tes conseils, je les ai suivi à la lettre et j'ai réussi; mon code fonctionne très bien.
Mon problème était mon ignorance de l’existence de la classe Dictionary<>, au faite, je ne connaissais pas cette classe jusqu'à ce que tu me le fais savoir.
merci beaucoup, grâce à des gens comme toi, l'informatique évolue à merveille.
merci!
Commenter la réponse de oelihasimanitra