Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2006, 11:14
scourge ' kangaroo вне форума Посмотреть профиль Отправить личное сообщение для scourge ' kangaroo Посетить домашнюю страницу scourge ' kangaroo Найти все сообщения от scourge ' kangaroo
  № 1  
Ответить с цитированием
scourge ' kangaroo
[1.3 07.09.2006]
[3 28.09.2006]
[+1 04.10.2006]
 
Аватар для scourge ' kangaroo

Регистрация: Sep 2005
Сообщений: 390
Отправить сообщение для scourge ' kangaroo с помощью ICQ
По умолчанию арифметика, работа с числами

Очуень нужна ваша помощь...
есть стринг, содержащий в себе формулу, полученную из инпут текста.. например:
str = "(1 + (2 * 3) / 4) - 5)"
возможно ли вычислить значение этой формулы?
я нашёл только один выход - парсить стринг на символы и вычислять попарно, но это огромный гемор и работает не так как надо...
вот такие пироги.. помогите пожалуйста? (:

Старый 24.05.2006, 11:17
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
парсить нужно по любому, и по любому нужно отделять числа от спец знаков
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 24.05.2006, 11:26
scourge ' kangaroo вне форума Посмотреть профиль Отправить личное сообщение для scourge ' kangaroo Посетить домашнюю страницу scourge ' kangaroo Найти все сообщения от scourge ' kangaroo
  № 3  
Ответить с цитированием
scourge ' kangaroo
[1.3 07.09.2006]
[3 28.09.2006]
[+1 04.10.2006]
 
Аватар для scourge ' kangaroo

Регистрация: Sep 2005
Сообщений: 390
Отправить сообщение для scourge ' kangaroo с помощью ICQ
т.е. полюбому придётся разбивать стринг на блоки из скобок, вычислять их отдельно, потом пихать обратно в стринг и т.д.?
и вычислять придётся таким образом:
if(str.charAt(*) == "+")z = x + y
if(str.charAt(*) == "-")z = x - y
?

Старый 24.05.2006, 12:22
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Не все так просто, надо учитывать приоритет операции.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 24.05.2006, 12:34
breez38 вне форума Посмотреть профиль Отправить личное сообщение для breez38 Найти все сообщения от breez38
  № 5  
Ответить с цитированием
breez38
 
Аватар для breez38

Регистрация: Nov 2005
Адрес: Иркутск
Сообщений: 233
Отправить сообщение для breez38 с помощью ICQ
разбору подобных формул в книге по языку C (Си) была посвящена отдельная глава. Основной принцип в рекурентном вызове функций обработки определеный символов. Точно уже не помню, а коду там было прилично
Поищи в инете "синтаксический разбор формул" или что-то в этом роде
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже!

Старый 24.05.2006, 13:00
scourge ' kangaroo вне форума Посмотреть профиль Отправить личное сообщение для scourge ' kangaroo Посетить домашнюю страницу scourge ' kangaroo Найти все сообщения от scourge ' kangaroo
  № 6  
Ответить с цитированием
scourge ' kangaroo
[1.3 07.09.2006]
[3 28.09.2006]
[+1 04.10.2006]
 
Аватар для scourge ' kangaroo

Регистрация: Sep 2005
Сообщений: 390
Отправить сообщение для scourge ' kangaroo с помощью ICQ
Цитата:
Сообщение от iNils
Не все так просто, надо учитывать приоритет операции.
знаю, в этом вся и загвоздка... я когда реализовывал, мне пришлось двойные скобки обозначать как "{" и "}" типа:
1 + { 1 + ( 1 + 1) - ( 1 - 1 )}

Цитата:
Сообщение от breez38
Поищи в инете "синтаксический разбор формул" или что-то в этом роде
кое-что нашёл, спасибо (:

буду очень благодарен, если подскажите, где найти готовое решение...

Старый 24.05.2006, 13:06
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от scourge ' kangaroo
знаю, в этом вся и загвоздка... я когда реализовывал, мне пришлось двойные скобки обозначать как "{" и "}" типа:
1 + { 1 + ( 1 + 1) - ( 1 - 1 )}
Зачем так сложно?
Ищется открывающая скобка и парная закрывающая.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 24.05.2006, 13:14
scourge ' kangaroo вне форума Посмотреть профиль Отправить личное сообщение для scourge ' kangaroo Посетить домашнюю страницу scourge ' kangaroo Найти все сообщения от scourge ' kangaroo
  № 8  
Ответить с цитированием
scourge ' kangaroo
[1.3 07.09.2006]
[3 28.09.2006]
[+1 04.10.2006]
 
Аватар для scourge ' kangaroo

Регистрация: Sep 2005
Сообщений: 390
Отправить сообщение для scourge ' kangaroo с помощью ICQ
сначала так и было, но потом где-то накасячил и результат всегда прибавлял какое-нить число. найти ошибку так и не смог, пришлось менять...

впринципе, ответ на вопрос "можно ли сделать это одной строчкой кода", я получил. Буду переделывать.

но всё-равно очень хотелось бы посмотреть на способы реализации.

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.