Необходимо написать проверку арифметического выражения, содержащего только бинарные операторы и заглавные латинские буквы — в качестве операндов. Скобки в выражении также есть.
Например: A*(B+A)-C/D*(B+C)
Надо проверить, что всё это правильно записано. Как бы это сделать? Наверное, алгоритм избит до боли, но мне в голову ничего толкового не идёт почему-то.
Здравствуйте, Aidan4, Вы писали:
A>Необходимо написать проверку арифметического выражения, содержащего только бинарные операторы и заглавные латинские буквы — в качестве операндов. Скобки в выражении также есть.
A>Надо проверить, что всё это правильно записано. Как бы это сделать? Наверное, алгоритм избит до боли, но мне в голову ничего толкового не идёт почему-то.
Проще всего — проверить баланс скобок.
Ну и локальную правильность: чтобы не было двух операторов или двух аргументов подряд, чтобы не было пустых скобок...
Т.е. допустимы следующие последовательности
BEGIN value
BEGIN '('
'(' value
')' operator
value operator
operator value
operator '('
value END
')' END
... << RSDN@Home 1.2.0 alpha rev. 655>>