Questions des débutants MQL4 MT4 MetaTrader 4 - page 241

 

Bonjour les programmeurs !

Comment résoudre la comparaison de deux nombres dans une boucle for ?

Que faudrait-il faire pour trouver A==B sans le cas de la boucle i ?

Dans la boucle, la comparaison de deux nombres se fait uniquement sur i, par exemple, si i == 1, alors elle ne parcourt que les nombres A et B avec le nombre qui est égal à i .

Je veux qu'il essaie tous les nombres donnés les uns avec les autres sans le cas du cycle i. Comment implémenter ceci en code, si vous pouvez montrer un exemple de code.

Merci.

а

#property copyright "."
#property link      ""
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
    for(int i=1; i<10; i++)
     {   
      double x=1.0;
      double y=0.5;
        
      double A = x*i;
      double B = y*i;
  
      Alert(" i = ",i,"     A = ",DoubleToStr(A,1),"     B = ",DoubleToStr(B,1));
      
      //КАК НАЙТИ СРАВНЕНИЕ ЧИСЕЛ А == В БЕЗ УЧЕТА i ?
   }
  }
//+------------------------------------------------------------------+
Dossiers :
Test_1.mq4  2 kb
 

Faites une boucle dans la boucle. Comparez d'abord le premier A avec chacun des dix B, puis le deuxième A, etc.

 
Aleksei Stepanenko:

Faites un cycle dans une boucle. Comparez d'abord le premier A avec chacun des dix B, puis le deuxième A, etc.

Merci pour votre réponse.

9 fois ? dans ce cycle 9 A, et 9 B .

J'ai un cycle de 100 A et 100 B et cela revient déjà à revoir chaque A et B.... 100 fois. C'est un cauchemar.

Il n'y a pas d'autre moyen ?

 

Tout dépend de la tâche à accomplir. Il se peut que vous n'ayez pas besoin de chercher quoi que ce soit. Par exemple, si certaines valeurs sont stockées au préalable dans un tableau.

Ce qui est requis n'est pas clair dans votre exemple jusqu'à présent. A quoi servent ces comparaisons, que voulez-vous obtenir ?

 
Aleksei Stepanenko:
Tout dépend de la tâche à accomplir. Peut-être n'avez-vous pas besoin de chercher quoi que ce soit. Par exemple, si certaines valeurs sont stockées au préalable dans un tableau.

J'y ai pensé seulement avec les tableaux j'ai un problème trop vieux pour les comprendre. Mais si un exemple était montré, je pourrais peut-être comprendre comment l'appliquer. J'ai pensé à un tableau à deux dimensions, mais je n'ai jamais réussi à l'implémenter. La sortie des données est la même dans un tableau unidimensionnel que dans la boucle.....

Je me disais que peut-être quelqu'un avait rencontré ce problème et avait une solution qu'il pouvait partager.

 
Aleksei Stepanenko:

Votre exemple n'est toujours pas clair quant à ce qui est requis. A quoi servent ces comparaisons, que voulez-vous obtenir ?

J'ai mis les données de comparaison dans la fonction de l'objet flèche, il ne voit que les comparaisons qui correspondent au i, ce qui est ce que j'ai décrit ci-dessus.
 

Pour suggérer quelque chose, vous devez décrire le problème. Pas la solution, comment vous la voyez, mais ce que vous voulez en retirer. Ensuite, vous pourrez penser à la mise en œuvre.

 
Aleksei Stepanenko:

Pour suggérer quelque chose, vous devez décrire le problème. Pas la solution, comment vous la voyez, mais ce que vous voulez en retirer. Ensuite, nous pourrons penser à la mise en œuvre.

Merci, Aleksei, je vais suivre votre premier conseil, je l'ai déjà mis en œuvre. Je voulais juste réduire le code, c'était trop. Je pensais qu'il y avait une solution simple, en privé on m'a déjà dit qu'il n'y avait pas d'autre solution.

 
Aleksei Stepanenko:

Pour suggérer quelque chose, vous devez décrire le problème. Pas la solution, comment vous la voyez, mais ce que vous voulez en retirer. Ensuite, nous pourrons penser à la mise en œuvre.

J'ai pensé qu'il était possible de faire cela en stockant des données doubles dans le tableau. Pour autant que je sache, on ne peut mettre que des int dans un tableau ?

Je pense que tu pourrais faire quelque chose avec ça........

А[100]={0,1,2,......99};
 

En programmation, il y a rarement une seule solution possible. Il y a toujours des options. Vous ne dites rien sur le sens, alors je ne sais pas quoi dire.

Un tableau peut contenir des données de différents types :

int a[];
double b[];
string c[];
char d[];
Raison: