Erros, bugs, perguntas - página 2208
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A famosa pergunta da entrevista de emprego.
O que estará no i ?
Saídas MQL5 12. Saídas MS Visual Studio 13.como parece funcionar em C++. Foi por isso que perguntei, decidi ler C++, por exemplo. O mesmo valor por um só na diferença. Parece atribuir 5 a "y" no segundo caso e depois adicioná-lo, enquanto no primeiro exemplo, primeiro adiciona e depois atribui (demorei muito tempo a perceber como funciona =D )
em mql5 são operações iguais, em c++ são diferentes, abaixo tem apenas um exemplo de um teste em c++ ))
A famosa pergunta da entrevista de emprego.
O que estará no i ?
MQL5 distribui 12. MS Visual Studio distribui 13.Indefinido por causa do efeito secundário. Neste caso, um efeito triplo no seu conjunto. Optimizações diferentes podem calcular valores variáveis de forma diferente. Por uma questão de optimização.
Em mql5 são operações equivalentes, em c++ são diferentes, abaixo foi-lhe apenas dado um exemplo de um teste em c++ ))
De onde o obteve? Comparou os resultados das operações array[++i]=i e array[i++]=i?
Aqui está um puzzle para si. Qual é a diferença entre a operação postfix e a operação prefixada?
Uma pergunta famosa numa entrevista de emprego.
Uma pergunta estúpida e desnecessária que revela apenas se o entrevistado sabe o que é a UB e tem pouco a ver com o tema de discussão.
Aleksey Rodionov:
Estou aqui sentado a pensar, como pode o código da forma de prefixo ser útil?
O compilador tem cérebros suficientes para optimizar a forma postfix quando necessário.
Onde obteve a informação? Já comparou os resultados das operações array[++i]=i e array[i++]=i?
Aqui está uma pergunta intrigante. Qual é a diferença entre a operação postfix e a operação prefixada?
o que é que array[++i]=i e array[i++]=i tem a ver com isso, como posso comparar o que não tem estado na conversa...
Se houver algumas alterações no mql no âmbito do litígio e o senhor souber disso, então como moderador é obrigado a informar os participantes do diálogo, em vez de tentar fazer os testes de conhecimento de sintaxe, não é definitivamente o seu dever ...
e, além disso, mostrar todas as instruções em mql de ajuda sobre a diferença nas operações postfix e prefixos, mas os testes dos anos anteriores mostram que estas operações eram equivalentes em mql
ps. a propósito, acabei de verificar o exemplo do diálogo
construir 1816 resultado == 12
Esta é uma pergunta estúpida e desnecessária, que revela apenas se o entrevistado sabe o que é a UB e tem pouco a ver com o tema da discussão.
Na verdade, o formulário do prefixo é mais rápido.
Além disso, acredito que a utilização de tais construções no seu código é simplesmente inaceitável.
Primeiro, devido à ambiguidade do trabalho em diferentes implementações e, mais ainda, porque é fácil cometer um erro em tal código e não tão fácil fazer sentido do mesmo.
O código deve ser transparente e compreensível num relance.
Além disso, na minha opinião, é simplesmente inaceitável a utilização de tais construções em código.
Em primeiro lugar, devido à ambiguidade do trabalho em diferentes implementações, e ainda mais - porque é fácil cometer um erro em tal código, e não é fácil de compreender.
O código deve ser transparente e compreensível num relance.
é tempo de mudar a ajuda mql5 para a forma de convenções e regras linguísticas
O que é que array[++i]=i e array[i++]=i tem a ver com isso, como posso comparar o que não aconteceu na conversa...
Se houver uma mudança de mql no âmbito da disputa e souber disso, então como moderador é obrigado a levá-la aos participantes do diálogo, em vez de tentar conduzir testes de conhecimentos de sintaxe, não é definitivamente o seu dever...
e, além disso, mostrar todas as instruções em mql de ajuda sobre a diferença nas operações postfix e prefixos, mas os testes dos anos anteriores mostram que estas operações eram equivalentes em mql
ps. a propósito, acabei de verificar o exemplo do diálogo
construir 1816 resultado == 12
Mas os seus exemplos são puramente teóricos. Destinam-se apenas a estudantes. Nenhum programador no seu perfeito juízo os libertaria para a produção.
Postfix e prefixo de incremento e decremento são de facto utilizados em primeiro lugar em loops. E são chamados de incrementos e decretos!
Aqui estão alguns exemplos
и
Se reivindicar que as operações de prefixo e postfixação funcionam da mesma maneira, então faça uma bandeira nas suas mãos e um tambor no pescoço.
Em caso de incremento de prefixo, obterá um elemento de matriz nula não inicializado e um erro de matriz fora do intervalo na última iteração.
PS. Decidimos reler a nossa documentação sobre este assunto usando o link verde https://www.mql5.com/ru/docs/basis/operations/mathoperation
Nota importante
int i=5;
int k = i++ + + ++i;
Poderá ter problemas de cálculo ao portar a expressão acima de um ambiente de programação para outro (por exemplo, de Borland C++ para MQL5). Em caso geral, a ordem dos cálculos depende da implementação do compilador. Na prática, existem duas formas de implementação de pós-aquisição (pós-incrementação):
Na MQL5, implementamos actualmente o primeiro método de cálculo da pós-aquisição (postincrement). Mas mesmo com este conhecimento, é melhor não experimentar a utilização deste truque.