![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
СтудентИзРоссии |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Доброй день.
Необходима помощь в написании алгоритма по проверке арифметического выражения. Если у кого-то есть опыт в написании подобного алгоритма на C, подскажите как? Может быть есть готовое решение? p.s. Схема (пример) арифметического выражения в прикреплённом файле. Присоединённый файл ( Кол-во скачиваний: 42 ) ![]() |
|||
|
||||
ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: нет Всего: -1 |
перегрузка опереторов
--------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: нет Всего: 70 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
СтудентИзРоссии,
у тебя ж готовая схема есть, бери и пиши прямо в лоб -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
СтудентИзРоссии |
|
||||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Не могли бы привести пример?
Вы правы, схема есть, она понятна, но с реализацией проблема, не могли бы Вы помочь? Будем признательны. |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 2 Всего: 183 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- ... |
|||
|
||||
СтудентИзРоссии |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Спасибо, может и правда кто-то сможет помочь. |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
тебе надо
1) лексический анализатор - который из строки (или файла) будет делать поток лексем. Согласно синтаксической диаграмме Вирта (которую ты привел) у тебя могут быть лексемы: * / + - целое буква , [ ] для реализации подойдет например strtok. 2) синтаксический анализатор. разбирает поток лексем в соответствии с теми диаграммами которые ты привел. Вирт давал инфо какой тип диаграммы должен соответствовать какой конструкции языка (на паскале правда). то есть у тебя должно быть что - то типа
Остаток допишу позже -------------------- Бонифаций. |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Если нужен просто обрезаный парсер, то чего-нибудь типа :
|
|||
|
||||
СтудентИзРоссии |
|
||||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Необходим простой анализатор, который проверяет запись на её правильность. Например: 1+2*3/3+ABC[123]-ASD+100 (верная запись) Например: 3434+ewrwer...,.,%$ (неверная запись). Будем очень благодарные, если сможете помочь. Xenon, спасибо за код, но к сожалению, на некоторых правильных записях программа выдаёт неверный результат, например есть запись "2+4/2+1+1+3+2+3*1/3", а программа говорит о неправильном операторе в записе. Это сообщение отредактировал(а) СтудентИзРоссии - 17.2.2007, 21:06 |
||||
|
|||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
тебе прям готовую надо? ну вот на тех принципах что я писал:
Добавлено @ 00:17 я писал навскидку, не проверяя, так что сами тестируйте Добавлено @ 00:22 ps/ Я писал на С, ориентируясь на исходное сообщение, где был вопрос именно по С. Если надо именно на C++ - сами уж доведите. Там собственно добавьте обрабтку ошибок не с помощью exit а через exception и будет нормально -------------------- Бонифаций. |
|||
|
||||
СтудентИзРоссии |
|
||||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
Огромное Вам СПАСИБО! Работает!!! |
||||
|
|||||
bigmaik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.1.2012 Репутация: нет Всего: нет |
Здравствуйте! А можете эту же программу в Pascal написать???
Добавлено через 20 секунд Здравствуйте! А можете эту же программу в Pascal написать??? Добавлено через 1 минуту и 50 секунд Здравствуйте! А можете эту же программу в Pascal написать??? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |