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
Necessário para determinar o tamanho de uma matriz variável, mas o erro é revelado:
//---
//---
Funciona directamente com constantes (#define) e com um valor numérico, mas não como este. Porquê?
Necessário para determinar o tamanho de uma matriz variável, mas o erro é revelado:
//---
//---
Funciona directamente com constantes (#define) e com um valor numérico, mas não como este. Porquê?
tol64:
Porquê?
Com constantes (#define) e com um valor numérico, funciona directamente, mas não desta forma. Porquê?
Porque ao definir com #define, o compilador simplesmente substitui a macro encontrada com a entrada correcta antes da compilação. Por conseguinte, vê
que não contradiga a linguagem MQL5.
OK. Então, vou tomar a coragem. Assim, a descrição da função Print() diz que "os dados do tipo duplo são impressos com a precisão de 16 dígitos decimais após o ponto". De facto, verifica-se que a função Print() produz dados de certa forma arredondados:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.999999999999999716
A questão é que um número real é armazenado na memória com não mais do que 17 dígitos significativos.
Experimente este exemplo para sentir a diferença:
A descrição na ajuda será corrigida.Com constantes, é uma matriz estática, e com uma variável, é dinâmica. E o tamanho de um dinâmico é determinado usando o ArrayResize.
A segunda e subsequentes dimensões têm um tamanho fixo. Só pode ser definido por uma constante.
Porque quando definido com #define, o compilador simplesmente substitui a macro encontrada com a entrada correcta antes da compilação. Por conseguinte, vê
que não contradiga a linguagem MQL5.
Obrigado. Pode dizer-me o que pode ser feito se o tamanho de uma matriz tanto na primeira como na segunda dimensão for determinado por cálculos e não puder ser uma constante? Com ArrayResize(), só se pode alterar o tamanho da primeira dimensão. E porque é que se pode redimensionar uma matriz usando uma variável, enquanto não pode ser definida inicialmente?
Obrigado. Pode dizer-me o que pode ser feito se o tamanho de uma matriz tanto na primeira como na segunda dimensão for determinado por cálculos e não puder ser uma constante? Com ArrayResize(), só se pode alterar o tamanho da primeira dimensão. E porque posso redimensionar um array aplicando um valor variável, enquanto que este não pode ser definido inicialmente?