в параметре функции пропишите необходимое действие
и в зависимости от этого параметра...
ну в общем дальше надеюсь понятно
в параметре функции пропишите необходимое действие
и в зависимости от этого параметра...
ну в общем дальше надеюсь понятно
Нет, не понятно. В зависимости от этого параметра что?
Переписывать заново все блоки полностью все 4 раза меняя в каждом их них лишь один знак?
Эти 4 повтора и хотелось бы превратить в один блок, в котором по условию из параметров менялся бы лишь операционный знак.
Нет, не понятно. В зависимости от этого параметра что?
Переписывать заново все блоки полностью все 4 раза меняя в каждом их них лишь один знак?
Эти 4 повтора и хотелось бы превратить в один блок, в котором по условию из параметров менялся бы лишь операционный знак.
это называется функция
Вопрос не мне, но отвечу.
Вообще без проблем: присвоить каждой операции целочисленное значение, например:
- 0 - сложение
- 1 - вычитание
- 2 - умножение
- 3 - деление
- и т.д.
В функции через switch или if распознать тип операции.
По сути OP_BUY, OP_SELL и другие закодированы таким же образом через именованные константы.
Вопрос не мне, но отвечу.
Вообще без проблем: присвоить каждой операции целочисленное значение, например:
- 0 - сложение
- 1 - вычитание
- 2 - умножение
- 3 - деление
- и т.д.
В функции через switch или if распознать тип операции.
По сути OP_BUY, OP_SELL и другие закодированы таким же образом через именованные константы.
Хорошо, допустим 0 это + И что мне это даёт?
Какая разница как я обустрою условие смены знака?
Вопрос в том, как сделать так, чтобы не переписывать по сто раз один и тот же код в котором меняется лишь операционный знак. Ну блин, как еще объяснить. Чтобы можно было сделать как то так:
//+------------------------------------------------------------------+ //| ОСНОВНОЙ КОД | //+------------------------------------------------------------------+ void OnStart() { double a = function(1); double b = function(2); double c = function(3); double d = function(4); } //< 1 >--------------------------------------------------------------+ //| Функция, которую хотелось бы иметь | //+------------------------------------------------------------------+ double function(int param) /* 1 - сложение 2 - вычитание 3 - умножение 4 - деление */ { ТИП_ЗНАКА <math_sign> // некая переменная в которой хотелось бы менять математический знак if(param == 1) math_sign = +; if(param == 2) math_sign = -; if(param == 3) math_sign = *; if(param == 4) math_sign = /; // дальше идет БОЛЬШОЙ код, // ниже строка только для примера использования математического знака double result = a <math_sign> b; return (result) } //< 2 > -----------------------------------------------------------------------------+ //| Функция, со стандартным решением, которая требует множественного дублирование кода //+----------------------------------------------------------------------------------+ double function(int param) { if(param == 1) result = a + b; // на практике БОЛЬШОЙ код вместо одной строки if(param == 2) result = a - b; // на практике БОЛЬШОЙ код вместо одной строки if(param == 3) result = a * b; // на практике БОЛЬШОЙ код вместо одной строки if(param == 4) result = a / b; // на практике БОЛЬШОЙ код вместо одной строки // Примечание: БОЛЬШОЙ код одинаков для ВСЕХ случаев, кроме операционных знаков return (result) } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Например есть 4 функции и внутри каждой из них прописано лишь одно из следующих условий:
Задача состоит в том, чтобы внутри одной ОБЩЕЙ функции написать только:
где вместо трёх точек по какому либо условию из параметров этой общей функции менялся бы только математический знак.
Ну то есть, чтобы не переписывать названия переменных каждый раз. Потому что это в этом упрощенном варианте это просто сделать, а с более сложным кодом замучаешься копипастить, да и вероятность ошибок по невнимательности ввиду этого способа довольно высокая.
При этом больше всего напрягает даже не это, а то, что при любом задуманном изменении... для каждой отдельной функции нужно каждый раз отслеживать заново всю ее логику. И это тоже как минимум провоцирует новые ошибки, не считая лишнего затраченного времени. В общем можно такие случаи как-то унифицировать?