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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2021, 09:29   #11
sobaka13
Пользователь
 
Регистрация: 22.04.2021
Сообщений: 12
По умолчанию

BDA,
Код:
 int main()
{
    system("chcp 1251>nul");
    stack* poland = nullptr;
    char expression[100];
    char source_line[100];
    int i = 0, j = 0;
    cout << "Input expression: ";
    cin.getline(expression, 100);
    try
    {
        while (expression[i] != '\0')
        {
            if (isNumber(expression[i]))
            {
                source_line[j++] = expression[i];
            }
            if (isOpenBracket(expression[i]))
            {
                push(poland, expression[i]);
            }
            if (isClosingBracket(expression[i]))
            {
                int k = pop(poland);
                while (!isPairedBracket(k, expression[i]))
                {
                    source_line[j++] = ' ';
                    source_line[j++] = k;
                    k = pop(poland);
                }
            }
            if (isOperation(expression[i]))
            {
                source_line[j++] = ' ';
                while (poland && prior(peek(poland)) >= prior(expression[i]))
                {
                    source_line[j++] = pop(poland);
                    source_line[j++] = ' ';
                }
                push(poland, expression[i]);
            }
            i++;
        }
        while (poland)
        {
            source_line[j++] = ' ';
            source_line[j++] = pop(poland);
        }
        source_line[j] = '\0';
        cout << source_line;
    }
    catch (exception e)
    {
        source_line[j] = '\0';
        cout << source_line << e.what() << endl;
    }
    system("pause>nul");
    return 0;
}
sobaka13 вне форума Ответить с цитированием
Старый 19.05.2021, 09:29   #12
sobaka13
Пользователь
 
Регистрация: 22.04.2021
Сообщений: 12
По умолчанию

вроде работает
sobaka13 вне форума Ответить с цитированием
Старый 19.05.2021, 19:16   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Да, похоже на правду. Если строка будет корректной, то сработает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа которая вычисляет польскую инверсную запись на С++ или Паскаль Casillas1 Помощь студентам 5 05.11.2014 16:07
Превод из инфиксной в обратную польскую запись Anny_Apple Помощь студентам 0 11.04.2011 19:22
Перевод из инфиксной записи в обратную польскую Anny_Apple Паскаль, Turbo Pascal, PascalABC.NET 1 10.04.2011 20:49
Задача на обратную польскую запись Horknee Помощь студентам 8 11.03.2009 22:09
Pascal Перевод в Польскую запись ЮнПрог Помощь студентам 3 29.12.2008 13:51