Comment mettre un opérateur dans une variable ? [Résolu]

Signaler
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
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

Messages postés
10
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
10 février 2010

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)) ?
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
@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é. -
Messages postés
10
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
10 février 2010

note: j'ai inversé le signe dans la condition de fin de boucle
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

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....
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Merci a vous deux !!je vais intégrer ce code a mon programme.