J'aimerai savoir si il existe une librairie ou une classe permettant de
réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et
j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur.
Par exmple, l'utilisateur entre dans une chaine de caractere du genre
"2*x+3" ou encore "5*(3+x)/x"
Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X.
Puis l'afficher.
Bon, je vais pas jouer les difficiles ! Juste quelque chose qui evalue la chaine de caracteres ! Tant pis pour la fonction integrer :(
Ou meme un ActiveX
syn-ack
ah, bein c'est de l'evaluation d'expression.
je vais essayer de te donner une reponse a la volée, parceque ca prend bp de temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les parametres des fonctions. -noublie pas de supprimer le 1er caractere a chque fois que tu le lis - je nai pas geré les espaces, a toi de le faire jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer a toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine) { gauche=soustration(chaine) tant que le chaine[0] = "+" { supprime le 1er caractere droite=soustraction(chaine) gauche += droite } return (gauche) }
double soustraction(*chaine) { gauche=multiplication(chaine) tant que le chaine[0] = "-" { supprime le 1er caractere droite=multiplication(chaine) gauche -= droite } return (gauche) }
double multiplication(*chaine) { gauche = division(chaine) tant que le chaine[0] = "*" { supprime le 1er caractere droite=division(chaine) gauche *= droite } return (gauche) }
double division(*chaine) { gauche = parenthese(chaine) tant que le chaine[0] = "/" { supprime le 1er caractere droite=parenthese(chaine) gauche *= droite } return (gauche) }
double parenthese(*chaine) { si chaine[0] = '('
supprime le 1er caractere resultat= expression(chaine) si chaine[0] <> ')' alors erreur sinon supprime le 1er caractere } sinon { resultat=variable(chaine) } return resultat }
double variable(*chaine) { si chaine[0] = "X" alors { supprime le 1er caractere return X // tu retournes sa valeur }
return chiffre(chaine) }
double chiffre(*chaine) { si debut de chaine est un chiffre de x longeur alors return (ce chiffre) a toi de lire les caracteres jusqua ce que le caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et noublie pas de les supprimer au fur et a mesure sinon erreur "erreur dans lexpression" }
"Eric" a écrit dans le message news: c9a937$56q$
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
ah, bein c'est de l'evaluation d'expression.
je vais essayer de te donner une reponse a la volée, parceque ca prend bp de
temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les parametres
des fonctions.
-noublie pas de supprimer le 1er caractere a chque fois que tu le lis
- je nai pas geré les espaces, a toi de le faire
jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer a
toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine)
{
gauche=soustration(chaine)
tant que le chaine[0] = "+"
{
supprime le 1er caractere
droite=soustraction(chaine)
gauche += droite
}
return (gauche)
}
double soustraction(*chaine)
{
gauche=multiplication(chaine)
tant que le chaine[0] = "-"
{
supprime le 1er caractere
droite=multiplication(chaine)
gauche -= droite
}
return (gauche)
}
double multiplication(*chaine)
{
gauche = division(chaine)
tant que le chaine[0] = "*"
{
supprime le 1er caractere
droite=division(chaine)
gauche *= droite
}
return (gauche)
}
double division(*chaine)
{
gauche = parenthese(chaine)
tant que le chaine[0] = "/"
{
supprime le 1er caractere
droite=parenthese(chaine)
gauche *= droite
}
return (gauche)
}
double parenthese(*chaine)
{
si chaine[0] = '('
supprime le 1er caractere
resultat= expression(chaine)
si chaine[0] <> ')' alors erreur
sinon
supprime le 1er caractere
}
sinon
{
resultat=variable(chaine)
}
return resultat
}
double variable(*chaine)
{
si chaine[0] = "X" alors
{
supprime le 1er caractere
return X // tu retournes sa valeur
}
return chiffre(chaine)
}
double chiffre(*chaine)
{
si debut de chaine est un chiffre de x longeur alors
return (ce chiffre) a toi de lire les caracteres jusqua ce que le
caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et noublie
pas de les supprimer au fur et a mesure
sinon
erreur "erreur dans lexpression"
}
"Eric" <i.am.newic@spamsux.wanadoo.fr> a écrit dans le message news:
c9a937$56q$1@news-reader4.wanadoo.fr...
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de
réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et
j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur.
Par exmple, l'utilisateur entre dans une chaine de caractere du genre
"2*x+3" ou encore "5*(3+x)/x"
Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions
entrées
je vais essayer de te donner une reponse a la volée, parceque ca prend bp de temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les parametres des fonctions. -noublie pas de supprimer le 1er caractere a chque fois que tu le lis - je nai pas geré les espaces, a toi de le faire jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer a toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine) { gauche=soustration(chaine) tant que le chaine[0] = "+" { supprime le 1er caractere droite=soustraction(chaine) gauche += droite } return (gauche) }
double soustraction(*chaine) { gauche=multiplication(chaine) tant que le chaine[0] = "-" { supprime le 1er caractere droite=multiplication(chaine) gauche -= droite } return (gauche) }
double multiplication(*chaine) { gauche = division(chaine) tant que le chaine[0] = "*" { supprime le 1er caractere droite=division(chaine) gauche *= droite } return (gauche) }
double division(*chaine) { gauche = parenthese(chaine) tant que le chaine[0] = "/" { supprime le 1er caractere droite=parenthese(chaine) gauche *= droite } return (gauche) }
double parenthese(*chaine) { si chaine[0] = '('
supprime le 1er caractere resultat= expression(chaine) si chaine[0] <> ')' alors erreur sinon supprime le 1er caractere } sinon { resultat=variable(chaine) } return resultat }
double variable(*chaine) { si chaine[0] = "X" alors { supprime le 1er caractere return X // tu retournes sa valeur }
return chiffre(chaine) }
double chiffre(*chaine) { si debut de chaine est un chiffre de x longeur alors return (ce chiffre) a toi de lire les caracteres jusqua ce que le caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et noublie pas de les supprimer au fur et a mesure sinon erreur "erreur dans lexpression" }
"Eric" a écrit dans le message news: c9a937$56q$
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
syn-ack
et tu l'appelles par
resultat=expression("3*4-(5+X)*4,5141");
"Eric" a écrit dans le message news: c9a937$56q$
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
et tu l'appelles par
resultat=expression("3*4-(5+X)*4,5141");
"Eric" <i.am.newic@spamsux.wanadoo.fr> a écrit dans le message news:
c9a937$56q$1@news-reader4.wanadoo.fr...
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de
réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et
j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur.
Par exmple, l'utilisateur entre dans une chaine de caractere du genre
"2*x+3" ou encore "5*(3+x)/x"
Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions
entrées
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
syn-ack
dans division() se glisse une erreur
il faut remplacer gauche *= droite par gauche /=droite
"syn-ack" a écrit dans le message news: c9aiqn$n5c$
ah, bein c'est de l'evaluation d'expression.
je vais essayer de te donner une reponse a la volée, parceque ca prend bp de
temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les parametres
des fonctions. -noublie pas de supprimer le 1er caractere a chque fois que tu le lis - je nai pas geré les espaces, a toi de le faire jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer a
toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine) { gauche=soustration(chaine) tant que le chaine[0] = "+" { supprime le 1er caractere droite=soustraction(chaine) gauche += droite } return (gauche) }
double soustraction(*chaine) { gauche=multiplication(chaine) tant que le chaine[0] = "-" { supprime le 1er caractere droite=multiplication(chaine) gauche -= droite } return (gauche) }
double multiplication(*chaine) { gauche = division(chaine) tant que le chaine[0] = "*" { supprime le 1er caractere droite=division(chaine) gauche *= droite } return (gauche) }
double division(*chaine) { gauche = parenthese(chaine) tant que le chaine[0] = "/" { supprime le 1er caractere droite=parenthese(chaine) gauche *= droite } return (gauche) }
double parenthese(*chaine) { si chaine[0] = '('
supprime le 1er caractere resultat= expression(chaine) si chaine[0] <> ')' alors erreur sinon supprime le 1er caractere } sinon { resultat=variable(chaine) } return resultat }
double variable(*chaine) { si chaine[0] = "X" alors { supprime le 1er caractere return X // tu retournes sa valeur }
return chiffre(chaine) }
double chiffre(*chaine) { si debut de chaine est un chiffre de x longeur alors return (ce chiffre) a toi de lire les caracteres jusqua ce que le caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et noublie
pas de les supprimer au fur et a mesure sinon erreur "erreur dans lexpression" }
"Eric" a écrit dans le message news: c9a937$56q$
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
dans division() se glisse une erreur
il faut remplacer
gauche *= droite
par
gauche /=droite
"syn-ack" <syn-ack@wanadoo.fr> a écrit dans le message news:
c9aiqn$n5c$1@news-reader2.wanadoo.fr...
ah, bein c'est de l'evaluation d'expression.
je vais essayer de te donner une reponse a la volée, parceque ca prend bp
de
temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les
parametres
des fonctions.
-noublie pas de supprimer le 1er caractere a chque fois que tu le lis
- je nai pas geré les espaces, a toi de le faire
jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer
a
toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine)
{
gauche=soustration(chaine)
tant que le chaine[0] = "+"
{
supprime le 1er caractere
droite=soustraction(chaine)
gauche += droite
}
return (gauche)
}
double soustraction(*chaine)
{
gauche=multiplication(chaine)
tant que le chaine[0] = "-"
{
supprime le 1er caractere
droite=multiplication(chaine)
gauche -= droite
}
return (gauche)
}
double multiplication(*chaine)
{
gauche = division(chaine)
tant que le chaine[0] = "*"
{
supprime le 1er caractere
droite=division(chaine)
gauche *= droite
}
return (gauche)
}
double division(*chaine)
{
gauche = parenthese(chaine)
tant que le chaine[0] = "/"
{
supprime le 1er caractere
droite=parenthese(chaine)
gauche *= droite
}
return (gauche)
}
double parenthese(*chaine)
{
si chaine[0] = '('
supprime le 1er caractere
resultat= expression(chaine)
si chaine[0] <> ')' alors erreur
sinon
supprime le 1er caractere
}
sinon
{
resultat=variable(chaine)
}
return resultat
}
double variable(*chaine)
{
si chaine[0] = "X" alors
{
supprime le 1er caractere
return X // tu retournes sa valeur
}
return chiffre(chaine)
}
double chiffre(*chaine)
{
si debut de chaine est un chiffre de x longeur alors
return (ce chiffre) a toi de lire les caracteres jusqua ce que le
caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et
noublie
pas de les supprimer au fur et a mesure
sinon
erreur "erreur dans lexpression"
}
"Eric" <i.am.newic@spamsux.wanadoo.fr> a écrit dans le message news:
c9a937$56q$1@news-reader4.wanadoo.fr...
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de
réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et
j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur.
Par exmple, l'utilisateur entre dans une chaine de caractere du genre
"2*x+3" ou encore "5*(3+x)/x"
Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions
entrées
il faut remplacer gauche *= droite par gauche /=droite
"syn-ack" a écrit dans le message news: c9aiqn$n5c$
ah, bein c'est de l'evaluation d'expression.
je vais essayer de te donner une reponse a la volée, parceque ca prend bp de
temps sinon
-il faut savoir que chaine est en fait un pointeur dans tous les parametres
des fonctions. -noublie pas de supprimer le 1er caractere a chque fois que tu le lis - je nai pas geré les espaces, a toi de le faire jai essayé de donner un exemple rapide est simple, si tu veux l'ameliorer a
toi de te debrouiller, sinon c trop long a expliquer.
double addition(*chaine) { gauche=soustration(chaine) tant que le chaine[0] = "+" { supprime le 1er caractere droite=soustraction(chaine) gauche += droite } return (gauche) }
double soustraction(*chaine) { gauche=multiplication(chaine) tant que le chaine[0] = "-" { supprime le 1er caractere droite=multiplication(chaine) gauche -= droite } return (gauche) }
double multiplication(*chaine) { gauche = division(chaine) tant que le chaine[0] = "*" { supprime le 1er caractere droite=division(chaine) gauche *= droite } return (gauche) }
double division(*chaine) { gauche = parenthese(chaine) tant que le chaine[0] = "/" { supprime le 1er caractere droite=parenthese(chaine) gauche *= droite } return (gauche) }
double parenthese(*chaine) { si chaine[0] = '('
supprime le 1er caractere resultat= expression(chaine) si chaine[0] <> ')' alors erreur sinon supprime le 1er caractere } sinon { resultat=variable(chaine) } return resultat }
double variable(*chaine) { si chaine[0] = "X" alors { supprime le 1er caractere return X // tu retournes sa valeur }
return chiffre(chaine) }
double chiffre(*chaine) { si debut de chaine est un chiffre de x longeur alors return (ce chiffre) a toi de lire les caracteres jusqua ce que le caractere qui suit ne soit plus un chiffre ou une virgule (ou .) et noublie
pas de les supprimer au fur et a mesure sinon erreur "erreur dans lexpression" }
"Eric" a écrit dans le message news: c9a937$56q$
Bonjour !
J'aimerai savoir si il existe une librairie ou une classe permettant de réaliser du calcul formel autre que Blitz (ne marche pas avec VC++ 6, et j'utilise les MFC pour l'interface graphique)
Je dois faire saisir une equation par l'utilisateur. Par exmple, l'utilisateur entre dans une chaine de caractere du genre "2*x+3" ou encore "5*(3+x)/x" Je dois pouvoir calculer la derivée, ainsi que l'image des fonctions entrées
en faisant varier X. Puis l'afficher.
Cordialement
Merci
Eric
syn-ack
c quoi ta fonction integrer? si tu mexplique je peux peut etre y repondre "Eric" a écrit dans le message news: c9aem7$9k0$
Bon, je vais pas jouer les difficiles ! Juste quelque chose qui evalue la chaine de caracteres ! Tant pis pour la fonction integrer :(
Ou meme un ActiveX
c quoi ta fonction integrer? si tu mexplique je peux peut etre y repondre
"Eric" <i.am.newic@spamsux.wanadoo.fr> a écrit dans le message news:
c9aem7$9k0$1@news-reader1.wanadoo.fr...
Bon, je vais pas jouer les difficiles !
Juste quelque chose qui evalue la chaine de caracteres !
Tant pis pour la fonction integrer :(