Пусть есть строка символов, в которой могут встречаться парные символы: “ ”, ' ', { }, ( ), [ ], < >. В этих парах первый символ назовем открывающим, а второй – закрывающим.
Произвести синтаксическую проверку предложения на наличие факта несоответствия открывающего и закрывающего символов (каждому «открывающему» символу должен соответствовать соответствующий «закрывающий» символ).
При решении задачи необходимо:
1. Организовать двунаправленный кольцевой список, каждый элемент которого содержит один из «открывающих» символов и стек, содержащий позиции этого «открывающего» символа в предложении.
Элементы списка добавляются по мере нахождения в предложении.
2. Если в предложении находится «закрывающий» символ, которому не соответствует ни один из «открывающих», то он игнорируется.
3. При нахождении соответствующего «закрывающего» символа осуществляется проверка на соответствие последнему «открывающему» символу. Если проверка удачна, то осуществляется удаление соответствующего элемента из стека. Иначе выдается сообщение об ошибке, содержащее последний «открывающий» символ и его позицию в строке и несоответствующий ему «закрывающий» символ и его позицию в строке; после этого программа завершает свою работу.
4. По окончании анализа строки осуществляется проверка на оставшиеся незакрытые «открывающие» символы. Если таковые будут найдены, то они с их позициями в предложении выводятся на экран.
5. Если все «открывающие» символы были закрыты, то выдается соответствующее сообщение на экран.
Ввод исходного предложения осуществляется с клавиатуры или из файла. Предполагается, что длина исходного предложения не превосходит 255 символов.
Добавлено через 5 мин.
Случайно нажал на "создать" не дав объяснений к задачке. Ломаю башню месяца полтора и ни как не могу реализовать на самом паскале (наверное недостаток практики, а может.. разума). Кому не лень помогите, плз.