![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Triplet |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: ![]() ![]() ![]() |
Всем добрый день!
Получила такое сумбурное задание, помогите, пожалуйста, разобраться. Необходимо реализовать парсер арифметического выражения на классах. Проблема как раз в этих классах, т.е., как я поняла, они должны быть реализованы таким образом: type на форуме нашла такой код парсера Постфиксная форма записи http://volvo71.narod.ru/faq_folder/postfix.htm там есть и ооп, но подскажите, пожалуйста, как можно парсер оформить в виде именно этих классов. Как я поняла, каждый класс должен выступать в виде стека, и как правильно распорядиться свойствами классов? Заранее большое спасибо ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Значит, смотри: используются вот такие классы:
Tok_Type = (_UNDEF, _NUMBER, _OPERATOR, _END);Предупреждаю сразу о нескольких вещах: 1) это работает только с арифметическими операциями/скобками/вещественными числами 2) все классы, кроме TCalc были прикручены в программу по принципу "чтобы было, потому что есть в задании", изначально в парсере использовалось только 2 класса, TCalc и TVarCalc (один для вычисления выражений без переменных, второй - для вычислений с участием переменных, второй класс в прикрепленную программу не вошел, из первого было вычищено все, что касается функций) 3) такую программу лично я никогда бы не принял. Еще раз: написано это - только для того, чтобы показать, насколько это бредово получается. Без этих "классов-довесков" программа выглядит намного стройнее и красивее; 4) на некоторых версиях Дельфи (до 2009) потребуется заменить конструкцию Exit(X) на begin Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 7:49 |