Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 295
#1

Написать парсер математических выражений с функцией упрощения этих выражений - C++

29.08.2016, 08:27. Просмотров 713. Ответов 27
Метки нет (Все метки)

Люди, здравствуйте.

Есть такая задача: написать упроститель выражений. На вход подается строка вида "a*b+a*c", являющаяся корректным математическим выражением. Надо упростить его.

Как решить, объяснять не буду. Однако, все же будет предпочтительнее, чтобы вы реализовывали через классы (каждая операция - это класс, наполненный своими методами).


В чем суть: суть в том, чтобы посмотреть, как вы решите одну проблему. Какую? Если вы читали мои предыдущие темы - то вы может даже и знаете, в чем проблема.

PS: дурацкое правило не писать в заголовке определенные слова.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2016, 08:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать парсер математических выражений с функцией упрощения этих выражений (C++):

Парсер математических выражений - C++
знаю изъезженная тема, надо написать парсер мат выражений с поддержкой скобок и некоторых несложных функций типа: sin, cos, tg, ctg, ln......

Парсер математических выражений на С/С++ - C++
Добрый вечер, можете написать или помочь написать парсер математических выражений для программы вычисляющей интеграл

Парсер для математических выражений - C++
Здравствуйте уважаемые товарищи форумчане. Я пишу интерпретатор математических выражений и, собственно, для этого, сначала перевожу...

Парсер математических выражений - можно ли оптимизировать и улучшить код - C++
Добрый день возник следующий вопрос, в программировании не сильно большой гуру пошел на собеседование , дали тестовое задание парсер...

Парсер математических выражений на с++ визуал студио 2013 в windows forms перевести в обратную пз - C++
нужно сделать парсер перевести в обратную польскую запись затем посчитать в окне

Разбор математических выражений - C++
Добрый день, нуждаюсь в вашей помощи. Написал код программы для решения определённого уравнения методом половинного деления. Необходимо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Peoples
1160 / 664 / 421
Регистрация: 06.02.2016
Сообщений: 1,733
Записей в блоге: 13
Завершенные тесты: 4
29.08.2016, 09:55 #2
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Как решить, объяснять не буду.
Улыбнуло
0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 295
29.08.2016, 10:18  [ТС] #3
Если я буду объяснять - то получится, что будет мое решение. А мне хочется посмотреть, как люди сами приходят к возникающим проблемам - тогда ко мне не будет никаких претензий, мол это я такое кривое решение придумал.
0
_Ivana
3149 / 1777 / 152
Регистрация: 01.03.2013
Сообщений: 4,981
Записей в блоге: 2
29.08.2016, 14:15 #4
Когда писал на своем интерпретаторном Лиспе (с закадровой сборкой мусора и безо всяких классов) символьное дифференцирование, сделал также и симплифайер - чтобы не тащить нулевые слагаемые/единичные сомножители и т.п. Вся программа - несколько строк, банальное перечисление кейсов упрощения с рекурсивным вызовом. Сути проблемы не заметил
0
HighPredator
5542 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,450
Записей в блоге: 3
29.08.2016, 14:20 #5
Vhodnoylogin, я только одного не пойму, вы решили задачу или нет?
0
rikimaru2013
C++ Game Dev
2435 / 1129 / 240
Регистрация: 30.11.2013
Сообщений: 3,686
29.08.2016, 14:24 #6
HighPredator, вам же сказано решать. Зачем вы задаете лишние вопросы? Просто решайте.
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
В чем суть: суть в том, чтобы посмотреть, как вы решите одну проблему
Я вот уже 2 часа пишу - боюсь не успеть к дедлайну
0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 295
29.08.2016, 14:24  [ТС] #7
HighPredator, решил. Однако решение мне не нравится.
И хочу, чтобы другие тоже на граблях потанцевали.
0
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
29.08.2016, 14:26 #8
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Надо упростить его.
Задействовать в твоей программе VBS или JS и через него вычислять выражение.
По крайней мере мои коллеги так делают. А иногда с помошью MS Office или Libre Office.
0
_Ivana
29.08.2016, 14:28
  #9

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Я вот уже 2 часа пишу - боюсь не успеть к дедлайну
Крайний срок - полночь! (С)

0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 295
29.08.2016, 14:31  [ТС] #10
Цитата Сообщение от Hikari Посмотреть сообщение
Задействовать в твоей программе VBS или JS и через него вычислять выражение
а причем тут это? Тут даже С++ идет боком. Ибо задача - в алгоритме. А язык - это лишь реализация алгоритма.

И да, я не знаю, что там надо вычислять. Там выражение из букв состоит, и его надо упрощать. Как это будет делать ДжэС - я не знаю.
0
HighPredator
5542 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,450
Записей в блоге: 3
29.08.2016, 14:34 #11
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
HighPredator, решил. Однако решение мне не нравится.
И хочу, чтобы другие тоже на граблях потанцевали.
Я тоже много чего хочу. Например, чтобы вы с правилами ознакомились. Здесь вам не цирк и не зоопарк зверюшек в клетках разглядывать.
0
_Ivana
3149 / 1777 / 152
Регистрация: 01.03.2013
Сообщений: 4,981
Записей в блоге: 2
29.08.2016, 14:35 #12
Vhodnoylogin, чтобы тема имела хоть какой-то смысл, приведите несколько по-возможности показательных примеров, как должно производиться упрощение. Например ab+ac => a(b+c) - это упрощение? А \x -> x*a + b => (+b).(*a) - это упрощение? Ах, вы не знаете что это такое? Тогда см. п. 1 - приводите примеры.
0
obivan
Падаван С++
401 / 221 / 58
Регистрация: 11.11.2014
Сообщений: 770
Завершенные тесты: 2
29.08.2016, 14:39 #13
Vhodnoylogin, для начала скинули бы хоть свой код, глянуть, а то выходит так, что сделано у вас все только на словах, потом кто то пришлет решение и вы такой,а ну и я так делал и возьмете себе в своих целях, здесь люди не прочь помочь, но для начала покажите хотя бы ваше
0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 295
29.08.2016, 14:41  [ТС] #14
obivan, все уже давно сделано, а мне интересно - как вы будете решать проблему множественной диспетчеризации. Или как ее обойдете.
0
Martein
Оператор ЭВМ 6 разряда
673 / 84 / 13
Регистрация: 22.06.2014
Сообщений: 174
29.08.2016, 14:47 #15
>Как решить, объяснять не буду
>чтобы вы реализовывали
----------------------------------------
Лично тут я стал теряться в догадках: проблема у нас или у тебя?

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

>тогда ко мне не будет никаких претензий, мол это я такое кривое решение придумал.
----------------------------------------
В конце не надо хоть будет нести зачётку для отметки твоему преподу, который тебе задал это задание? Или академическую задолженность придётся за неправильное решение идти за тебя сдавать?
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2016, 14:47
Привет! Вот еще темы с ответами:

Программирование математических выражений в C++ - C++
Составить программу для вычисления значения функции F при указанных значениях аргументов и вывода значений аргументов и функций на экран...

Вычисления математических выражений - C++
Это что выделено красным я не понимаю что с меня там хотят посмотрите у меня программе такое есть? "реакцию программы на некорректны...

Анализатор математических выражений - C++
Всем привет. Я начинающий программист, там где я учусь, задали написать анализатор математических выражений. Я посмотрел в яндексе, гугле -...

Вычисление математических выражений - C++
Всем привет, я пишу этот пост в связи с тем что, мне дали это задание не обьяснив как её правильно написать. Я учусь на данный момент на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.08.2016, 14:47
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru