Comment mettre un opérateur dans une variable ?

Résolu
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 7 févr. 2010 à 04:05
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 8 févr. 2010 à 13:59
Bonjour

J'ai besoin de faire un calcul avec des fractions, exemple 1/3 - 1/5 + 1/7 ect
dans mon calcul les opérateurs - et + sont alterner de facon constante, une fois moins une fois plus ect...
comment je peux mettre un opérateur + ou - dans une variable et men servir pour faire un calcul apres ?

Merci d'avance pour vos réponse !

voici une partie de mon programme

int x = 3;
char op='-';
do
{
ab = 4*(1 'op'(1/x));
if (op == '-')
op = '+';
else if (op == '+')
op = '-';
x=x+2;

} while (x > b);

5 réponses

mkl238 Messages postés 10 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 10 février 2010
7 févr. 2010 à 19:33
Bonjour,

Malheureusement il n'y a pas de moyen de mettre un opérateur dans une variable.

en général on utilise un truc du genre:


for(int cpteur = 0; cpteur > fin; ++cpteur)
{
    result += (1/x) * Math.Pow(-1, cpteur);
}


mais dans ton exemple tu n'as pas besoin de boucle étant donné que tu remplace a chaque fois le contenu de la variable ab.

C'est quoi ta série? 4*(-1^n + 1/(x+2*n)) ?
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 48
8 févr. 2010 à 10:20
@Spmsbl : mkl238 t'a donné une solution qui marche très bien.

En pseudo code, ça donne ça :

i := 1
valeur := 0
début de la boucle (de la taille que tu veux)
valeur := valeur - (-1 puissance i) * (1 / (i * 2 - 1))
i := i + 1
fin de la boucle
X := valeur * 4

L'autre solution, c'est de faire simplement un if sur l'opération.
Il existe une dernière solution avec des délégués, mais ce serait se compliquer la vie que de l'utiliser pour quelque chose d'aussi simple.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
3
mkl238 Messages postés 10 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 10 février 2010
7 févr. 2010 à 19:36
note: j'ai inversé le signe dans la condition de fin de boucle
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
7 févr. 2010 à 23:57
Merci mkl238 pour ta réponse

en fait, je dois écrire cette formule X = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 ...)
ou X est une estimation de PI. Si je ne peu pas mettre d'opérateur dans une variable, il va falloir que je trouve
une autre facon de faire....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
8 févr. 2010 à 13:59
Merci a vous deux !!je vais intégrer ce code a mon programme.
0
Rejoignez-nous