Добрый день
Работаю аналитиком и занимаюсь описанием задачи для разработчика.
Условия:
Система позволяет создавать Правила, с указанием допустимых числовых значений: минимальные значения, максимальные значения, диапазон значений или несколько диапазонов значений.
Числовые значения это десятичное число с двумя знаками после запятой.
Задача:
Необходимо описать алгоритм проверки Правил, который проверяет их на предмет конфликтов между собой.
Пример 1:
Правило 1: больше 5
Правило 2: от 10 до 20
Правило 3: меньше 8
Пример 2:
Правило 1: от 2 до 5 и от 10 до 15
Правило 2: от 6 до 12
Буду благодарен уточняющим и наводящим вопросам, советами, примерами алгоритмов проверки Правил.
Задача интересная, но увы времени на нее всю у меня точно сейчас не будет. Но я бы начал так
представим для в примере 1 человек ввел их "куда-то в GUI".
1) Пишешь функцию конвертации всевозможных операторов в числа. К примеру > eto 1, < eto 2. И в обратную сторону.
2) Проходишь по всем правилам, которые ввел пользователь и добавляешь в контейнер парами (оператор, число).
3) продумываешь всевозможные комбинации конфликтор. В твоем варианте видно уже сразу 3.
Если число от оператора 1(>) меньше, чем от оператора 2(<), то = конфликт.
И по такому принципу делаешь быдло паттерны пока не покроешь все исключения.
В идеале же надо аггригировать и делать более сложную структуру. Но я не думаю, что это нужно в твоем примере.