![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Dr1khem |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Dr1khem Репутация: ![]() ![]() ![]() |
Построить все правильные скобочные выражения 2N то есть те которые содержат по N правых и N левых скобок. Использовать рекурсию.
rocedure ShowVariant(s : string; a, b : integer); Сообщение отредактировано: Lapp - 23.03.2012 2:54 |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
А разве ключевое слово не ВСЕ правильные скобочные выражения?.Вы пытаетесь построить лишь 1 правильное скобочное выражение.
|
IUnknown |
![]()
Сообщение
#3
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вообще-то непонятно в чем вопрос. Программа запускается и строит ВСЕ правильные скобочные выражения (Krjuger, там же рекурсия, ага). Что топикстартеру надо было?
|
Dr1khem |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Dr1khem Репутация: ![]() ![]() ![]() |
Вообще-то непонятно в чем вопрос. Программа запускается и строит ВСЕ правильные скобочные выражения (Krjuger, там же рекурсия, ага). Что топикстартеру надо было? Необходимо построить правильно скобочные выражения. (вводятся с клавиатуры). Например, Если есть открывающая скобка, то обязательно должна быть и закрывающая. Необходимо "сказать" программе, чтобы она из, к примеру, (() делала (()) (не хватало одной закрывающей скобки |
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это не то, что сказано в первоначальном посте. Теперь вообще непонятно, к чему тут приведенный код.
Тебе нужна проверка на вложенность скобок, ищи по форуму, тут есть не меньше 5 способов такой проверки. А потом, после проверки, решаешь что делать. Если "неправильность" добавлением закрывающих скобок исправить не удастся (строка не разобрана до конца но стек пуст - значит, проблема типа '()())()', и добавление скобок с любой стороны ничего не даст, ибо ты не знаешь, где именно подразумевалась открытая скобка) - значит выдавать сообщение об ошибке. Если удастся (разобрали строку до конца, но в стеке остались открытые скобки) - значит дописываешь к введенной последовательности нужное число скобок. Сообщение отредактировано: IUnknown - 22.03.2012 13:35 |
Dr1khem |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Dr1khem Репутация: ![]() ![]() ![]() |
Это не то, что сказано в первоначальном посте. Теперь вообще непонятно, к чему тут приведенный код. Тебе нужна проверка на вложенность скобок, ищи по форуму, тут есть не меньше 5 способов такой проверки. А потом, после проверки, решаешь что делать. Если "неправильность" добавлением закрывающих скобок исправить не удастся (строка не разобрана до конца но стек пуст - значит, проблема типа '()())()', и добавление скобок с любой стороны ничего не даст, ибо ты не знаешь, где именно подразумевалась открытая скобка) - значит выдавать сообщение об ошибке. Если удастся (разобрали строку до конца, но в стеке остались открытые скобки) - значит дописываешь к введенной последовательности нужное число скобок. это примерный код а надо свой написать |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
это примерный код а надо свой написать Кхм. Если нужно свой, то и пиши свой. Ты извини, но при всем своем умении мы не сможем написать тебе твой код (см. историю про норвежскую селедку в книге про капитана Врунгеля)). Ты привел код, прекрасно решающий поставленную тобой задачу. Никаких разбалансов или других неправильностей он не делает. Причем, использует рекурсию (как и требуется). Или ты настолько ленив, что хочешь, чтоб кто-то другой тебе изменил чей-то в работающем код, чтоб он выглядел как твой, а сам ты при этом только копипастил?.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 17:40 |