Questions des débutants MQL5 MT5 MetaTrader 5 - page 618
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pouvez-vous me dire pourquoi cela pourrait être le cas ? :
Fun_1() et Fun_2() sont similaires.
Pouvez-vous me dire quelle est la cause de ce problème ? :
Fun_1() et Fun_2() sont similaires.
sur le plan académique - les fonctions ne sont pas pures et modifient l'état global.
brièvement - les deux fonctions lisent et écrivent une variable globale ou un fichier.
sur le plan académique - les fonctions ne sont pas pures et modifient l'état global.
en bref - les deux fonctions lisent et écrivent une variable globale ou un fichier.
Oui, chacun d'eux écrit un fichier. Et alors ?
et ne fonctionnent pas ensemble :-)
PS. il est impossible de se prononcer plus précisément sur l'origine des coups souterrains sans sources. Il y a une erreur quelque part - corrigez-la
Pour gagner de l'espace et améliorer la perception - en une seule fonction. Ça ne marche toujours pas.
pour l'avenir - si vous avez besoin du résultat de la fonction (au moins travaillé/non travaillé), ne le rendez pas nul. Au premier coup d'œil, il est difficile de déterminer qu'il existe un critère de "déclenchement" - il est nul, peu importe comment on lance tout est bon.
sur les droits du débogueur :
Vous avez un tas de variables globales Count_XXX, Range_XXX, que vous convertissez (plus des tableaux dSSxx[]), que vous utilisez pour décider s'il faut enregistrer ou non et que vous passez ensuite quelque part, soit par référence, soit par valeur...
il y a manifestement un problème avec leur recalcul - Count_dSS obtient 0 lorsque vous le rappelez. L'impression peut aider à comprendre ou les points d'arrêt et regarder.
à l'avenir - si vous avez besoin du résultat d'une fonction (qu'elle ait fonctionné ou non), ne la rendez pas nulle. Au premier coup d'œil, il est difficile de déterminer quel est le critère de "déclenché" - il est nul, peu importe comment on le lance, tout est bon.
sur les droits du débogueur :
vous avez un tas de variables globales Count_XXX, Range_XXX, que vous convertissez (plus des tableaux dSSxx[]), en fonction d'elles vous décidez si vous voulez enregistrer ou non et ensuite vous passez quelque part soit par référence soit par valeur...
il y a manifestement un problème avec leur recalcul - Count_dSS obtient 0 lorsque vous le rappelez. L'impression peut aider à comprendre ou les points d'arrêt et regarder.
Une version simplifiée :
// Il existe deux tableaux dynamiques A[][2] et B[][2].
// nous recherchons des correspondances par le premier indice de dimension "0".
// Tableau A Tableau B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Nous voulons obtenir :
// Tableau dSSd[][4] Tableau dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
Quel rappel avez-vous à l'esprit ?
Une version simplifiée :
Je fais référence à une fonction similaire à la première (qui peut être différente dans le détail). Vous avez posé la même question : pourquoi ces fonctions fonctionnent-elles séparément, mais pas l'une après l'autre (quel que soit l'ordre). Plus précisément, seule la première fonction fonctionne et enregistre quelque chose.
bien - baiser l'état global, c'est-à-dire que le premier appel de la première de ces fonctions a modifié soit les variables globales, soit le contenu des tableaux. Pourquoi ? Vous devriez mieux savoir, pourquoi cela devrait changer lors de l'écriture dans un fichier:-) Honnêtement - percer
Moi, par exemple, je trouve cela difficile et réticent. Obtenez un débogueur ou mettez déjà des imprimantes sur tous les endroits suspects. Vous comprenez la logique de dénomination et avez une idée de la façon dont cela devrait fonctionner (mais cela ne coïncide pas avec la réalité :-) ).
PS/ d'après l'explication de ce qui est en entrée et ce qui est en sortie, je vois qu'au lieu de deux tableaux dSSx[][4] est suffisant et un dSS[][3] :-)
Je fais référence à une fonction similaire à la première (qui peut être différente dans le détail). Vous avez posé la même question : pourquoi ces fonctions fonctionnent-elles individuellement, mais pas l'une après l'autre (quel que soit l'ordre). Plus précisément, seule la première fonction fonctionne et enregistre quelque chose.
Eh bien - l'état global est baisé, c'est-à-dire que le premier appel de la première de ces fonctions a modifié soit les variables globales, soit le contenu des tableaux. Peut-être savez-vous mieux pourquoi ils devraient le changer lors de l'écriture dans le fichier:-). Honnêtement - percer
Moi, par exemple, je trouve cela difficile et réticent. Obtenez un débogueur ou mettez déjà des imprimantes sur tous les endroits suspects. Vous comprenez la logique de dénomination et avez une idée de la façon dont cela devrait fonctionner (ce qui ne coïncide pas avec la réalité :-) ).
PS/ d'après l'explication de ce qui est en entrée et ce qui est en sortie, je vois qu'au lieu de deux tableaux dSSx[][4] est suffisant et un dSS[][3] :-)