Список форумов КЛУБ FileMaker.RU КЛУБ FileMaker.RU

 
new forum: www.fmforum.ru
FileMaker DevCon Rus 2017.IV коенференция российских разработчиков на платформе FileMaker.
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Калькулятор с синтаксическим разбором!

 
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM
Предыдущая тема :: Следующая тема  
Автор Сообщение
Гость
Гость





СообщениеДобавлено: Ср Фев 04, 2004 12:51 am    Заголовок сообщения: Калькулятор с синтаксическим разбором! Ответить с цитатой

Попробовал сделать калькулятор, в котором пишешь выражение со скобками и даешь на расчет-получилось! Ну примерно так:

(25-(32+5*8-5/2)-172*5)/4 набираешь , нажимаешь кнопку и он выдает ответ. Использовал алгоритм синтаксического разбора. У кого есть соображения, как это сделать проще прошу откликнуться.
Вернуться к началу
Михаил Едошин
Модератор


Зарегистрирован: 20.11.2003
Сообщения: 1210
Откуда: Россия, Вологда

СообщениеДобавлено: Чт Фев 05, 2004 4:10 pm    Заголовок сообщения: Ответить с цитатой

Собственно, других вариантов я как-то не вижу Smile Проще это можно будет сделать разве что plug-in'ом, т. е. завернуть в одну-единственную функцию, но внутри все равно придется делать parser (правда, на C++ это удобнее).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора AIM Address
Гость
Гость





СообщениеДобавлено: Пт Фев 06, 2004 4:25 pm    Заголовок сообщения: Ответить с цитатой

Я сделал без плагинов. Пришлось использовать стеки для рекурсии.
Вернуться к началу
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Пт Фев 06, 2004 5:59 pm    Заголовок сообщения: Re: Калькулятор с синтаксическим разбором! Ответить с цитатой

Гость писал(а):
как это сделать проще


Ну, на Маке можно AppleScript для этих целей приспособить. Вам потребуется три поля:

Код:
FormulaGlob (Global; Text)

ResultGlob (Global; Number)

EvaluatorCalc (Unstored Calculation; Text) = "set cell ""ResultGlob"" to " & FormulaGlob


...и скрипт Formula Evaluator c единственным степом:

Код:
Perform AppleScript [Field value: "EvaluatorCalc"]


Теперь, чтобы расчитать любую формулу, её достаточно ввести в поле FormulaGlob и запустить скрипт Formula Evaluator. AppleScript сам выполнит синтаксический разбор выражения и в поле ResultGlob окажется искомое значение. Если совершите ошибку при вводе формулы в поле FormulaGlob, например, пропустите одну скобку, то при запуске скрипта Formula Evaluator получите соответствующее уведомление.

BTW, если не секрет, в какой базе данных потребовалось делать подобный калькулятор? для каких целей?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Гость
Гость





СообщениеДобавлено: Сб Фев 07, 2004 11:19 pm    Заголовок сообщения: Ответить с цитатой

Я в принципе того же ожидал увидеть и на Windows, но не нашел.

А сделал это для того, чтобы доказать коллегам возможность сделать это на FM.

Да и потом калькулятор всегда присутствует обычно во всех бухгалтерских программах.Где после нажатия кнопки OK проделанный расчет автоматически садится в текущее поле.
Вернуться к началу
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Вс Фев 08, 2004 4:52 pm    Заголовок сообщения: Ответить с цитатой

Гость писал(а):
калькулятор всегда присутствует обычно во всех бухгалтерских программах


Я как-то встраивал в одну разработку для торговой сети драг-дрор калькулятор. Только он был простой - без синтаксического разбора - пара полей, выпадающее меню функций и стек памяти на 4 ячейки. Драг-дроп - потому, что пользователи могли перекидывать данные в/из калькулятора пользуясь встроенной функцией FileMaker Drag&Drop (меню Application Preferences->General->Enable drag and drop text selection). Висел он в правом-верхнем углу каждой экранной формы. От других калькуляторов отличался умением считать "обратный" процент - сумму НДС от итоговой стоимости товара... ;-)

Встроил я калькулятор в ту систему от нечего делать - не по требованию заказчика. Сама система разрабатывалась году в 98-ом. С тех пор ни в одной разработке потребность в калькуляторах не возникала. Хотя, чисто бухгалтерские задачи мне не попадались. Была в прошлом году одна банковская разработка, но она и сама прекрасно считала всё, что нужно пользователям - без помощи калькуляторов.



calc.jpg
 Description:
Встроенный драг-дроп калькулятор.
 Filesize:  14.4 KB
 Viewed:  12878 Time(s)

calc.jpg



calcmenu.jpg
 Description:
Выпадающее меню калькулятора.
 Filesize:  20.39 KB
 Viewed:  12878 Time(s)

calcmenu.jpg


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Михаил Едошин
Модератор


Зарегистрирован: 20.11.2003
Сообщения: 1210
Откуда: Россия, Вологда

СообщениеДобавлено: Вс Май 09, 2004 9:45 pm    Заголовок сообщения: Ответить с цитатой

Кстати, в FM 7 такой калькулятор делается штатными средствами: поле, в которое автоматом вводится Evaluate(это самое поле) с заменой содержимого. Жаль только, что через такое поле можно доступ к данным чуть ли не всей базы получить, если, конечно, не озаботиться защитою (причем не очень понятно, как).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора AIM Address
Гость
Гость





СообщениеДобавлено: Вс Май 09, 2004 10:49 pm    Заголовок сообщения: Ответить с цитатой

Да, я это заметил. И вообще об FM 7 можно сказать, что мощная вещь только я пока не берусь за него, потому что нет сервера.
Вернуться к началу
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB