Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 241

 

Olá programadores !

Como resolver a comparação de dois números em um para loop ?

O que seria necessário para encontrar A==B sem o caso do loop i ?

No loop compare dois números somente em i, por exemplo, se i == 1 , então só passa pelos números A e B com o número que é igual a i .

Quero que tente todos os números dados uns com os outros sem o caso do ciclo i. Como implementar isto em código, se você puder mostrar um exemplo de código.

Obrigado.

а

#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 ?
   }
  }
//+------------------------------------------------------------------+
Arquivos anexados:
Test_1.mq4  2 kb
 

Faça um loop no loop. Primeiro compare o primeiro A com cada um dos dez B's, depois o segundo A, etc.

 
Aleksei Stepanenko:

Faça um ciclo em loop. Primeiro compare o primeiro A com cada um dos dez B's, depois o segundo A, etc.

Obrigado por sua resposta.

9 vezes? neste ciclo 9 A, e 9 B .

Tenho um ciclo de 100 A's e 100 B's e isso já está passando por cada A e B.... 100 vezes. É um pesadelo.

Não há outra maneira?

 

Tudo depende da tarefa em mãos. Pode ser que você não precise procurar por nada. Por exemplo, se alguns valores forem previamente armazenados em uma matriz.

O que é necessário não está claro em seu exemplo até agora. Para que servem estas comparações, o que você quer obter?

 
Aleksei Stepanenko:
Tudo depende da tarefa em mãos. Talvez você não precise procurar por nada. Por exemplo, se alguns valores forem previamente armazenados em uma matriz.

Pensei nisso apenas com arrays que tenho um problema muito antigo para entendê-los. Mas se um exemplo fosse mostrado, talvez eu pudesse descobrir como aplicá-lo. Pensei numa matriz bidimensional, mas nunca cheguei a implementá-la. Os dados são emitidos da mesma forma em array unidimensional que em loop....

Eu estava pensando que talvez alguém tenha se deparado com isto e tenha uma solução que possa compartilhar.

 
Aleksei Stepanenko:

Ainda não está claro, a partir de seu exemplo, o que é necessário. Para que servem estas comparações, o que você quer obter?

Coloco os dados de comparação na função do objeto seta, ele só vê aquelas comparações que correspondem ao i, que é o que eu descrevi acima.
 

A fim de sugerir algo, é preciso descrever o problema. Não a solução, como você a vê, mas o que você quer tirar dela. Então você pode pensar sobre a implementação.

 
Aleksei Stepanenko:

A fim de sugerir algo, é preciso descrever o problema. Não a solução, como você a vê, mas o que você quer tirar dela. Então podemos pensar sobre a implementação.

Obrigado, Aleksei, vou seguir seu primeiro conselho, já o implementei. Eu só queria reduzir o código, era demais. Pensei que houvesse uma solução simples, em particular, já me disseram que não há outra maneira.

 
Aleksei Stepanenko:

A fim de sugerir algo, é preciso descrever o problema. Não a solução, como você a vê, mas o que você quer tirar dela. Então podemos pensar sobre a implementação.

Estive pensando, é possível fazer isso armazenando dados em dobro na matriz? Até onde eu sei, você só pode colocar em uma matriz?

Eu acho que você poderia fazer algo com esta.......

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

Na programação, raramente há apenas uma solução possível. Há sempre opções. Você não diz nada sobre significado, então eu não sei o que dizer.

Uma matriz pode conter dados de diferentes tipos:

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