![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.02.2010
Сообщений: 164
|
![]() ![]() Верно: ()()()()() (()()()()) ()(()()()) Не верно: )(()()())( Самый не хитрый способ, полный перебор. А потом смотреть что скобки стоят верно. Т.е. понадобится две вещи: 1. Генератор последовательностей скобок. 2. Проверяющий эти последовательности на уникальность и правильность. 2 я сделеал только при условии что пользователь вводит, а мне нужно сделать генератор этих выражений подскажите буду благодарен.. с генерацией вроде все ясно вот код Код:
подскажите как ?? Последний раз редактировалось Stilet; 17.05.2010 в 08:41. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
По теме: когда-то кто-то мне говорил что лучший механизм такого парсинга - через конечные автоматы... Не проверял, но думаю на твоем месте именно в эту сторону бы и порыл...
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.02.2010
Сообщений: 164
|
![]()
Хм, интересно , но что то разобратся не могу , может поможешь приведи пример если не сложно ?
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Увы сложно
![]() Я никогда не утруждал себя разборами такого рода да и КА в универе не любил...
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.02.2010
Сообщений: 164
|
![]()
Не ужели проще нельзя ?
|
![]() |
![]() |
![]() |
#6 | |
Временно — юрист.
Форумчанин
Регистрация: 31.03.2008
Сообщений: 204
|
![]() Цитата:
Вобщем наводка: надо использовать для проверки правильности выражения стек. Подумай пока в этом направлении. Короче, до конца дня наверное соображу что к чему. А то в условиях расслабона голова не так работает, как в экстримальных))) |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Для проверки правильности расстановки скобок может проще поступить следующим образом:
Создаём счетчик скобок. Изначально он равен нулю. Потом при появлении открывающейся скобки, мы этот счетчик увеличиваем на единицу. Ну и уменьшаем на единицу в случае закрывающейся скобки. Если в какой-то момент времени счетчик стал отрицательным, значит лишняя закрывающаяся скобка. Если строка кончилась, а счетчик не равен нулю, значит не закрыта одна или несколько открывающихся скобок (по счетчику легко узнать их количество). |
![]() |
![]() |
![]() |
#8 |
Временно — юрист.
Форумчанин
Регистрация: 31.03.2008
Сообщений: 204
|
![]()
Аа, действительно, какой стек? Тут же не надо проверять соответствие скобок между собой.
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.02.2010
Сообщений: 164
|
![]()
Эх что то я сглупил , спасибо за подробное описание
![]() Еще не большой вопросу как можно грамотнее сделать генератор нужных мне выражений ? Последний раз редактировалось Stilet; 18.05.2010 в 13:41. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]() Код:
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
преобразование выражений | alexander-57n | Помощь студентам | 0 | 16.05.2010 14:33 |
вычисление арифметических выражений на с++ | Euforia_PZAS09_1 | Помощь студентам | 1 | 09.03.2010 17:40 |
Парсер математических выражений | Granus | Общие вопросы Delphi | 3 | 24.06.2009 15:19 |
условие в построителе выражений! | SKIF_SPB | Microsoft Office Access | 3 | 25.12.2008 14:07 |
Решение простых выражений | MStorm | Помощь студентам | 5 | 10.03.2008 14:34 |