begin process at 2012 05 29 01:46:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Comment chercher un opérande central d'une expression arithmétique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment chercher un opérande central d'une expression arithmétique

vendredi 27 novembre 2009 à 21:50:30 | Comment chercher un opérande central d'une expression arithmétique

kadermissoum

Bonjour;
J'ai l'expression arithmétique suivante :

S = "((A+B)*(C-(D/E)))";
    |-----| |-||---|
    |-----| |---------|
       PG       PD

- Je voudrai chercher l'opérande centrale de cette expression (op est '*')
char cherche_op_cenrale(char s[]);
return opérande
--> l'opérande centrale de partie gauche est '+'
--> l'opérande centrale de partie droite est '-'

- Finalement je voudrai une function qui return les opérandes dans un vecteur de cette classement qui utiliser function
char cherche_op_cenrale(char s[]); (récurssive)
les arbres.

    --+-+-+--
Tab |*|+|-|/|
    --+-+-+--

char (char S[]) --> return un vecteur compli Tab

Merci...
samedi 28 novembre 2009 à 13:47:50 | Re : Comment chercher un opérande central d'une expression arithmétique

CptPingu

Administrateur CodeS-SourceS
La méthode est la suivante, en récursif, et pas forcément la plus optimisée:

1) Tu avances jusqu'à trouver un caractère spécial prioritaire (*, % ou /).
Sinon, tu recommences en cherchant un caractère spécial non prioritaire (+ ou -).
Une fois que tu en as trouvé un, tu relances la fonction avec la partie à gauche de ce que tu as trouvé et la partie à droite, tout en conservant l'opérande actuelle.

2) Pour gérer les parenthèse, c'est pas compliqué, il te faut une pile. Si tu vois une parenthèse ouvrante, tu l'empiles. Tu avances ensuite jusqu'à la prochaine parenthèse fermantes, tout en empilant toutes les parenthèses ouvrantes que tu verrais. Si tu tombes sur une parenthèse fermantes, tu dépiles. Si ta pile est vide, tu peux utiliser la méthode décrite en 1). Si ta pile n'est pas vide, tu continues la méthode 2).

Je te conseil de le faire par étape, d'abord tu codes la méthode 1), sur des expressions non parenthésées. Puis te met en place la méthode 2) en te servant de la méthode 1) qui devrait alors fonctionner.


Cette discussion est classée dans : expression, char, chercher, arithmétique, opérande


Répondre à ce message

Sujets en rapport avec ce message

Ecriture/lecture dans un fichier [ par SneakGuy ] Haaa... Merci, sa m'a aider... Enfin, j'ai encore plusieurs problemes...pour l'ecriture j'ai quelque chose qui ressemble a sa:char user[20];char pass[ conversion double en char* [ par snakers07 ] bonjour, voici mon probleme void grilleSetText(ligne,colonne,char*Text;) est une fonction comme ont peut le voir qui pren en parametre char*or j'ai un Evaluation d'une expression char* ou string [ par tsonamir ] Je suis appelé à faire un tableur dont chaque cellule contient une formule de type string ou char*,où les seuls opérateurs trouvés sont + - * / ( ) [ cryptage de cesar sur c++ [ par juniordiaw ] bjr a tous g un problemea vec mon code o faite lorske g rentre un letre il me la crypte mai sil sagi dun mo ou dune phrase il ne crypte ke la premiere enregister un fichier depuis les ressources [ par baby3378 ] Bonjour à tous, Voilà, afin de faciliter l'utilisation d'une application j'ai décidé de stocker les images et dll en ressource dans mon application af Conversion d'un char[] en char*puis stocké en char*[] [ par Saigonoseme ] Bonjour à tous, J'ai un petit souci de conversion d'une chaîne de caractère dans un tableau de chaînes de caractère !!!(tAgTabTrame). (C'est pas agré validation fonction c++ - relaceAll [ par bebellvm ] Bonjour, Je travaille sous datastage un ETL auquel il manque une fonction replaceChaine. C'est à dire remplacer une chaîne dans une chaîne autant de Maths en C++ (Dev cpp) [ par sokpassy85 ] Bonjour, Je suis confronté depuis hier à un problème pour manipuler des expressions mathématiques. J'obtiens un résultat erroné quand j'exécute mon Convert char** en int sous c [ par clavz40 ] Bonjour a tous, Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos. J'avais besoin d'une fon sprintf, combien de mémoire à alloué ??? [ par Polack77 ] Bonjour, J'ai un [size=50]petit[/size] problème dans une fonction toute bête (et sa commence à me courir sérieusement). Je veut construire une fonct


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales