Erreurs, bugs, questions - page 2120

 
Комбинатор:
Elle peut très bien être le produit interne de l'analyse de sa propre publicité, de son forum et d'autre chose encore

La description correspond en quelque sorte mal à un usage uniquement interne.

 

?

void OnStart()
{
        int a = 0, b = 0; //Результат:
        Print(( ++a) + ( ++a)); //3
        Print((b+=1) + (b+=1)); //4
}

Résultat : 3 4

Quelle est la différence ?

 
A100:

?

Résultat : 3 4

Quelle est la différence ?

Il y a, bien sûr, une différence. Dans le premier cas, on commence par ++a, puis +, puis ++a.

La seconde est b+=1, puis b+=1, puis b+b.

 
Pouvez-vous conseiller les débutants ? Dans le passé, dans MQL4, lors de l'écriture d'une condition dans un EA, nous avions l'habitude d'écrire simplement Close[0] indiquant le prix de clôture, par exemple, une bougie a clôturé au-dessus de la moyenne mobile et l'ordre a été ouvert. Dans MQL5 (pour Forts) cela ne fonctionne pas, différents indicateurs peuvent être comparés via des poignées, mais la simple analyse des chandeliers ne fonctionnera pas. Peut-être que ces chandeliers (haut, bas, ouverture, fermeture) doivent être déclarés quelque part ? Pour MT4, j'ai juste écrit Close[0] dans la condition et le système a compris qu'il s'agissait du prix de fermeture de la barre actuelle.
 
VadimR:
Pouvez-vous conseiller les débutants ? Dans le passé, dans MQL4, lors de l'écriture d'une condition dans un EA, nous avions l'habitude d'écrire simplement Close[0] indiquant le prix de clôture, par exemple, une bougie a clôturé au-dessus de la moyenne mobile et l'ordre a été ouvert. Dans MQL5 (pour Forts) cela ne fonctionne pas, différents indicateurs peuvent être comparés via des poignées, mais la simple analyse des chandeliers ne fonctionnera pas. Peut-être que les données des chandeliers (haut, bas, ouverture, fermeture) doivent être déclarées quelque part... Mais pour MT4, j'ai juste écrit Close[0] dans la condition et le système a compris qu'il s'agissait du prix de fermeture de la barre actuelle.

Utiliser la fonction CopyXXXX

 
fxsaber:

Il y a, bien sûr, une différence.

La seconde est b+=1, puis b+=1, puis b+b.

Si vous suivez cette logique, alors

void OnStart()
{
        int c = 0;    //Результат:
        Print( c     + (c+=1)); //1
}

D'abord c+=1, puis c+c et le résultat est 1+1= 2. Et le résultat = 1

 
A100:

Si vous suivez cette logique, alors

D'abord c+=1, puis c+c et le résultat est 1+1= 2. Et le résultat = 1

Il ne fonctionne pas correctement dans le script, et il fonctionne bien dans l'EA.

Je veux dire l'exemple précédent.

 
A100:

Si vous suivez cette logique, alors

D'abord c+=1, puis c+c et le résultat est 1+1= 2. Et le résultat = 1

Vous ne comprenez pas la logique.

Print((c+=0) + (c+=1)); //2
Print((c+=1) + c); //2
 
fxsaber:

Vous ne comprenez pas.

Si je ne comprends pas la logique, alors pourquoi le résultat https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 est-il le même dans les deux cas en C99\C++ ?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.02.05
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
A100:

Si je ne comprends pas la logique - alors pourquoi en C99\C++ le résultat https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 est égal à 3 dans les deux cas ?

Parce que la logique y est différente.