![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
nopsrer |
![]()
Сообщение
#1
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Здраствуйте, уважемые форумчане.
Помогите, пожалуйста, решить задачку например, задана строка 7 (6 or 5) 4 (3 or 2) 1 надо вывести все возможные комбинации, выбирая из скобок по очереди одно число. OR-ов может быть несколько. (1 or 2 or 3) входные данные 7 (6 or 5) 4 (3 or 2) 1 выходные данные 76431 76421 75431 75421
Сообщение отредактировано: Lapp - 7.06.2009 2:35 |
|||
![]() ![]() |
sheka |
![]()
Сообщение
#2
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата задана строка в файле или просто? можешь взять массив, например m[1..100] of integer;- каждый елемент которого указывает на положение (какая цифра по порядку в данных скобках выводится). думаю 100 значтого числа тебе зватит ![]() а потом считывать строку посимвольно: если символ "(" то выводить m[какие по счету скобки] елемент скобок и увеличивать его на 1. если")", то inc(какие по счету скобки); переименуй пожалуйста тему (я ведь тоже в таком случае правила нарушил!) ![]() Сообщение отредактировано: sheka - 6.06.2009 21:49 |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
взять массив, например m[1..100] of integer;- каждый елемент которого указывает на положение (какая цифра по порядку в данных скобках выводится). думаю 100 значтого числа тебе зватит sheka, любопытно было бы взглянуть на такое решение.. ![]() а потом считывать строку посимвольно: если символ "(" то выводить m[какие по счету скобки] елемент скобок и увеличивать его на 1. если")", то inc(какие по счету скобки); ![]() nopsrer, вот решение с использованием рекурсии. procedure Parse(s: string); -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
nopsrer |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Lapp, спасибо огромное.
Еще если можно один вопрос как сделать эту же задачу если входящие числа задаються в виде масива например: 7 6 4 3 1 0... 0 5 0 2 0 0... 0 0 0 0 0 0 . . . . . . . . . . Сообщение отредактировано: nopsrer - 7.06.2009 8:23 |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как сделать эту же задачу если входящие числа задаються в виде масива например: 7 6 4 3 1 0... 0 5 0 2 0 0... 0 0 0 0 0 0 . . . . . . . . . . Я не понял, что ты имеешь в виду. Что значит "эту же задачу", если ты убрал из входных данных главное: скобки и or? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
nopsrer, можно уточнить кое-что? Это задача на цифры или на числа?
То есть, вот так может быть: 17 (16 or 15) 4 (3 or 2) 1 ? Или все числа в скобках только однозначные? У тебя вроде в первоначальном условии - числа, но в первом же ответе уже съехали на цифры почему-то... |
nopsrer |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Я не понял, что ты имеешь в виду. Что значит "эту же задачу", если ты убрал из входных данных главное: скобки и or? ![]() Извиняюсь, это два разных задачи. В первой там где строки, то там может быть только цифры (0..9). Эта задача уже решена Lapp-ом. Во второй могут быть числа (>9), но цифры в числе менять не нужно, не знаю даже как правильно объяснить попробую навести пример ввода-ввывода, может так будет понятнее. (Это задача мне нужна для написания процедуры вывода всех кратчайших путей в графе от Vi до Vj алгоритмом BFS) пример: input: Код 10 3 4 15 1 0 0 4 0 20 0 0 0 0 0 0 0 0 output: (вывод на екран) Код 10 3 4 15 1 10 3 4 20 1 10 4 4 15 1 10 4 4 20 1 так же если так будет возможно(а возможно в рекурсивном варианте такой вывод будет сделать даже проще), то вывод нужно будет организовать задом наперед, то есть так: Код 1 15 4 3 10 1 20 4 3 10 1 15 4 4 10 1 20 4 4 10 Сообщение отредактировано: nopsrer - 7.06.2009 9:25 |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
может так будет понятнее. Не стало((. По крайней мере, мне. Попробуй сформулировать понормальнее.nopsrer, а у тебя есть веская причина давать вторую задачу в одной теме? У меня складывается вречатление, что ты снова пренебрегаешь Правилами.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Я правильно понял задачу? Вот это тебе надо?
const(за исходные данные брал то, что приведено в 7-ом посте) |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 11:27 |