IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Двунаправленный кольцевой список, работа со строками (string)
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: Kolyan_MSKR

Репутация: -  0  +


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

Добавлено через 5 мин.
Случайно нажал на "создать" не дав объяснений к задачке. Ломаю башню месяца полтора и ни как не могу реализовать на самом паскале (наверное недостаток практики, а может.. разума). Кому не лень помогите, плз.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Что именно не получается? Алгоритм же у тебя разжеван до неприличия, проблема с созданием двухсвязного кольцевого списка? Или с тем, что элементом этого списка является не простое число/символ, а сложный тип - стек? Только вчера поднималась тема кольцевых списков, там я давал вот эту ссылку: Результаты поиска

Попробуй разобраться, как работают с кольцевым списком, имеющим информационное поле простого типа, и создать такой список, скажем, для Char-ов - тебе все равно нужны Char-ы в элементе списка, надо же хранить символ (потом я покажу тебе, как прицепить туда же еще и стек для каждого элемента списка)... Начни писать программу, не жди, что кто-то сделает это за тебя полностью...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 20:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name