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

Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
- - Dernière réponse : 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);
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
10 février 2010
3
Merci
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)) ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mkl238
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
22
3
Merci
@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é. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
10
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
10 février 2010
0
Merci
note: j'ai inversé le signe dans la condition de fin de boucle
Commenter la réponse de mkl238
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
0
Merci
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....
Commenter la réponse de spmsbl
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
0
Merci
Merci a vous deux !!je vais intégrer ce code a mon programme.
Commenter la réponse de spmsbl