FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Comment voit-on une priorité sur une fonction?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: Comment voit-on une priorité sur une fonction?   Jeu 16 Juin 2016 - 23:03

Bonsoir à tous.

J'ai un problème de priorité sur les nombres.

Comment doit-on voir la chose (si le cas est valable) par exemple: a = SQR(5*6) ou a = SQR(5+6)
serait-il: a = SQR((5*6))  ou alors pour une addition: a = SQR(5)+6. Très certainement je n'aurais personnellement pas ce cas à résoudre, mais mieux vaut-y penser dès le départ.

Merci d'avance.
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Ven 17 Juin 2016 - 0:53

Règle 1 : Lorsqu'il n'y a que des additions, on effectue les calculs dans l'ordre que l'on veut et on peut changer l'ordre des nombres.
Règle 2 : Lorsqu'il n’y a que des additions et au moins une soustraction, on effectue les calculs dans l'ordre indiqué, de gauche à droite, et on ne peut changer l'ordre des nombres
Règle 3 : Lorsqu'il y a des parenthèses, on effectue d'abord les opérations contenues dans les parenthèses.
Règle 4 : Lorsqu'il n'y a que des multiplications, on effectue les calculs dans l'ordre que l'on veut et on peut changer l'ordre des nombres
Règle 5 : Lorsqu'il n’ y a que des multiplications et au moins une division, on effectue les calculs dans l'ordre indiqué, de gauche à droite, et on ne peut changer l'ordre des nombres.
Règle 6 : Lorsqu'il y a un mélange des quatre opérations, on effectue d'abord les multiplications et les divisions
Règle 7 : Lorsqu'il y a plusieurs parenthèses emboîtées, on effectue les calculs en partant des parenthèses les plus intérieures.
 Résumé :
• Dans une expression numérique sans parenthèses, on effectue :
o d’abord les multiplications et les divisions, de gauche à droite,
o puis les additions et les soustractions, également de gauche à droite.
• Quand on calcule une expression numérique qui contient des parenthèses :
o on effectue en priorité les calculs entre les parenthèses ;
o puis on procède comme pour une expression numérique sans parenthèses

Les règles de priorité sont :
1. les calculs contenus entre parenthèses  sont prioritaires sur les calculs situés en dehors de ces parenthèses.  
2. les exposants sont prioritaires sur les multiplications, divisions, additions et soustractions ;
3. les multiplications et divisions sont prioritaires sur les additions et soustractions.



Les exemples :
a = SQR(5*6) = SQR(30)
a = SQR(5+6) = SQR(11)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Ven 17 Juin 2016 - 1:27

Merci Papydall
Cela me convient mieux. J'avais lu quelque part, mais apparemment j'ai perdu le lien, qu'avec l'exemple: comme exemple: SQR(5+3), cela revenait à SQR(5)+3.

Ai-je mal lu? J'étais en train de coder ainsi, mais ça me perturbait complètement, car ça ne me paraissait pas possible, et finalement j'ai préféré poser la question, quitte à déranger quelqu'un.

Merci pour tes éclaircissements Papydall. cheers
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Ven 17 Juin 2016 - 1:35

Tu as bien fait de poser la question.
Le petit code suivant donne la bonne réponse.

Code:

print sqr(5+3)
print sqr(8)
print sqr(5)+3
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Ven 17 Juin 2016 - 1:41

Effectivement, c'est une méthode que j'utilise normalement pour ne pas poser de question. Mais là fatigué, et perturbé, j'y ai pas pensé, bête que je suis. Mais je ne peux pas être parfait! Crying or Very sad

Sleep
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Ven 17 Juin 2016 - 2:17

Pas de problème.
Personne n'est parfait.
Bonne nuit.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 0:51

Bonsoir,
Je reviens à la charge, avec ceci:
Papydall a écrit:
2. les exposants sont prioritaires sur les multiplications, divisions, additions et soustractions ;

Comment voit-on un exposant dans une l'expression d'une ligne écrite en basic?
Est-ce une fonction avec parenthèses, ou seulement certaines fonctions?
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 1:32

L’exponentiation c’est l’opération qui, à un couple (X,Y) associe XY.
C’est donc l’élévation de X à la puissance Y.
Dans certains langages de programmation, cette opération est noté X^Y.
En Panoramic, elle est notée POWER(X, Y)

Exemple :
Dans l’expression : 5 * POWER(6,2) / 2
On distingue 3 opérations :
Une multiplication, une élévation à une puissance (exponentiation) et une division.
L’ordre de priorité du calcul :
L’exponentiation a la plus haute priorité : elle sera calculée la première, soit POWER(6,2) , c’est-à-dire 6 élevé à la puissance 2 qui donne 6*6 =36
La multiplication et la division ont la même priorité : le calcul se fait donc de gauche à droite, soit 5 * 36 = 180, puis 180/2 = 90

Code:
print 5*power(6,2)/2
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 1:40

Merci, là tout est claire. Je suppose qu'il n'y a plus d'autre fonction ayant la même priorité.

Bonne nuit. clown
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 2:25

Considérons l’expression n = power(power( 6,2),3)
Ici on a affaire à une fonction de fonction.
Les calculs vont se faire de cette façon :
On remarque que la fonction POWER possède deux paramètres (on dit arguments) séparés par une virgule.
Les 2 arguments de la 1ère fonction POWER sont POWER(6,2) et 3, c’est-à-dire une fonction et une constante.
On calcule d’abord le 1er argument, soit POWER(6,2) qui vaut 6*6 = 36.
Notre expression devient équivalente à POWER(36,3) qui vaut 36*36*36 = 45656
Donc POWER(POWER(6,2),3) = POWER(36,3) = 45656
Code:
print power(power(6,2),3)

Un autre exemple
Considérons l’expression suivante n = max(max(max( 5,8 ), 10), 3)
La fonction MAX nécessite 2 arguments et renvoie le plus grand d’entre eux.
Nous sommes ici devant une fonction de fonction de fonction.
Les calculs se font ainsi :
En 1er lieu on calcule MAX( 5,8 ) qui donne 8
Ensuite on calcule MAX(8,10) qui donne 10
Enfin on calcule MAX(10,3) qui donne 10 qui est le résultat de l'expression.

Code:
print max(max(max(5,8),10),3)

REMARQUE : on peut imbriquer autant de fonctions que l'on veut (enfin autant que permet le langage !)


Dernière édition par papydall le Dim 11 Sep 2016 - 1:47, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 2:50

Ah !  J’allais oublier :  Pour être complet, il existe une opération dont la priorité est plus haute que l’exponentiation : c’est l’opération du « moins unaire »
Exemple :
Dans l’expression  5 – 3, le signe moins c’est l’opérateur de la soustraction.
Tandis que dans l’expression – (5-3), le 1er signe moins c’est le moins unaire et non l’opérateur de la soustraction et c’est ce moins unaire qui a la plus haute priorité.
Le moins unaire qui accepte un seul argument, permet d’obtenir l’opposé de son argument.
REMARQUE : Panoramic ne reconnait pas le moins unaire. On doit donc précéder le moins unaire par la constante 0 (zéro)
Exemple :  -(5-3) doit être codé en Panoramic par
Code:
print 0-(5-3)
De même –sin(1/2) doit être codé par
Code:
print 0-sin(1/2)
De cette façon, on ne peut plus parler de la priorité du moins unaire en Panoramic, mais dans les langages de programmation qui reconnaissent cet opérateur, il a la plus haute priorité.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 10:01

Merci pour ces précisions.
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment voit-on une priorité sur une fonction?   Sam 18 Juin 2016 - 16:36

Il n'y a pas de quoi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Comment voit-on une priorité sur une fonction?   

Revenir en haut Aller en bas
 
Comment voit-on une priorité sur une fonction?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» restes de A-squared Free impossibles à virer
» comment desinstaller pcconfidentiel schredder [Résolu]
» Comment éviter la majorité des infections virales
» Comment interdire à l'utilisateur de mettre la fenêtre en " grand écran " ? [RESOLU]
» Affiches comment être et faire pour apprendre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: