Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 241

 

Здравствуйте, программисты! 

Как решить сравнение двух чисел в цикле for ?

Что бы найти А==В без регистра цикла i ?

В цикле  сравнение двух чисел идет только по i , к примеру  он сравнивает их если i == 1 , то он перебирает только числа А и Б с числом которые равны по  i .

Я хочу чтобы он перебирал все заданные числа между собой  без регистра цикла i.  Как это реализовать в коде, если можно пример кода показать. 

Спасибо.  

а

#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 ?
   }
  }
//+------------------------------------------------------------------+
Файлы:
Test_1.mq4  2 kb
 

Сделайте цикл в цикле. Сначала первое А сравнивайте с каждым из десяти В, затем второе А, и т.д.

 
Aleksei Stepanenko:

Сделайте цикл в цикле. Сначала первое А сравнивайте с каждым из десяти В, затем второе А, и т.д.

Спасибо за ответ.

9 раз? в этом цикле 9 А, и 9 В  .

У меня цикл из 100 А и 100 В, а это уже перебирать каждую А и Б....  100 раз. Это же кошмар..

Другого способа нет?

 

Всё зависит от поставленной задачи. Возможно, вообще перебирать ничего не нужно. Например, если какие-то значения заблаговременно сохранять в массиве.

Пока не понятно из Вашего примера, что требуется. Для чего эти сравнения, что хотите получить?

 
Aleksei Stepanenko:
Всё зависит от поставленной задачи. Возможно, вообще перебирать ничего не нужно. Например, если какие-то значения заблаговременно сохранять в массиве.

Я думал над этим только с массивами у меня проблема старый слишком для их понимания. Но если пример был бы показан возможно я бы смог понять как его применить. Я думал о двухмерном массиве, но так и не смог это реализовать. Данные выводятся те же в одномерном массиве что и в цикле....

Я думал может кто сталкивался с этим, и у него есть решение какое то, которым он бы смог поделится.

 
Aleksei Stepanenko:

Пока не понятно из Вашего примера, что требуется. Для чего эти сравнения, что хотите получить?

Я загоняю данные сравнения в функцию объекта арров, он  видит только те сравнения которые совпадают по i , то что я описал выше.
 

Чтобы что-то подсказать, необходимо, чтобы Вы описали задачу. Не пути решения, как Вы это видите, а что необходимо получить в итоге. Тогда можно подумать над реализацией.

 
Aleksei Stepanenko:

Чтобы что-то подсказать, необходимо, чтобы Вы описали задачу. Не пути решения, как Вы это видите, а что необходимо получить в итоге. Тогда можно подумать над реализацией.

Спасибо, Aleksei воспользуюсь первым вашим советом,я его реализовал уже. Просто хотел уменьшить код, партянка вышла огромная. Думал есть простое решение, в личке мне уже объяснили что другого пути нет.

 
Aleksei Stepanenko:

Чтобы что-то подсказать, необходимо, чтобы Вы описали задачу. Не пути решения, как Вы это видите, а что необходимо получить в итоге. Тогда можно подумать над реализацией.

Я тут подумал, а вот так можно сделать загнав в массив данные double? На сколько я знаю туда загнать можно только int? 

по моему что то можно сделать с этим.......

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

В программировании редко бывает возможность только одного решения. Всегда есть варианты. Вы ничего не говорите про смысл, поэтому не знаю, что сказать.

Массив может содержать данные различных типов:

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