Sekcja zatytułowana Implementacja algorytmiczna zawiera następujący kod:
// 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
co znaczy: =?
:=
jako „staje się równy”. Właściwie wolę to,=
a==
ponieważ „=” w języku naturalnym jest operatorem porównania (lub przynajmniej stwierdzeniem prawdy.)Odpowiedzi:
: = jest operatorem przypisania dla języków korzystających z testu równości pojedynczego znaku równości. Najbardziej znanym z tych języków jest Pascal. Ze względu na wpływ języka C większość języków zmieniła na = w celu przypisania i == w celu przetestowania. Niektóre starsze teksty i autorzy, którzy zostali przeszkoleni w takich stylach, używają: = dla pseudokodu. Czasami widzisz strzałki <- również do przypisania .
Z artykułu:
Niektóre współczesne języki używają strzałek do przypisywania; w szczególności R , który wykorzystuje go do przypisania globalnego, a pojedynczą równość (=) do przypisania lokalnego.
Z Koncepcji Języków Programowych Sebesty oraz notatek dr Dr. KN Kinga dowiadujemy się, że standardy przydziału sięgają znacznie dalej niż C lub Pascal. Wygląda na to, że w 1958 r., Kiedy projektowano Algol, postanowiono użyć: = do przypisania. Komitet składał się z przedstawicieli amerykańskich i europejskich. Niektórzy Niemcy w komitecie znali język Plankalkul Konrada Zuse'a (który został opracowany podczas II wojny światowej, ale nie został opublikowany do 1972 r. I nie został wdrożony do 2005 r.) I chcieli, aby zlecenie było zgodne z proponowaną metodą przypisania tego języka, która była
b+c => a
gdzie b + c jest przypisane do a. Komitet zmienił to na =: na tej podstawie, że metoda wprowadzania programów w tym czasie nazywana keypunchem nie miała opcji „>”. Więc poszli na kompromis na okrężnicy. Jednak Amerykanie znający FORTRAN (nie miał małych liter aż do 1990 r.) Chcieli, aby to zadanie działało po lewej stronie, ponieważ tak właśnie robił FORTRAN.Udało im się to zmienić na: = zamiast tego i zlecenie działało w lewo, a nie w prawo w stylu FORTRAN (będącym znanym zaimplementowanym językiem), a nie Plankalkul (praktycznie nieznany język poza Niemcami i niewdrożony) . Algol 60 silnie wpłynął na wszystkie główne kolejne języki imperatywne, w tym Pascal i C. W ten sposób Pascal zachował składnię ALGOL-a dla przypisania i oba zachowały lewostronność przypisania.
ALGOL został zaprojektowany tak, aby był łatwy do odczytania i bliski notacji matematycznej. Był to de facto (i w zasadzie de jure) standard pisania algorytmów w czasopismach przez następne 20 lat. Dlatego instruktorzy i informatycy kształceni od 1960 r. Do około 1980 r. Znaliby ten styl zapisu.
Wydanie Keypuncha IBM 029 w 1964 roku pozwoliło na znaki> i <, co skłoniło ich do włączenia do C między innymi.
źródło
:=
do przypisania. ludzie o matematycznym pochodzeniu też to sprzyjają.Tylko krótka i pedantyczna nuta. Pseudokod jest dość nieformalny, więc „: =” oznacza tylko to, co chcesz. Jak powiedzieli inni, określone języki, takie jak Pascal, używają „: =” do przypisywania, aby uniknąć pomyłki z „=” dla równości, podczas gdy inne języki używają kombinacji „=” i „==” w tym samym celu.
Jeśli chodzi o rzeczywisty Pseudokod , możesz użyć „=”, „==”, „równa się”, „jest przypisany do”, „: =”, „ma”, „odbiera” lub cokolwiek płynie po twojej łodzi, po prostu tak długo, jak jesteś konsekwentny, a użycie i kontekst znajdują się w twoim pseudokodzie, jest jasne.
źródło
Zgaduję, że to przypisanie (myślę, że to operator przypisania w Delphi), więc w y [0]: = x [0] przypisujesz wartość x [0] do y [0].
Ale AFAIK nie ma czegoś takiego jak standardowy pseudo kod , więc teoretycznie może to być cokolwiek: =).
źródło
=
już zupełnie inne znaczenie: równość. Używanie operatora, który już ma dobrze zrozumiałe znaczenie dla czegoś innego, byłoby wyjątkowo głupie.:=
naturalny wybór, ponieważ w notacji matematycznejx := v
oznacza „pozwólx
byćv
” w przeciwieństwie dox = v
, co oznacza „x
równa sięv
”, a zatem spowodowałoby zamieszanie.=
z przydziału jest mylące. Wciąż pamiętam, dawno temu, kiedy nauczyłem się programować, jak mylące było to widziećx = x + 1
. Po przestudiowaniu podstawowych matematyki w szkole średniejx = x + 1
wygląda to jak niemożliwy sprzeczny bełkot. Następnie przeczytałem doskonałą książkę na temat informatyki dla ogólnego czytelnika ( myślę, że to była ta ), która posłużyła się<-
zadaniami.x <- x + 1
jest znacznie łatwiejszy do zrozumienia.Zazwyczaj oznacza to to samo, co w matematyce: zadanie.
źródło
:=
zwykle oznacza „jest zdefiniowany jako” lub „jest z definicji równy”.x := 1; y := 2; if (x = 1) y := 3
tak, jakby to była po prostuy := 3
rozsądna optymalizacja (przy założeniu, że x nie będzie później używane). Z 3 zadań 2 są realizowane za pomocą analizy statycznej. Twoja „definicja” zadań jest ogólną instrukcją, która po prostu nie mieści się bez wielu założeń, od których definicja tego terminu nie powinna zależeć.