![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| hedge_hog |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
Здравствуйте. Знает ли кто есть ли процедура или функция которая переставляет в хаотичном порядке элементы массиа. Или самому нужно алгоритм соченять.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Не слышал про такое. Думаю просто Random() и в цикле переставлять.
Добавлено через 1 минуту и 25 секунд Лучше даже пройтись по всем индексам от 1го до последнего, а рэндомом генерить индекс элемента с которым нужно будет обменять текущим. Т.о. поменяют позицию все элементы. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
согласен, сам такое юзал, хотя может и можно придумать что-нибудь более оригинальное.
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| hedge_hog |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
Alexeis, Rennigth, Огромное СпасиБо.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Rennigth, раз for i := Low(VDynArray) тогда уже
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Alexeis, а зачем +1? Вылетишь же за пределы массива...
Добавлено через 11 минут и 43 секунды Alexeis, забыл что Random
:( Тогда так:
Зачем лишние вычисления Low? -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот именно! И я об этом
? когда все динамические массивы и открытые начинаются с "0". Получается непоследовательно, раз используется Low(VDynArray), значит начало может быть не нулем, а раз начало не ноль, то Random легко может вернуть ноль, что будет за пределами массива и вызовет ошибку. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Просто считаю хорошей привычкой использовать и для дин.массивов и для стат.массивов использование одной конструкции Low/High. Хоть и пишут:
Но вот так мне кажется менее наглядно:
Просрачность кода увеличивается. Хотя каждому свое. -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вооот, очень хорошо, тогда почему же в
индексы массивов неожиданно начали начинаться с нуля, раз предполагается безболезненно переносить на статические? Будешь помнить, что делал универсальную функцию, откопипастишь, а оно начнет глючить и писать в чужую память. Либо универсально, либо уникально. Уникально-универсальные процедуры главный кандидат на трудноуловимые ошибки. Вроде уверен, что все делал универсально, а не работает -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |