Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм хранения и проверки условий 
:(
    Опции темы
HappyLife
Дата 26.6.2012, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Необходимо реализовать алгоритм проверки условий.
Предположим у нас есть параметры: x = 10, y = 4.
Есть разные методы. необходимо выполнить тот метод, фильтр которого соответствует тем параметрам, что пришли.

Фильтры такого плана

((x = 1) or (y=2)) and (z = 10) -> Выполняем то-то и то-то

(x = 3) and (z = 10) -> Выполняем то-то и то-то

(y = 4) -> Выполняем то-то и то-то

Здесь у нас правильный фильтр будет третий.

Фильтры и приходящие параметры - это текстовые строки и они могут быть любыми.

Это сообщение отредактировал(а) HappyLife - 26.6.2012, 15:10
PM MAIL   Вверх
Akina
Дата 26.6.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Цитата(HappyLife @  26.6.2012,  16:10 Найти цитируемый пост)
Фильтры и приходящие параметры - это текстовые строки и они могут быть любыми.

Если речь о том, что ищется ТОЧНОЕ совпадение параметров и фильтров - то достаточно формализовать частные условия фильтров. При этом набор из примера будет трансформирован в:

u1) x = 1
u2) y=2
u3) z = 10
u4) x = 3
u5) z = 10
u6) y = 4

p1) (u1 or u2) and u3
p2) u4 and u5
p3) u6

Далее выполняется парсинг и распознание параметров, и присвоение true тем частным условиям, котрые соответствуют этим параметрам. В примере u1..u5 будут false, u6 будет true, параметр x = 10 будет проигнорирован как отсутствующий в списке частных условий.

После чего выполняется вычисление значений фильтров. p1 и p2 дадут false, а p3 даст true - вот его метод и нужно выполнить.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
HappyLife
Дата 26.6.2012, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Как эти данные хранить, проверять? был бы даже признателен за ссылку реализации.
PM MAIL   Вверх
Akina
Дата 26.6.2012, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Хранить и проверять - наверное, в базе данных. А вот конкретных ссылок, тем более на похожие реализации, от меня можно не ждать. Не программист я.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
W4FhLF
Дата 26.6.2012, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 5
Всего: 121



muParser попробуйте, он понимает логические выражение любой сложности. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
_Y_
Дата 26.6.2012, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1161 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.