Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 241

 

¡Hola programadores!

¿Cómo resolver la comparación de dos números en un bucle for?

¿Qué haría falta para encontrar A==B sin el caso del bucle i?

En el bucle comparar dos números es sólo en i, por ejemplo los compara si i == 1 , entonces sólo pasa por los números A y B con el número que son iguales a i .

Quiero que pruebe todos los números dados entre sí sin el caso del ciclo i. Cómo implementar esto en código, si puede mostrar un ejemplo de código.

Gracias.

а

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

Haz un bucle en el bucle. Primero compara la primera A con cada una de las diez B, luego la segunda A, etc.

 
Aleksei Stepanenko:

Haz un ciclo en bucle. Primero compara la primera A con cada una de las diez B, luego la segunda A, etc.

Gracias por su respuesta.

¿9 veces? en este ciclo 9 A, y 9 B .

Tengo un ciclo de 100 A y 100 B y eso ya es repasar cada A y B.... 100 veces. Es una pesadilla.

¿No hay otra manera?

 

Todo depende de la tarea a realizar. Puede ser que no necesites buscar nada en absoluto. Por ejemplo, si algunos valores se almacenan en una matriz de antemano.

Lo que se requiere no está claro en su ejemplo hasta ahora. ¿Para qué sirven estas comparaciones, qué quieres conseguir?

 
Aleksei Stepanenko:
Todo depende de la tarea a realizar. Tal vez no necesites buscar nada en absoluto. Por ejemplo, si algunos valores se almacenan en una matriz de antemano.

Lo he pensado solo con los arrays tengo un problema de edad para entenderlos. Pero si se mostrara un ejemplo tal vez podría averiguar cómo aplicarlo. Pensé en una matriz bidimensional, pero nunca llegué a implementarla. Los datos salen igual en un array unidimensional que en loop....

Estaba pensando que quizás alguien se haya encontrado con esto y tenga una solución que pueda compartir.

 
Aleksei Stepanenko:

Todavía no está claro en su ejemplo lo que se requiere. ¿Para qué sirven estas comparaciones, qué quieres conseguir?

Pongo los datos de la comparación en la función del objeto flecha, sólo ve las comparaciones que coinciden con la i, que es lo que he descrito arriba.
 

Para sugerir algo, hay que describir el problema. No la solución, cómo la ves, sino lo que quieres sacar de ella. Luego puedes pensar en la aplicación.

 
Aleksei Stepanenko:

Para sugerir algo, hay que describir el problema. No la solución, cómo la ves, sino lo que quieres sacar de ella. Luego podemos pensar en la aplicación.

Gracias, Aleksei, seguiré tu primer consejo, ya lo he puesto en práctica. Sólo quería reducir el código, era demasiado. Pensaba que había una solución sencilla, en privado ya me han dicho que no hay otra forma.

 
Aleksei Stepanenko:

Para sugerir algo, hay que describir el problema. No la solución, cómo la ves, sino lo que quieres sacar de ella. Luego podemos pensar en la aplicación.

He estado pensando, ¿es posible hacer esto almacenando datos dobles en el array? Hasta donde yo sé, sólo se pueden poner int en un array?

Creo que podrías hacer algo con esto.......

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

En programación, rara vez hay una sola solución posible. Siempre hay opciones. No dices nada sobre el significado, así que no sé qué decir.

Un array puede contener datos de diferentes tipos:

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