Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 13:46   #1
narco3
Пользователь
 
Аватар для narco3
 
Регистрация: 02.10.2011
Сообщений: 32
Вопрос Pascal ,строки

Уважаемые.Прошу помощи...Есть у меня строка из чисел, а в ней разделители "+" или "*".Нужно подсчитать значение выражения.
narco3 вне форума Ответить с цитированием
Старый 15.11.2011, 13:57   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

самый простой алгоритм:
1) Ищешь знаки "*"
2) Выделяешь по числу слева и справа от него (либо до другого знака, либо до конца/начала строки если число первое/последнее)
3) Часть строки (два числа+знак) заменяешь результатом операции (1 число * 2 число - перевести в строку), т.е.
1+2*3+4 станет 1+6+4
4) Продолжаешь это пока не закончатся знаки "*"
Затем то же самое повторяешь с +, в итоге получишь значение выражения
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 15.11.2011, 15:54   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

в делфиворлд есть готовый парсер
p51x вне форума Ответить с цитированием
Старый 15.11.2011, 16:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

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

но, в данном случае, я полностью согласен с Zer0. Зачем "стрелять из пушки по воробьям" ? Если банального парсинга строки и двух проходов здесь вполне хватит.

впрочем, конечно, выбор должен сделать TC.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Строки zzzarazzza Помощь студентам 3 10.11.2010 00:04
Строки (Pascal) Ногин Антон Помощь студентам 9 24.09.2010 12:44
Строки. Pascal Feran Помощь студентам 1 05.04.2010 11:06
Pascal.Строки blondinochka Помощь студентам 3 04.06.2009 16:44
Pascal. Строки blondinochka Помощь студентам 2 30.05.2009 18:44