calculer formule ?

Le
mostafa
Bonjour,

un fichier 1 comme suit :
__________________________
Code1 Valeur1 Code2
___________________________
A 100,00 001
A 123,00 002
.. .. ..


N 485,00 001


un fichier 2 comme suit :

___________________________
Code2 Valeur2 Code2
___________________________

N 100,00 001
K 123,00 002
.. .. ..


Z 485,00 001


et dans un autre fichier de calcule :

___________________________
Code chaine
___________________________

001 A-(B+C)+D-(E*F)+G (1)
002 A+K
003 (N*Z)/F
.


si je veux le résultat de la 1 ligne du fichier de calcule , quelle
méthode je doit suivre stp sachant que la rubrique chaine peut
contenir n'importe quel formule se basant sur les codes de deux
premiers fichiers et des opérateurs arithmétique
Merci pour toute aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Firetox
Le #14511281
Bonjour,

en fait un compile avec une chaine qui prend l'operation
et qui remplae tous les elements trouves

Fichier1 abrev F1
Fichier2 abrev F2
fichier3 abrev CALC

donc dans Cal j'ai un code et une operation

machaine = CALC.chaine
monCode = CALC.code

donc voila maintenant il faut remplacer les formule en faisant des recherche
Hfiltre(F1,"code2="+CALC.code)
hpremier
tantque pas h.endehors
machaine = remplace(machaine,F1.code1,F1.valeur1)
hsuivant(F1)
Fin

// idem pour fichier 2
Hfiltre(F1,"code2="+CALC.code)
hpremier
tantque pas h.endehors
machaine = remplace(machaine,F2.code1,F2.valeur2)
hsuivant(F1)
Fin

// la chaine est normalement formate
Res = compile("MaPRoc",machaine)
si res <> "" alors
info(res)
sinon
executeTraitement("MaPRoc")
fin

voila je pense que l'idée est la c'est comme ca que je ferais

Bon dev
@+

Firetox


"mostafa"
Bonjour,

un fichier 1 comme suit :
__________________________
Code1 Valeur1 Code2
___________________________
A 100,00 001
A 123,00 002
.. .. ..


N 485,00 001


un fichier 2 comme suit :

___________________________
Code2 Valeur2 Code2
___________________________

N 100,00 001
K 123,00 002
.. .. ..


Z 485,00 001


et dans un autre fichier de calcule :

___________________________
Code chaine
___________________________

001 A-(B+C)+D-(E*F)+G (1)
002 A+K
003 (N*Z)/F
... ....


si je veux le résultat de la 1 ligne du fichier de calcule , quelle
méthode je doit suivre stp sachant que la rubrique chaine peut
contenir n'importe quel formule se basant sur les codes de deux
premiers fichiers et des opérateurs arithmétique
Merci pour toute aide
patrice
Le #14507761
su tu n'es pas un adepte des grammaires ll1, tu peux essayer de représenter
ta structure sous forme d'arbre ou :
- une feuille est une variable/nombre
- un noeud est opération
- un noeud a une feuille par opérande

exemple : A+B+C
noeud1= "+"
feuille1_noeud1=A
feuille2_noeud1=B
noeud2="+"
feuille1_noeud2=noeud1
feuille1_noeud2=C


ca devrait pas etre trop compliqué en partant de tes fichiers
ca te permet d'avoir une representation postfixée de ton expression.
apres y'a plus qu'a parcourir ton arbre par une procédure récursirve pour
faire le calcul



"mostafa" news:
Bonjour,

un fichier 1 comme suit :
__________________________
Code1 Valeur1 Code2
___________________________
A 100,00 001
A 123,00 002
.. .. ..


N 485,00 001


un fichier 2 comme suit :

___________________________
Code2 Valeur2 Code2
___________________________

N 100,00 001
K 123,00 002
.. .. ..


Z 485,00 001


et dans un autre fichier de calcule :

___________________________
Code chaine
___________________________

001 A-(B+C)+D-(E*F)+G (1)
002 A+K
003 (N*Z)/F
... ....


si je veux le résultat de la 1 ligne du fichier de calcule , quelle
méthode je doit suivre stp sachant que la rubrique chaine peut
contenir n'importe quel formule se basant sur les codes de deux
premiers fichiers et des opérateurs arithmétique
Merci pour toute aide
Publicité
Poster une réponse
Anonyme