Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > получение формулы из строки


Автор: gibbzy 12.2.2008, 18:17
у меня в университете есть замечательный предмет именуеться он МатЛогика. Так вот там постоянно нужно писать таблицы истинности.
чтобы облегчить себе труд решил написать прогу которая будет отрисовывать эти самые таблицы.
загвостка вот в чём. 
 Например: !(a&b) в зависимости от значений А или B (булевые переменные)  нужно вывести чему равно данное выражение.
Мы вводим формулу в текстовое поле.
Текстовое поле возвращает нам тип String.
как переделать строку в формулу чтобы в последствии можно было её пощитать?

Автор: ecologist 13.2.2008, 09:53
http://www.japisoft.com/formula/

Автор: Kangaroo 13.2.2008, 10:01
gibbzy
а если писать самому, то можно использовать скриптовые возможности Java 6.

Автор: _Y_ 13.2.2008, 11:39
В Одна Тысяча Девятсот .... году я написал такое на VB с целью сложного поиска в текстовой DB. Если нужно - могу поискать код в бакапах.

Автор: v2v 13.2.2008, 12:25
Такое приложение действительно лучше писать на скриптовых языках:  напр. в python-e  есть функция eval , в которую передаёшь строку , а строку, а она выполняет переданное как код.
в java 1.5 и меньше я о такой возможности не знаю. (с 1.6 дело пока не имел :( ) 

Автор: gibbzy 13.2.2008, 15:55
Цитата(ecologist @  13.2.2008,  09:53 Найти цитируемый пост)
http://www.japisoft.com/formula/

Триально ( 
Цитата(v2v @  13.2.2008,  12:25 Найти цитируемый пост)
Такое приложение действительно лучше писать на скриптовых языках:  напр. в python-e  есть функция eval , в которую передаёшь строку , а строку, а она выполняет переданное как код.в java 1.5 и меньше я о такой возможности не знаю. (с 1.6 дело пока не имел :( ) 

Да это ежу понятно просто под мобильник хачу чтобы удобней было ) 

Автор: LSD 13.2.2008, 16:05
Цитата(gibbzy @  13.2.2008,  15:55 Найти цитируемый пост)
Да это ежу понятно просто под мобильник хачу чтобы удобней было )

Под мобильник придётся писать свой или использовать веб-сервисы.

Автор: hydrant 15.2.2008, 12:57
Приветствую.

Я как-то писал "компилятор" бейсика на Java, который спокойно разруливал выражения типа a = -r - 1 + 1 + 2 * 2 - 4 + ((2 + 6 * 4 + 1 + (10 + 3 - m) * 6) * 17 * (1 / 17) + (95 * 2 / 2) - 10 - k)

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

Автор: LSD 15.2.2008, 14:47
Выкладывай сюда, прикрепи архив к сообщению.

Автор: hydrant 17.2.2008, 15:27
Архив.

Там конечно много криви, т.к. писалось это больше прикола ради. Но считает исправно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)