Feature - Fonctionnalité #507
gestion de la priorité * et / sur + et -
100%
Description
J'ai testé le niveau décomposition, super !
mais quand je tappes ma décomposition.
2x100+4x10+5 = 2045 au lieu de 245 en fait il fait ((2*100+4)*10)+5
Il me semble avoir compris que C++ gère la précédence
http://www.ensta.fr/~enstar/doc/c++/courscpp/Sections/Sect02-A3.html
et d'apès ce tableau :
http://www.ensta.fr/~enstar/doc/c++/courscpp/Sections/Annexe-2.html
Multiplication et division ont une priorité plus grande que addition et soustraction donc pourqquoi ce comportement ?
Remarque les parenthèses ont la précédence la plus grande ce qui permettra de les intégrer aussi ;-)
Révisions associées
fix #507 La calculette respecte maintenant la priorité des opérateurs
Historique
#1 Mis à jour par Jean-Louis Frucot il y a plus de 14 ans
J'avais posé la question dans un mail précédent et André m'a répondu qu'on évaluait de gauche à droite (Ce qui me semble assez logique) ceci m'a valu quelques complications car j'ai du m'arranger pour mettre des parenthèses où il fallait.
Pour résoudre cet exo, il faut utiliser les mémoires pour stocker des résultats intermédiaires !
#2 Mis à jour par Hervé Baronnet il y a plus de 14 ans
Jean-Louis Frucot a écrit:
J'avais posé la question dans un mail précédent et André m'a répondu qu'on évaluait de gauche à droite (Ce qui me semble assez logique) ceci m'a valu quelques complications car j'ai du m'arranger pour mettre des parenthèses où il fallait.
Pour résoudre cet exo, il faut utiliser les mémoires pour stocker des résultats intermédiaires !
RV :
Je ne comprend pas : la multiplication est prioritaire sur l'addition
que signifie "on évaluait de gauche à droite".
Pourquoi te compliquer, pour une fois que je cherche à facilité la vie ds développeurs :-)
Par ailleurs ce choix conduit à ce qu'une décomposition exacte aboutisse à un résultat faux, pas glop :
décomposition de 245 = 2x100+4x10+5 = 2045
#3 Mis à jour par Jean-Louis Frucot il y a plus de 14 ans
Hervé Baronnet a écrit:
Jean-Louis Frucot a écrit:
J'avais posé la question dans un mail précédent et André m'a répondu qu'on évaluait de gauche à droite (Ce qui me semble assez logique) ceci m'a valu quelques complications car j'ai du m'arranger pour mettre des parenthèses où il fallait.
Pour résoudre cet exo, il faut utiliser les mémoires pour stocker des résultats intermédiaires !RV :
Je ne comprend pas : la multiplication est prioritaire sur l'addition
que signifie "on évaluait de gauche à droite".Pourquoi te compliquer, pour une fois que je cherche à facilité la vie ds développeurs :-)
voir mail sur DEV du 30 et 31/07 sujet Calculette comportement
Par ailleurs ce choix conduit à ce qu'une décomposition exacte aboutisse à un résultat faux, pas glop :
décomposition de 245 = 2x100+4x10+5 = 2045
Je suis d'accord avec toi, mais là on est dans une problématique de programmeur et pas d'enfant !
Naturellement, à l'école élémentaire un enfant de gauche à droite.
Moi, je ne laisse pas faire ce genre de notation en classe, soit on fait des opérations intermédiaires (-> mémoire) soit on met des parenthèses.
Il me semble que l'apprentissage sur la priorité des opérateurs se fait au collège.
#4 Mis à jour par Jean-Louis Frucot il y a plus de 14 ans
- Statut changé de New - Nouveau à Discussed - Réflexion en cours
#5 Mis à jour par Hervé Baronnet il y a plus de 14 ans
Jean-Louis Frucot a écrit:
Hervé Baronnet a écrit:
Jean-Louis Frucot a écrit:
J'avais posé la question dans un mail précédent et André m'a répondu qu'on évaluait de gauche à droite (Ce qui me semble assez logique) ceci m'a valu quelques complications car j'ai du m'arranger pour mettre des parenthèses où il fallait.
Pour résoudre cet exo, il faut utiliser les mémoires pour stocker des résultats intermédiaires !RV :
Je ne comprend pas : la multiplication est prioritaire sur l'addition
que signifie "on évaluait de gauche à droite".Pourquoi te compliquer, pour une fois que je cherche à facilité la vie ds développeurs :-)
voir mail sur DEV du 30 et 31/07 sujet Calculette comportement
Par ailleurs ce choix conduit à ce qu'une décomposition exacte aboutisse à un résultat faux, pas glop :
décomposition de 245 = 2x100+4x10+5 = 2045Je suis d'accord avec toi, mais là on est dans une problématique de programmeur et pas d'enfant !
je dirais de pédagogue ;-)
Naturellement, à l'école élémentaire un enfant de gauche à droite.
oui pour la lecture mais celui qui a appris par ailleurs qu'en mathématique on fait d'abord les multiplication, il est sanctionné ?
Moi, je ne laisse pas faire ce genre de notation en classe, soit on fait des opérations intermédiaires (-> mémoire) soit on met des parenthèses.
alors cela doit être précisé dans les consignes comme une contrainte et non une possibilité :
Et la consigne serait plutôt : "Écris une suite d'opération sur une seul ligne dont le résultat est 245. Tu dois utiliser une fois les touches 10 et 100" "Tu dois utiliser les parenthèses ou les touches mémoire pour résoudre ce problème"
Il me semble que l'apprentissage sur la priorité des opérateurs se fait au collège.
oui on peut d'ailleurs envisager l'usage du logiciel à ce niveau aussi, donc dommage de refuser à priori ce type d'écriture.
En paramètre ?
#6 Mis à jour par Jean-Louis Frucot il y a plus de 14 ans
- Version cible mis à V1
- % réalisé changé de 0 à 100
- Temps estimé mis à 0.10
La calculette retrouve une gestion de la priorité des opérateurs "classique"
#7 Mis à jour par Jean-Louis Frucot il y a plus de 14 ans
- Statut changé de Discussed - Réflexion en cours à Fixed - Corrigé - Implémenté