#0
by Sv4org
Составить обработку, которая проверяет корректность баланса скобок в арифметическом выражении, т.е. что скобки установлены верно и правильно их вхождение, то есть если скобки так расположены [({})] , то это правильное вхождение, а вот [([) - неверное. Входной параметр - Строка - арифметическое выражение; Выходной параметр - "Верно""Не верно". Использовать метод "Вычислить" нельзя.
#3
by butterbean
Перебирай посимвольно и запоминай в массив открытые скобки, и убирай их оттуда по мере того, как попадутся закрытые
#7
by Garykom
Гы кто ответит не запуская сколько у меня всего ошибок в и сколько разных видов ошибок?
#8
by Sv4org
Ну суть примерно понял, вот что получилось, не знаю правильно или нет Подскажите только как сделать это в обработке? какие реквизиты нужны или ТЧ? Как это вообще должно работать?
#9
by НП
Строгое решение состоит в преобразовании в польскую (постфиксную) запись. Все это широко обсуждалось лет 50 тому назад. В книге Генератор компиляторов У Маккимана и др. на стр. 52 в разделе "Деревья, стеки и польская запись приводится" теоретической обоснование компиляции арифметического выражения.
#10
by NorthWind
рекурсия. Сканируем строку слева направо. Когда обнаруживается открывающаяся скобка - вызываем себя же, передавая номер следующего после открывающейся скобки символа и тип этой скобки (квадратная, круглая и т.д.). Соответственно сканируем уже начиная с этого символа и т.д. Выход из процедуры на уровень выше происходит, когда встретится закрывающая скобка такого же типа, как была передана, или когда строка окончится. . Еще должна быть глобальная по отношению к процедуре переменная типа "счетчика ссылок". Изначально она инициализируется нулем. Встретили открывающую скобку - увеличиваем на 1, закрывающую - уменьшили на 1. . Если выражение корректно, то по окончании сканирования значение этой переменной будет 0. Если скобки расположены криво или их количество не соответствует действительности, то значение будет ненулевое.
#11
by NorthWind
польскую запись есть смысл мутить, если нужно делать полноценный разбор выражений с арифметическими и прочими действиями. Если просто посчитать скобки и корректность их открытия-закрытия - то достаточно .
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
В этой группе 1С
- Сериализовать ИнтернетПочтовоеСообщение
- в чем разница между периодическим регистром и непериодическим с датой в измерени
- УТ 11.3. Учет себестоимости по сериям
- 1с Розница базовая 2.33 дубли егаис
- Тензор ЭДО и СБИС ЭДО: различия.
- Создание РИБ на УТ 11.2 (11.2.3.202) по подразделению и организации
- УТ 10.3 Установка ограничение по общему количеству проданного товара со скидкой.
- как сохранить печатную форму в mxl
- Обнаружено дублирование ключевых значений Динамический список
- Помогите разобраться с отправкой писем из 1С
- Отмена планового начисления в ЗУП 2.5
- Ошибка: У пользователя недостаточно прав на исполнение операций над базой данных
- Перенос остатков в КА 1.1
- postgresql-9.4.2-1.1C_x64 + 1с 8.3.9.2033 + УТ 11.1.2.27 = блокировки
- Как отключить автозамену в тексте модуля при переименовании объекта?
- ЗУП 2.5 ФСС НС и ПЗ для ДГПХ
- Как установить значение по умолчанию в поле со списком выбора (Обычная форма)
- Регистр накопления. Добавление нового измерения.
- Отчет на СКД - вывести просто макет без запроса
- УФ. Вывод табличного документа на форму