Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 Régle de précédence Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
matina
Newbiiiie
Newbiiiie




Messages: 2

MessagePosté le: Sam 31 Déc 2011 - 21:58 Répondre en citantRevenir en haut

Bonjour,
Je suis débutante en programmation. et je viens d'avoir affaire au cours concernant la priorité relative aux opérateurs. Bref en mathématiques c'est simple:
n°1/ ()
n°2/ ** alias ^
n°3/ *, /
n°4) +,-
Mais en informatique il y a quelques nouveaux intrus: par exemple \ et mod qui viennent s'insérer respectivement entre le n° 3 et le 4. Il me reste que je n'arrive à saisir l'ordre que prennent les fonctions( abs, sqrt, sin, tan...), est-ce qu'elles sont exécutées au même temps que les parenthèses ou après celles-ci.
Je vous serai très reconnaissante si vous pouviez m'éclairer sur ce point.
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
Darshan
Modérateur
Modérateur



Sexe: Sexe:Masculin
Messages: 270
Localisation: Chaville (92)

MessagePosté le: Sam 31 Déc 2011 - 23:49 Répondre en citantRevenir en haut

Salut !

N'oubliez pas de vous présenter ici : http://www.web-ig.com/forum/10_0-presentation-des-nouveaux-membres-par-ici.html

PS : Nul besoin de créer 2 sujets identiques dans plusieurs catégories du forum Wink

_________________
-> Tumblr Loi Duflot.
-> Actualité immobilier.
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
floriannn
Forumeur occasionnel
Forumeur occasionnel




Messages: 22

MessagePosté le: Dim 01 Jan 2012 - 18:10 Répondre en citantRevenir en haut

Salut,

C'est un peu comme en maths avec les fonctions de type f(x). Imaginons l'expression :

Code:
maVariable1 := 2;
4 + maVariable1 * (sqrt(9) * 2)


En mémoire, on a (en gros) :
Code:
4 + 2 * (sqrt(9) * 2)


On commence par le calcul de parenthèse, vu qu'elle a la plus grande priorité. Sauf qu'on va avoir du mal à calculer sqrt(9)*2, vu qu'on ne sait pas quelle est la valeur de sqrt(9). Pour pouvoir calculer la valeur de l'expression, on a donc besoin de connaître la valeur de sqrt(9), et donc, d'exécuter la fonction. Ce qui nous donne :
Code:
4 + 2 * (3 * 2)


On connaît maintenant tous les membres de la parenthèse, donc on peut effectuer son calcul :
Code:
4 + 2 * (6)


Priorité suivante : la multiplication, donc on calcule 2 * (6) :
Code:
4 + 12


Pour finir, on fait l'addition :
Code:
16

____________
Dans ce cas précis, on donne donc la priorité à la fonction. Par contre, il y a un cas où c'est plus vague où ça dépend du compilateur. Par exemple :
Code:
sqrt(9) + 2 * (4 * 2)


On commence par le calcul de parenthèse, vu qu'elle a la plus grande priorité. On calcule donc 4*2 :
Code:
4 + 2 * (8)


Priorité suivante : la multiplication, donc on calcule 2 * (8 ) :
Code:
sqrt(9) + 16


Pour finir, on fait l'addition, mais on ne connaît pas la valeur de sqrt(9), donc on va avoir du mal à faire le calcul. On a donc besoin de connaître la valeur de sqrt(9), et donc, d'exécuter la fonction. Ce qui nous donne :
Code:
3 + 16


On peut enfin faire l'addition :
Code:
19

____________
Dans cet exemple, on a choisi d'exécuter la fonction que lorsque l'on avait vraiment besoin de connaître sa valeur. Cependant, on aurait très bien pu décider de procéder autrement, en calculant d'abord la valeur de sqrt(9), puis en effectuant les opérations suivantes (donc : calcul de fonction, puis calcul de la parenthèse, puis multiplication, et enfin addition !).

Donc, tout dépend du compilateur et du langage choisis, mais au final, ça a peu d'importance, le principal étant d'obtenir le bon résultat, quelle que soit l'implémentation retenue.

J'espère avoir répondu à ton interrogation.
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum