Sign in Join
Wiki copytemporary

Becomes/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<div style="float:left; margin: 0 10px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">
2-
3-
41=
5-
6-</div>
72
83Le symbole ***:=*** (le symbole [[Colon/fr|colon]] suivi du symbole [[Equal/fr|equal]] sans espace ou autre caractère de séparation) est prononcé ***devient*** et est utilisé en [[Pascal/fr|Pascal]] pour signifier *est affecté de la valeur de* :
94
105``` pascal
116 A := 4 ;
127 Circle_Area := Pi * Diameter ;
138 Name := 'Smith' ;
149 C := 1000 - C div 2 ;
1510```
1611
1712L'usage d'employer deux caractères pour l'affectation (au lieu d'un seul, c'est à dire le signe =) est de faire la différence entre l'affectation de valeur et la comparaison d'égalité.
1813
1914Par exemple, dans d'autres langages que Pascal on peut écrire
2015
2116
2217A = B = D ;
2318
2419or
2520
2621A = B = D
2722
2823selon comment est requis le point-virgule dans ce langage.
2924
3025La signification de cette expression est différente selon le langage. Par exemple, en Fortran et Basic, l'instruction voudrait dire de mettre dans la variable A la valeur de *est-ce que B est égal à D ?*. Dans le langage C, l'instruction voudrait dire que l'on affecte A et B *à la valeur de* D. Ce type d'instruction étant en erreur est suffisamment courante dans le langage C que c'est signalé par un avertissement par la compilateur sauf si vous dites au compilateur que vous avez l'intention de le faire (affectation multiple) en mettant des parenthèses autour de l'expression (la manière correcte de faire un test en langage C est d'écrire ***A = B == D;*** ).
3126
3227En Pascal, cette confusion ne peut pas arrriver car cette instruction est illégale. On pourrait écrire :
3328
3429``` pascal
3530A := B = D;
3631```
3732
3833Ce qui signifie la même chose que Fortran ou Basic, i.e. affecter à A la réponse à la question "est-ce B et D sont égaux ?".
3934
4035Pour affecter A, B et D de la même valeur, il faut séparer explicitement les affectations selon l'un des formes suivantes :
4136
4237
4338A := D ; B := D ;
4439
4540or
4641
4742B := D ; A := B ;
4843
4944or
5045
5146A := D ; B := A ;
5247
5348S'il y a une différence dans l'exécution ou des effets de bords (D pourrait être une variable dynamique comme un [[Port/fr|port]] système, une [[Function/fr|fonction]] ou une [[Property/fr|propriété]] d'un [[Object/fr|objet]], la valeur de l'[[Identifier/fr|identificateur]] D pourrait être différente du premier emploi au suivant.
5449
5550---
5651*From the Free Pascal wiki, page "Becomes/fr", as it stood on 2020-05-04 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history