Найти минимальное среди нескольких значений - страница 2

 
SK. писал (а) >>

Это терминологическая путаница.

Константа - это просто значение. Например, 25.0 или "prefix".

Переменная - это такая штуковина, у которой кроме собственно значения есть ещё и название.

Названия могут быть обычные - А, Max, Period_55 и т.д.

Названия могут быть "массивными", т.е. по названию массива. Если название массива ABC, то, соответственно, все элементы массива (являющиеся переменными, т.е. характеризующиеся значением и названием) имеют унаследованное название с индексом: АВС[1], ABC[12], ABC[23] и т.д.

См. https://book.mql4.com/ru/basics/vars

Извините пожалуйста, но вы уже конкретно того.

 
Integer писал (а) >>

Инициализировать переменными нельзя.

ничего не понимаю, как же тогда занести переменные в массив? просто объявить массив переменных?

 
Vinsent_Vega писал (а) >>

ничего не понимаю, как же тогда занести переменные в массив?

Arr[0]=a;

Arr[1]=b;

Если известно точное количество переменных, среди которых нужно искать максимальное/минимальное значение, пользуйтесь вложенными MathMax(MathMаx(a,b),c).

 
Vinsent_Vega писал (а) >>

Вот как... тогда объясните плиз, в чем ошибка например, такого скрипта:

//+------------------------------------------------------------------+
int start()
{
//----
int a=1;
int b=2;
int c=3;
int d=4;
int e=5;
int Massiv [5] = {a, b, c, d, e};
int f = ArrayMinimum (Massiv);
Alert (Massiv [f]);
//----
return(0);
}
//+------------------------------------------------------------------+

Ошибка в неправильной инициализации массива. Попробуйте так

void start() //
{
   int Massiv [5] = {1, 2, 3, 4, 5};
   int f = ArrayMinimum (Massiv);
   Alert (f);
   return;
}

или так

void start() //
{
   int a=1;
   int b=2;
   int c=3;
   int d=4;
   int e=5;
   int Massiv[5];
   Massiv[1]=a;
   Massiv[2]=b;
   Massiv[3]=c;
   Massiv[4]=d;
   Massiv[5]=e;
   int f = ArrayMinimum (Massiv);
   Alert (f);
   return;
}
 

Надо иметь ввиду, что в f к Вам вернется номер ячейки, а не само значение!

Удачи.

 
Integer писал (а) >>

Arr[0]=a;

Arr[1]=b;

Если известно точное количество переменных, среди которых нужно искать максимальное/минимальное значение, пользуйтесь вложенными MathMax(MathMаx(a,b),c).

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

 
Integer писал (а) >>

Извините пожалуйста, но вы уже конкретно того.

Что Вы имеете ввиду?

 
VBAG писал (а) >>

Надо иметь ввиду, что в f к Вам вернется номер ячейки, а не само значение!

Удачи.

да, спасибо, я понял. Чтобы получить именно значение нужно написать так:

int start()
{
//----
int a=1;
int b=2;
int c=3;
int d=4;
int e=5;
int Massiv[5];
Massiv[0]=a;
Massiv[1]=b;
Massiv[2]=c;
Massiv[3]=d;
Massiv[4]=e;
int f = ArrayMinimum (Massiv);
Alert (Massiv [f]);
//----
return(0);
}
//+------------------------------------------------------------------+

 
Vinsent_Vega писал (а) >>

ничего не понимаю, как же тогда занести переменные в массив? просто объявить массив переменных?

Переменные в массив не заносятся.

В массив можно занести значение переменной.

Массив сам по себе является совокупностью переменных, имеющих одинаковые названия и отличающиеся только индеком.

 
SK. писал (а) >>

Что Вы имеете ввиду?

Константы тоже могут стороковое имя иметь.

#define X 25

Причина обращения: