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

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

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

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

29.08.2016, 08:27. Просмотров 810. Ответов 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++
Добрый день, нуждаюсь в вашей помощи. Написал код программы для решения определённого уравнения методом половинного деления. Необходимо...

27
tezaurismosis
Администратор
Эксперт .NET
6967 / 3373 / 503
Регистрация: 17.04.2012
Сообщений: 8,041
Записей в блоге: 14
29.08.2016, 14:51 #16
Vhodnoylogin, правило 4.7 видели?
4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
Хотя бы нормально опишите задачу. Психологические эксперименты очень занимательны, но, боюсь, им здесь не место.
0
HelicopterK52
682 / 207 / 28
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
29.08.2016, 14:51 #17
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
А мне хочется посмотреть
Да с чего люди будут что-то показывать? Это же не их проблемы.
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
И хочу, чтобы другие тоже на граблях потанцевали.
Возьмите детские грабли и еще раз потанцуйте.
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
как вы будете решать проблему множественной диспетчеризации.
Множественной? То есть, зашли дальше двойной диспетчеризации?
Тогда не надо выкладывать свой код - там лапша будет.
0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 297
29.08.2016, 14:55  [ТС] #18
Цитата Сообщение от Martein Посмотреть сообщение
В конце не надо хоть будет нести зачётку для отметки твоему преподу, который тебе задал это задание?
не надо. Ибо мы год назад (прошлой зимой) эту задачу решали вместе. Так что он все сам видел. И оценку сам же и ставил.

Добавлено через 34 секунды
Ну, я погляжу, народ тут боится множественной диспетчеризации. Поэтому и делать не хочет.
0
_Ivana
3201 / 1817 / 153
Регистрация: 01.03.2013
Сообщений: 5,047
Записей в блоге: 4
29.08.2016, 14:56 #19
Народ тут предлагал ТС написать показательные примеры, но тот не реагирует Потому что тролль
0
obivan
Падаван С++
415 / 235 / 60
Регистрация: 11.11.2014
Сообщений: 834
Завершенные тесты: 2
29.08.2016, 14:58 #20
Vhodnoylogin,
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
народ тут боится множественной диспетчеризации
вы действительно думаете, что в этом проблема того, что вам никто ничего на блюдечке не несет, у меня для вас плохие новости, вы явно в людях не разбираетесь, собственно тема не о чем, если чего то хотите скидывайте свой код минимум
0
HelicopterK52
682 / 207 / 28
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
29.08.2016, 15:03 #21
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
я погляжу, народ тут боится множественной диспетчеризации.
Канешн. Зачем нам этот монстр сдался?
0
Avazart
Эксперт С++
7235 / 5431 / 303
Регистрация: 10.12.2010
Сообщений: 24,138
Записей в блоге: 17
29.08.2016, 15:05 #22
Цитата Сообщение от _Ivana Посмотреть сообщение
Крайний срок - полночь! (С)
Ага а затем- в тыкву ...
0
Vhodnoylogin
-13 / 2 / 0
Регистрация: 02.04.2012
Сообщений: 297
29.08.2016, 15:09  [ТС] #23
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Зачем нам этот монстр сдался?
вот я и хочу посмотреть, как люди без этого монстра живут.

Если есть конструкция вида function(arg1, agr2), реализация которой зависит от типа аргументов - без множественной диспетчеризации не обойтись. Либо городить огород для реализации (а будет ли она такой же универсальной) своего варианта.
0
Nishen
406 / 245 / 81
Регистрация: 26.02.2015
Сообщений: 1,143
Завершенные тесты: 2
29.08.2016, 15:11 #24
Vhodnoylogin, обратись к http://www.cyberforum.ru/members/521431.html он поможет тебе.
1
_Ivana
3201 / 1817 / 153
Регистрация: 01.03.2013
Сообщений: 5,047
Записей в блоге: 4
29.08.2016, 15:14 #25
Точно, ведь абстрактное синтаксическое дерево математического выражения является частным случаем "древовидной иерархии объектов с паритетными связями" (R)
2
Avazart
29.08.2016, 15:21
  #26

Не по теме:

Цитата Сообщение от Hikari Посмотреть сообщение
Задействовать в твоей программе VBS или JS и через него вычислять выражение.
По крайней мере мои коллеги так делают. А иногда с помошью MS Office или Libre Office.
А в учебных целях есть книги Страуструпа в которых описан калькулятор

0
Martein
675 / 86 / 13
Регистрация: 22.06.2014
Сообщений: 178
29.08.2016, 16:02 #27
Короче парняга пыжытся над упражнениями по парсингу уравнений и их решение через паттерн диспетчер и хочет чтобы вы вместо него написали программу с классами подобного типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
 
class Expression {
public:
    virtual Expression& operation() = 0;
    virtual void transform(Expression& other) = 0;
};
 
class Number : public Expression {
public:
    Expression &operation();
    void transform(Expression &other) {
        if (Number* number = dynamic_cast<Number*>(other)) {
            // operation Number-Number
        } else {
            
        }
    }
};
 
class Div : public Expression {
public:
    /*virtual*/
    Expression &operation();
    /*virtual*/
    void transform(Expression &other) {
        if (Div* div = dynamic_cast<Div*>(other)) {
            // operation Div-Div
        } else {
            
        }
    }
};
 
class Mul : public Expression {
public:
    /*virtual*/
    Expression &operation();
    /*virtual*/
    void transform(Expression &other) {
        if (Mul* mul = dynamic_cast<Mul*>(other)) {
            // operation Mul-Mul
        } else {
            
        }
    }
};
 
int main()
{
    return 0;
}
И теперь похвастаться не перед кем, что он такой осилятор, так хочет посмотреть, как умеют другие. Короче это юношеский максимализм, не обращайте внимания.
0
gru74ik
29.08.2016, 16:17     Написать парсер математических выражений с функцией упрощения этих выражений
  #28
 Комментарий модератора 
Множественные нарушения правил форума (4.3, 4.7, 4.10, 5.22).
Упорство в несоблюдении правила 4.7. Тема закрыта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2016, 16:17
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
28
29.08.2016, 16:17
Закрытая тема Создать тему
Опции темы

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