|
|
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
Есть следующая задача есть набор значений A, B, C, D, E нужно проверять их значение по некоторым проверочным соотношениям типа A+B <= C+D, A+B+C < D/3 и т.д. Проверочные соотношения постоянно меняются. Как это лутше делать? Задавать проверочные соотношения строчкой а потом парсить? Кто уже решал такую задачу как лутше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 14:03:51 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
Если набор этих соотношений конечный, пусть и большой, но конечный. То можно написать набор функций, сложить указатели на эти функции в массив и... все. Если же на этапе компиляции набор соотношений не известен, то да - прийдется писать свой или подключать чужой парсер. Самый простой способ написать свой - это парсер Forth'a. Самый простой способ подключить чужой - это взять perl, php или WScript (если жизнь только под виндой). Описания как подключать первые два есть в документации на них, работа с WScript описана много где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 17:41:30 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
Borr wrote: > Автор: "Borr" > Есть следующая задача есть набор значений A, B, C, D, E нужно проверять > их значение по некоторым проверочным соотношениям типа A+B <= C+D, A+B+C > < D/3 и т.д. Проверочные соотношения постоянно меняются. Как это лутше > делать? Задавать проверочные соотношения строчкой а потом парсить? Кто > уже решал такую задачу как лутше? Можно взять чужое - есть куча библиотек, вычисляющих выражения (искать в google что-нибудь типа "expression evaluation"). Внешние языки - на мой взгляд лучше подключить что-нибудь полегче. Например, lua. Писать свое - берешь yacc (bison), если умеешь пользоваться - делов на полчаса от силы, если нет - ищешь к нему пример calc и дополняешь своими переменными и реляционными операциями. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 18:11:37 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
On Tue, 13 Nov 2007 14:03:51 +0300, Borr <nospam@sql.ru> wrote: > Есть следующая задача есть набор значений A, B, C, D, E нужно проверять > их > значение по некоторым проверочным соотношениям типа A+B <= C+D, A+B+C < > D/3 и т.д. > Проверочные соотношения постоянно меняются. Как это лутше делать? > Задавать > проверочные соотношения строчкой а потом парсить? Кто уже решал такую > задачу как > лутше? Если функции будут примерно как в примере, можно выбрать общее уравнение для такого класса функций и хранить его коэффициенты. -- Здесь у нас туманы и дожди, здесь у нас холодные рассветы, Здесь на неизведанном пути ждут замысловатые сюжеты! Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 19:16:11 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
А можно маленький пример с WScript. Я не пойму как получить результаты его работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 08:20:35 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
Есть такая штука замечательная gawk. Пишу в консоли gawk "BEGIN {print 1+2.369*(1+3)}" и получаю результат. А как мне получить этот результат если я ее запускаю через ShellExecute или CreateProcess и использовать его в моей программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 09:17:50 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
BorrЕсть такая штука замечательная gawk. Пишу в консоли gawk "BEGIN {print 1+2.369*(1+3)}" и получаю результат. А как мне получить этот результат если я ее запускаю через ShellExecute или CreateProcess и использовать его в моей программе. Самый простой вариант загнать в файл. Можно помутить и с перенаправлением стандартного потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 09:54:40 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
Есть такая проблемы пытаюсь получить данные с консоли вот функция Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Пока одна строчка все нормально а как получить несколько строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 15:52:33 |
|
||
|
Составить уравнение на лету
|
|||
|---|---|---|---|
|
#18+
BorrЕсть такая штука замечательная gawk. Пишу в консоли gawk "BEGIN {print 1+2.369*(1+3)}" и получаю результат. А как мне получить этот результат если я ее запускаю через ShellExecute или CreateProcess и использовать его в моей программе.CreatePipe() поможет. Издеваться над консолью не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 19:07:15 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34935312&tid=2027811]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
215ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 551ms |

| 0 / 0 |
