bonsoir,
'*' désigne la multiplication des entiers.
on suppose que le programme de calcul est le plus optimisé possible.
N=3+5*6*2^{4+1}
Quelle est la première opération que l'on effectue ?
5*6=30
ou
4+1=5
Merci d'avance.
Bonsoir,
Une raison pour avoir utilisé des accolades { } à la place des classiques parenthèses ( ) ?
Sinon, pour répondre à ta question, l'ordre de priorité des calculs est :
- les parenthèses
- les puissances
- les multiplications / les divisions
- les additions / les soustractions
Et en cas d'ambiguïté, les opérations se traitent de gauche à droite.
Donc ici ce sera :
4+1 = 5
2^5 = 32
3*6*32 = 576
3+576 = 579
Le résultat que tu calcules est faux. on doit trouver 963.
En lisant l'expression de gauche à droite, on peut calculer 5*6=30
avant de calculer la puissance. Sinon pour répondre à ta question,
j'écris un parser de calculatrice.
C'est toute l'ambiguïté de ce genre d'expression, on peut lire 3+(5*6*2)^{4+1} = 963 ou 3+5*6*(2^{4+1}) = 579.
Effectivement, avec la règle de gauche à droite, on fait 5*6*2 en premier.
D'où l'intérêt des parenthèses...
salut
Bonjour carpediem,
bonjour
il s'agit d'effectuer les calculs selon "l'arbre" des opérations :
les deux sont totalement équivalents
celui de gauche est plus "naturel" (pour une machine) dans une lecture mot à mot de gauche à droite.
celui de droite est "l'optimisation" effectuant une opération au plus tôt possible
ce qui économise un niveau dans la pile (ou les appels récursifs, c'est pareil)
il correspond à une transformation par le parser de l'expression en
N=3+(5*6)*2^{4+1}
on peut peut être gagner encore (pas sûr) en la transformant en
N=(5*6)*2^{4+1}+3
(de gauche à droite toujours donc N=((5*6)*2^{4+1})+3)
les économies de bout de chandelle réalisées ne justifient pas la complication du parser que cela implique... (AMHA)
le morceau de logiciel qui analyse une ligne de texte représentant une expression à calculer pour le traduire en opérations à effectuer.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :