La section intitulée Implémentation algorithmique contient le code suivant:
// Return RC low-pass filter output samples, given input samples,
// time interval dt, and time constant RC
function lowpass(real[0..n] x, real dt, real RC)
var real[0..n] y
var real α := dt / (RC + dt)
y[0] := x[0]
for i from 1 to n
y[i] := α * x[i] + (1-α) * y[i-1]
return y
que signifie: = signifie?
:=
"devient égal à". En fait, je préfère cela=
et==
puisque "=" en langage naturel est un opérateur de comparaison (ou au moins une déclaration de vérité.)Réponses:
: = est l'opérateur d'affectation pour les langues qui utilisent un test d'égalité de signe égal. Le plus connu de ces langages est Pascal. En raison de l'influence de C, la plupart des langues sont passées à = pour l'affectation et == pour les tests. Certains textes et auteurs plus anciens qui ont été formés à de tels styles utilisent: = pour le pseudocode. Vous voyez parfois des flèches <- également pour l' affectation .
De l'article:
Certaines langues modernes utilisent des flèches pour l'affectation; plus particulièrement R , qui l'utilise pour l'affectation globale tout en utilisant le seul égal (=) pour l'affectation locale.
Des concepts de Sebesta des langages de programmation et des notes de classe du Dr KN King, nous apprenons que les normes d'affectation remontent beaucoup plus loin que C ou Pascal. Il semble qu'en 1958, lors de la conception d'Algol, il a été décidé d'utiliser: = pour l'affectation. Le comité était composé de représentants américains et européens. Certains des Allemands du comité connaissaient la langue de Plankalkul de Konrad Zuse (qui a été rédigée pendant la Seconde Guerre mondiale mais qui n'a été publiée qu'en 1972 et qui n'a pas été mise en œuvre avant 2005) et souhaitaient que l'affectation suive la méthode d'affectation proposée dans cette langue, qui était
b+c => a
où b + c est affecté à a. Le comité a changé cela en =: au motif que la méthode de saisie des programmes à l'époque appelée clavier, n'avait pas de ">" à utiliser. Ils ont donc compromis sur le colon égal. Cependant, les Américains connaissant FORTRAN (il n'avait pas de minuscules jusqu'en 1990) voulaient que l'affectation opère à gauche puisque c'était ainsi que FORTRAN le faisait.Ils ont donc réussi à le changer en: = à la place et ont fait fonctionner l'affectation vers la gauche plutôt que vers la droite dans le style de FORTRAN (étant une langue implémentée connue) plutôt que Plankalkul (une langue pratiquement inconnue en dehors de l'Allemagne et non implémentée) . Algol 60 a fortement influencé tous les principaux langages impératifs ultérieurs, y compris Pascal et C. Ainsi, Pascal a conservé la syntaxe d'ALGOL pour l'affectation et les deux ont conservé la gaucherie de l'affectation.
ALGOL a été conçu pour être facile à lire et proche de la notation mathématique. C'était la norme de facto (et essentiellement de jure) pour l'écriture d'algorithmes dans des revues pour les 20 prochaines années. Par conséquent, les instructeurs et les informaticiens formés de 1960 à environ 1980 auraient été familiers avec ce style de notation.
La sortie de l' IBM 029 Keypunch en 1964 a permis les caractères> et <, provoquant ainsi leur inclusion dans C entre autres.
la source
:=
pour l'attribution. les personnes ayant des connaissances en mathématiques y seront également favorables.Juste une note rapide et pédante. Le pseudocode est assez informel, donc ": =" signifie seulement ce que vous voulez qu'il signifie. Comme d'autres l'ont dit, des langages spécifiques tels que Pascal utilisent ": =" pour l'affectation afin d'éviter toute confusion avec "=" pour l'égalité, tandis que d'autres langages utilisent la combinaison de "=" et "==" dans le même but.
En ce qui concerne le pseudocode réel , vous pouvez utiliser "=", "==", "égal", "est affecté à", ": =", "a", "reçoit", ou tout ce qui fait flotter votre bateau, juste tant que vous êtes cohérent, et l'utilisation et le contexte sont dans votre pseudocode est clair.
la source
Je suppose que c'est l'affectation (je pense que c'est l'opérateur d'affectation dans Delphi), donc dans y [0]: = x [0] vous affectez la valeur de x [0] à y [0].
Mais AFAIK n'existe pas de pseudo-code standard , donc en théorie cela pourrait être n'importe quoi: =).
la source
=
déjà une signification très différente : l'égalité. Utiliser un opérateur qui a déjà une signification bien comprise pour quelque chose de différent serait extrêmement stupide.:=
le choix naturel, car dans la notation mathématique, celax := v
signifie ` ` laisserx
êtrev
'' par opposition àx = v
, ce qui signifiex
`` égalv
'' et serait donc source de confusion.=
pour l'affectation est source de confusion. Je me souviens encore, il y a longtemps, lorsque j'ai appris à programmer, à quel point c'était déroutant de voirx = x + 1
. Une fois que vous avez étudié les mathématiques de base au lycée, celax = x + 1
ressemble à un charabia contradictoire impossible. Ensuite, j'ai lu un excellent livre sur l'informatique pour le lecteur général ( je pense que c'était celui-ci ) qui servait<-
de devoir.x <- x + 1
est beaucoup plus facile à comprendre.Cela signifie généralement la même chose que cela signifie en mathématiques: l'affectation.
la source
:=
signifie généralement "est défini comme" ou "est égal par définition".x := 1; y := 2; if (x = 1) y := 3
comme si c'était justey := 3
est une optimisation raisonnable (en supposant que x n'est pas utilisé plus tard). Sur 3 affectations, 2 sont mises en œuvre au moyen d'une analyse statique. Votre «définition» des affectations est une déclaration générale, qui ne tient tout simplement pas sans de nombreuses hypothèses sur lesquelles une définition de ce terme ne devrait pas dépendre.