![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Sideful |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
ситуация такая
есть задача, условие которой - вывести на экран все перестановки чисел от 1 до n, без повторов есть полностью рабочий код, но с одним небольшим, но существенно непонятным моментом огромная просьба пояснить, каким образом строятся и выводятся на экран подстановки ниже привожу код программы, часть требующую пояснения выделяю жирным шрифтом program perestanovki; заранее спасибо! Сообщение отредактировано: Sideful - 25.10.2007 17:41 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата часть требующую пояснения выделяю жирным шрифтом Жирным шрифтом не выйдет - выделяй комментариями... |
Sideful |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
готово
![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Обычный переборный алгоритм с возвратом: для того, чтобы перебрать все комбинации, используется массив чисел и массив Boolean-ов, который показывает, задействовано ли уже число в соответствующей позиции, или еще нет...
Перед изменением элемента помечаем его, как задействованный, далее - рекурсивный вызов самой процедуры Print (в которой заполнение продолжается, пока не будут использованы ВСЕ числа), после возврата из рекурсии - снимаем отметку о том, что данный элемент задействован (т.е, возвращаемся к первоначальному состоянию). Для того, чтобы понять это - надо понимать, что такое рекурсия, и как она работает... Ты это знаешь? |
Sideful |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Ну как я понимаю, есть исходный массив чисел, на его основе строим подобные ему массивы, но с иным расположением элементов.
То есть у нас есть исходный массив, на его основе формируем новый, используя все элементы исходного ![]() Но это только в моем понимании.. Еще одно для меня неясно.. в коде есть цикл с условиев for i:=1 to a но переменная a же объявлена как логическая каким же образом идете перебор? p.s.: спасибо за отзывчивость ![]() Сообщение отредактировано: Sideful - 25.10.2007 18:22 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата но переменная a же объявлена как логическая Не путай локальные переменные с глобальными... В данном случае у тебя A - локальная переменная типа Integer, которая перекрывает глобальный массив Boolean-ов... |
Sideful |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
тогда понятно
спасибо огромное за помощь ![]() |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 12:07 |