Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calculer formule ?

2 réponses
Avatar
mostafa
Bonjour,

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


N 485,00 001


un fichier 2 comme suit :

___________________________
Code2 Valeur2 Code2
___________________________

N 100,00 001
K 123,00 002
=2E. .. ..


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
=2E.. ....


si je veux le r=E9sultat de la 1 ligne du fichier de calcule , quelle
m=E9thode 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=E9rateurs arithm=E9tique
Merci pour toute aide

2 réponses

Avatar
Firetox
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" a écrit dans le message de 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
Avatar
patrice
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" a écrit dans le message de
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