На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Парсер мат. выражения , очень нужно!!!
    Люди подскажите мне как сделать так, чтобы я вводил с коавиатуры во время работы программы непример такое 1+20+30*х
    А потом в программе подставлялось значение х и выдавался ответ

    Очень нужно, чтобы сделать программу для построения графиков.
    Подскажите хоть чтонибудбть!!! :wall:
      как только выражение станет более сложным (типа x*(x + 2)), то будет нужна обратная польшская нотация
        обратная польшкая нотация это че за дрянь расскажи не понял
          реализация типичного калькулятора... мда. Пишешь анализатор выражения, переводишь его в польскую запись, потом спрашиваешь Х и считаешь :)
            Объясни пожалуйста, что такое Польская запись
              обратная польская запись - запись выражения, в котором оператор (+ - * /) стоит после обоих операндов. Примечательна полным отсутствием скобок :) Расчет по ней реализуется стеком, если нашел число или Х, то пихаешь его в стек, если нашел оператор - вытаскиваешь из стека оба операнда (сначала второй, потом первый), вычисляешь и кладешь результат обратно в стек.
              Например: (2+5)*3+4*(9-6) в польской записи пишется как 5 2 + 3 * 4 9 6 - * +
              Сообщение отредактировано: Vesper -
                а какой тип данных нужно выбирать, чтобы с помощью read можно было ввести?
                  string :)
                  а уже потом посимвольно разбирать
                  не все так просто в этой жизни...
                    Цитата DimAlish @ 25.10.04, 14:13
                    обратная польшкая нотация это че за дрянь расскажи не понял

                    http://algolist.manual.ru/syntax/revpn.php
                      У меня есть парсер, написанный на Дельфи. Я им пользовался в своей проге.
                      Думаю, его не трудно будет изменить для Турбо Паскаля.
                        Люди, у нас в факе всё есть. Я писал %)

                        Добавлено
                        Э.. в теме про инфиксные постфиксные и префиксные выражения. уже готовая реализация
                          Цитата Some1, 25.10.04, 22:49
                          уже готовая реализация
                          Эээ. Кхе мм...
                          Ошибка в модуле FixExpr.pas на процедуре FreeParams и в других местах (проверял и в TP7 и в FPC) :(
                            Вот рабочий модуль + мой пример для него.
                            Прикреплённый файлПрикреплённый файлFParser.zip (5.41 Кбайт, скачиваний: 267)
                              Romtek, хм.. я наверно на ТМТ писал.. щас гляну

                              Добавлено Сегодня, 00:36
                              Исправил. Можно качать. В BP7.0 работает

                              [Romtek: Вверху есть прикреплённая ссылка на тему]
                              Сообщение отредактировано: Romtek -
                                Могу дать пример парсерного калькулятора. Только намыль мне на osvldm@rambler.ru
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0317 ]   [ 15 queries used ]   [ Generated: 28.04.24, 10:20 GMT ]