Projet

Général

Profil

Feature - Fonctionnalité #507

gestion de la priorité * et / sur + et -

Ajouté par Hervé Baronnet il y a plus de 13 ans. Mis à jour il y a plus de 13 ans.

Statut:
Fixed - Corrigé - Implémenté
Priorité:
Normale
Assigné à:
Version cible:
Début:
09/08/2010
Echéance:
% réalisé:

100%

Temps estimé:
0.10 h

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

Révision 220deb37
Ajouté par Jean-Louis Frucot il y a plus de 13 ans

fix #507 La calculette respecte maintenant la priorité des opérateurs

Historique

#1 Mis à jour par Jean-Louis Frucot il y a plus de 13 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 13 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 13 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 13 ans

  • Statut changé de New - Nouveau à Discussed - Réflexion en cours

#5 Mis à jour par Hervé Baronnet il y a plus de 13 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 = 2045

Je 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 13 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 13 ans

  • Statut changé de Discussed - Réflexion en cours à Fixed - Corrigé - Implémenté

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux