A seção intitulada Implementação algorítmica possui o seguinte código:
// 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
o que significa: =?
:=
como "se torna igual a". Eu realmente prefiro isso ao longo=
e==
uma vez que "=" em linguagem natural é um operador de comparação (ou pelo menos uma declaração de verdade.)Respostas:
: = é o operador de atribuição para idiomas que usam teste de igualdade de sinal de igual único. O mais conhecido desses idiomas é o Pascal. Devido à influência de C, a maioria dos idiomas mudou para = para atribuição e == para teste. Alguns textos e autores mais antigos treinados em tais estilos usam: = para pseudocódigo. Às vezes, você vê setas <- também para atribuição .
Do artigo:
Alguns idiomas modernos usam setas para atribuição; mais notavelmente R , que o utiliza para atribuição global, enquanto usa os únicos iguais (=) para atribuição local.
Com os Conceitos de Linguagens de Programação da Sebesta e as notas de aula do Dr. KN King, aprendemos que os padrões de atribuição remontam muito mais longe do que C ou Pascal. Parece que em 1958, quando Algol estava sendo projetado, foi decidido usar: = para atribuição. O comitê era composto por representantes americanos e europeus. Alguns dos alemães no comitê estavam familiarizados com o idioma Plankalkul de Konrad Zuse (redigido durante a Segunda Guerra Mundial, mas não publicado até 1972 e não implementado até 2005) e queria que a tarefa seguisse o método de atribuição proposto para essa língua, que era
b+c => a
onde b + c é atribuído a a. O comitê mudou isso para =: com o argumento de que o método de entrada de programas na época chamado de soco de teclas não tinha um ">" para usar. Então eles comprometeram o cólon igual. No entanto, os americanos familiarizados com a FORTRAN (que não tinham letras minúsculas até 1990) queriam que a missão funcionasse para a esquerda, pois era assim que a FORTRAN fazia isso.Assim, eles conseguiram alterá-lo para: = em vez disso, e tiveram a atribuição operando para a esquerda, e não para a direita, no estilo FORTRAN (sendo uma linguagem implementada conhecida), em vez de Plankalkul (uma linguagem praticamente desconhecida fora da Alemanha e não implementada) . O Algol 60 influenciou fortemente todas as principais linguagens imperativas subsequentes, incluindo Pascal e C. Assim, Pascal manteve a sintaxe da ALGOL para atribuição e ambas mantiveram a mão esquerda da atribuição.
O ALGOL foi projetado para ser fácil de ler e próximo à notação matemática. Era o padrão de fato (e basicamente de jure) para escrever algoritmos em periódicos pelos próximos 20 anos ou mais. Portanto, instrutores e cientistas da computação formados entre 1960 e 1980 teriam familiarizado com esse estilo de notação.
O lançamento do IBM 029 Keypunch em 1964 permitiu caracteres> e <, solicitando sua inclusão em C, entre outros.
fonte
:=
para atribuição. pessoas com formação matemática também irão favorecer isso.Apenas uma nota rápida e pedante. O pseudocódigo é bastante informal, então ": =" significa apenas o que você quer que ele signifique. Como outros já disseram, idiomas específicos como Pascal usam ": =" para atribuição para evitar confusão com "=" para igualdade, enquanto outros idiomas usam a combinação de "=" e "==" para a mesma finalidade.
No que diz respeito ao Pseudocódigo real , você pode usar "=", "==", "igual", "atribuído a", ": =", "possui", "recebe" ou o que flutua em seu barco, apenas desde que você seja consistente e o uso e o contexto estejam dentro do seu pseudocódigo, é claro.
fonte
Acho que é atribuição (acho que é o operador de atribuição em Delphi), então em y [0]: = x [0] você está atribuindo o valor de x [0] a y [0].
Mas o AFAIK não existe um pseudo-código padrão ; portanto, em teoria, pode ser qualquer coisa: =).
fonte
=
já tem um significado muito diferente : igualdade. Usar um operador que já tenha um significado bem entendido para algo diferente seria extremamente estúpido.:=
a escolha natural, porque em notação matemáticax := v
significa "letx
bev
" em oposição ax = v
, o que significa "x
igualv
" e, portanto, causaria confusão.=
para atribuição é confuso. Ainda me lembro, há muito tempo, quando aprendi a programar, quão confuso era verx = x + 1
. Depois de estudar matemática básica do ensino médio,x = x + 1
parece uma bobagem contraditória impossível. Em seguida, li um excelente livro sobre ciência da computação para o leitor em geral ( acho que era isso ) que era usado<-
para tarefas.x <- x + 1
é muito mais fácil de entender.Geralmente significa o mesmo que significa em matemática: atribuição.
fonte
:=
geralmente significa "é definido como" ou "é igual por definição".x := 1; y := 2; if (x = 1) y := 3
como se fosse apenasy := 3
uma otimização razoável (supondo que x não seja usado posteriormente). Das 3 atribuições 2 são implementadas por meio de análise estática. Sua "definição" de atribuições é uma afirmação geral, que simplesmente não se sustenta sem numerosas suposições de que uma definição desse termo não deveria depender.