Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/01/2012, 11h34   #1
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Par défaut Problème avec la notation postfixée

Salut à tous.
J'ai fait un algorithme pour convertir une expression infixée en postfixée.
Les symboles autorisés :
1) Les parenthèses
2) Les nombres réels
3) Les constantes : Pi
4) Les fonctions : abs, sqrt, ln, exp, sin, cos
5) Les opérateurs : ^, *, /, +, - (unaire et binaire)
Quelle priorité dois-je donner aux fonctions et opérateurs pour trouver la bonne conversion ?
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 12h05   #2
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 419
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 419
Points : 14 125
Points : 14 125
En informatique, l'usage veut qu'on prenne l'ordre des priorités du C/C++.

Operator precedence in C/C++
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 16h18   #3
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par pseudocode Voir le message
En informatique, l'usage veut qu'on prenne l'ordre des priorités du C/C++.

Operator precedence in C/C++
Mon problème est par rapport aux opérateurs "- unaire" et la puissance "^"
ont ils la même priorité???
et où mettre les fonctions ???
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 17h25   #4
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 419
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 419
Points : 14 125
Points : 14 125
Citation:
Envoyé par Onimaru Voir le message
Mon problème est par rapport aux opérateurs "- unaire" et la puissance "^"
ont ils la même priorité???
et où mettre les fonctions ???
Les fonctions ne sont pas a proprement parlé des opérateurs, main on peut considérer cela du même niveau que le "sizeof" => priorité 2.

Les opérateurs unaires sont de priorité 3.

L'opérateur puissance n'existe pas en C, mais on peut considérer qu'il est juste avant la multiplication => priorité 5.

Ca nous donne dans l'ordre de precedence:
  • le "-" unaire
  • les fonctions
  • l'opérateur "^"
  • l'opérateur "*"
  • l'opérateur "/"
  • l'opérateur "+"
  • l'opérateur "-" binaire
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/01/2012, 17h36   #5
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Juste pour savoir : combien vaut -2^2 ???
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 17h39   #6
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par pseudocode Voir le message
Les fonctions ne sont pas a proprement parlé des opérateurs, main on peut considérer cela du même niveau que le "sizeof" => priorité 2.

Les opérateurs unaires sont de priorité 3.

L'opérateur puissance n'existe pas en C, mais on peut considérer qu'il est juste avant la multiplication => priorité 5.

Ca nous donne dans l'ordre de precedence:
  • le "-" unaire
  • les fonctions
  • l'opérateur "^"
  • l'opérateur "*"
  • l'opérateur "/"
  • l'opérateur "+"
  • l'opérateur "-" binaire
Merci, donc :
1) - unaire
2) fonctions
3) ^
4) *, /
5) +, -
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 23h36   #7
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 419
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 419
Points : 14 125
Points : 14 125
Citation:
Envoyé par Onimaru Voir le message
Juste pour savoir : combien vaut -2^2 ???
-2^2 --> (-2)^2 --> ((-2))^(2)

donc 4
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 13h53   #8
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par pseudocode Voir le message
-2^2 --> (-2)^2 --> ((-2))^(2)

donc 4
Merci, c'est ce que je pense, mais dans MATLAB ou la calculatrice de Google -2^2 = -4.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 14h18   #9
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 419
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 419
Points : 14 125
Points : 14 125
Citation:
Envoyé par Onimaru Voir le message
Merci, c'est ce que je pense, mais dans MATLAB ou la calculatrice de Google -2^2 = -4.
Exact. Après m'être documenté un peu, il semble que l'opérateur "puissance" à deux priorités suivant qu'on prenne le terme de gauche ou celui de droite.

L'opérateur "puissance" sur le terme de gauche -> priorité avant le unaire
L'opérateur "puissance" sur le terme de droite -> priorité après le unaire

-2^-2 --> -(2)^(-2) --> -((2)^(-2)) = -0.25
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/01/2012, 14h43   #10
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par pseudocode Voir le message
Exact. Après m'être documenté un peu, il semble que l'opérateur "puissance" à deux priorités suivant qu'on prenne le terme de gauche ou celui de droite.

L'opérateur "puissance" sur le terme de gauche -> priorité avant le unaire
L'opérateur "puissance" sur le terme de droite -> priorité après le unaire

-2^-2 --> -(2)^(-2) --> -((2)^(-2)) = -0.25
Je vois, donc les priorité des '^' et '-' unaire sont variables.
Donc dans le processus de conversion infixée -> postfixée utilisant la pile, on suppose que le '^' est prioritaire sur le '-' unaire, mais dès qu'on trouve un '-' il faut l'empiler, c'est ça ???
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 18h47   #11
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 419
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 419
Points : 14 125
Points : 14 125
Citation:
Envoyé par Onimaru Voir le message
Je vois, donc les priorité des '^' et '-' unaire sont variables.
Donc dans le processus de conversion infixée -> postfixée utilisant la pile, on suppose que le '^' est prioritaire sur le '-' unaire, mais dès qu'on trouve un '-' il faut l'empiler, c'est ça ???
Hum... je dirais qu'on a le droit d'empiler un "^" sur un "- unaire", et réciproquement. Mais bon, je ne suis pas un expert de ce genre de choses.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 19h50   #12
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par pseudocode Voir le message
Hum... je dirais qu'on a le droit d'empiler un "^" sur un "- unaire", et réciproquement. Mais bon, je ne suis pas un expert de ce genre de choses.
Merci, j'ai essayé d'empiler le "- unaire" dès qu'il se présente tout en donnant une plus grande priorité au '^' et ça a marché.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h35.


 
 
 
 
Partenaires

Hébergement Web