Erros, bugs, perguntas - página 325

 
AlexSTAL:
Merda... O terminal vem com tantos exemplos... ...tantos exemplos... SymbolInfoSample.mq5 script, por exemplo
Por vezes é suficiente definir novos conceitos no início. E só depois examinar os exemplos de programas.
 
Como posso obter o caminho completo para incluir o ficheiro?


Há duas funções

__FILE__ - dá apenas o nome do ficheiro

MQL5_PROGRAM_PATH - dá o caminho para oficheiro ex5 resultante


Pergunta - como é que sei onde no arquivo mqh- se encontra?

[Excluído]  
No MetaEditor, o botão "Lista de funções em ficheiro" abre a lista. Se rolar para baixo, termina em P e não se move mais (o triângulo preto apontando para baixo torna-se inactivo), embora também haja classes com a letra R. Por favor, conserte-o.
[Excluído]  
-Alexey-:
No MetaEditor, o botão "Lista de funções em ficheiro" abre a lista. Se rolar para baixo, termina em P e não se move mais (o triângulo preto apontando para baixo torna-se inactivo), embora também haja classes com a letra R. Por favor, corrijam.

E pelo menos o tamanho aproximado da lista o quê? Talvez haja um limite para o tamanho da lista...
 

Não sei se é um insecto ou se encontrei um truque. O seguinte código funciona, mas dá uma expressão de aviso não é booleano

void OnStart()
  {
//---
   int a=3;
   int b=3;
   int c=3;
//---   
   if(a=b=c=3)Alert("a=b=c=3");
   else Alert("Условие не верно");
//---
  }
 
sergey1294:

Não sei se se trata de um insecto ou de um truque. O seguinte código funciona mas gera a expressão não é um aviso booleano



Porque é que o código não deveria funcionar?

A única coisa é que se o operando não for convertido em furúnculo, é sobre isto que o compilador alerta, mas caso contrário tudo está correcto.

a,b,c, a propósito, não podem ser inicializados de forma alguma, uma vez que são explicitamente atribuídos no "se".

3 atribuir a, atribuir a a a b, atribuir b a c e depois verificar se é verdade e depois escrever Print().

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора - Документация по MQL5
[Excluído]  
sergey1294:

Não sei se é um insecto ou se encontrei um truque. O seguinte código funciona, mas dá uma expressão de aviso não é booleano


É provavelmente assim.

void OnStart()
{
//----------------------------------------------------------------------------//
//Work variables
int a=3;
int b=3;
int c=3;
//----------------------------------------------------------------------------//
  if(a&&b&&c==3)Alert("a=b=c=3");
  else Alert("Условие не верно");
//----------------------------------------------------------------------------//
}
 

Depois diz-me como escrever esta expressão para que não jure.

void OnStart()
  {
//---
   int a=1;
   int b=2;
   int c=3;
//---   
   if(a<b<c)Alert("a<b<c");
   else Alert("Условие не верно");
//---
  }
 
sergey1294:

Depois diz-me como escrever esta expressão para que não jure.


if(a<b&&b<c){Print("");}

No primeiro posto que estiver a fazer operações de atribuição, a atribuição múltipla em cascata é aceitável. Aqui está a tentar fazer uma comparação múltipla.

SZ uma vez que tem dois resultados de comparação na sua produção, eles devem ser separados por && ou outro operador booleano.

[Excluído]  
sergey1294:

Depois diz-me como escrever esta expressão para que não jure.


Sugiro o seguinte.

//----------------------------------------------------------------------------//
//Work variables
int a=1;
int b=2;
int c=3;
//----------------------------------------------------------------------------//
  if(a<b&&b<c)Alert("a<b<c");
  else Alert("Условие не верно");
//----------------------------------------------------------------------------//

Nikolay está à sua frente :)

Urain:

SZY uma vez que tem dois resultados de comparação na sua produção, eles devem ser separados por && ou outro operador booleano.

Neste caso, apenas &&.