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

Программа упрощения полиномов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цикл for http://www.cyberforum.ru/cpp-beginners/thread341464.html
Как записать for (i=0; i<n; i++) if (i!=t) ... Надо записать что-то типа for (i=0, i!=t; i<n; i++)
C++ Для чего нужны вложенные структуры? Скажите пожалуйста для чего нужны вложенные структуры и где их используют? http://www.cyberforum.ru/cpp-beginners/thread341415.html
C++ Sleep внутри мьютекса
Может ли это как-то вешать программу, если да то почему?
stdio C++
Всем привет) Народ помогите пожалуйста.. я хочу набивать руку решая и отправляя задачи сюда ******** ) но там надо считывать исходные данные из input.txt и записывать в output.txt.. я знаю тока то что ето можно сделать с помошью библиотеки stdio... переделайте пожалуйста код етой програмы чтобы переменные считывались с input.txt и записывались в output.txt ...так понятнее будет)))) и...
C++ Кэширование рекурсии http://www.cyberforum.ru/cpp-beginners/thread341386.html
Доброго времени суток. Есть задача. Ириска весит X грамм, мандарин – Y грамм, пряник – Z грамм. Требуется написать программу, которая определит, сколько различных вариантов подарков весом ровно W грамм может сделать Дед Мороз. Сделать хотелось именно рекурсией(с циклами тривиально слишком), но я наткнулся на подводный камень - значения вычислялись по несколько раз и это приводило к...
C++ чтение строки а не не ниче)) подробнее

Показать сообщение отдельно
anonymous!
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 3
12.08.2011, 18:51     Программа упрощения полиномов
Добрый день!
Нуждаюсь в помощи или совете.
Столкнулся со следующей задачей: на вход программы из текстового файла поступает выражение вида:
p^2*(2*p^2+11*p-1)*(3*p+1)-4*p*(p+6)+12*p*(3*p^2-6*p+1)+8
на выходе нужно представить полином в нормальном виде (для данного случая будет):
6*p^5+35*p^4+44*p^3-77*p^2-12*p+8

Пока дошел только до разбиения входной строки на строки вида:
p^2*(2*p^2+11*p-1)*(3*p+1)
-4*p*(p+6)
12*p*(3*p^2-6*p+1)
8

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ifstream in_s("s.txt");
    if (!in_s) exit(1);
    in_s>>s;
    in_s.close();
    
    n=i=j=0;
    for ( i; s[i] != '\0' ; i++ ) 
    {
        s1[j][i-n]=s[i];
        s1[j][i-n+1]='\0';
 
        if(s[i] == ')' && s[i+1] == '-')
        {
            n=i+1;
            j++;
        }
 
        if(s[i] == ')' && s[i+1] == '+')
        {
            n=i+2;
            j++; i++;
        }
    }
s[i] - входная строка
s1[i][j] - массив из слагаемых входной строки (в данном случае их 4)

Но как синтаксически проанализировать каждый из этих полиномов и записать, к примеру, коэффициенты каждого из них по степеням в массивы никак не додумаюсь. В данном треде Разбор математических выражений вроде разобрался, но там при вычислении известно p. Помогите, пожалуйста =))

Добавлено через 2 часа 14 минут
Дело даже не в коде, код я напишу. Не могу придумать подходящий алгоритм действий.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru