Перетасовка строк в спискеDelphi , Компоненты и Классы , СпискиПеретасовка строк в списке
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Перетасовка строк в списке Процедура тасует строки в списке. List - Список строк MoveCount - необязательный параметр, задающий количество перестановок, если этот параметр опущен, либо меньше или равен нулю, его значение принимается равным C*C-C, где C - количество строк в списке. Зависимости: SysUtils, Classes Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 18 ноября 2002 г. ***************************************************** } procedure ShuffleStrings(List: TStrings; MoveCount: Integer = 0); var i, N, C: Integer; Index1, Index2: Integer; Str: string; Obj: TObject; begin List.BeginUpdate; try C := List.Count; N := MoveCount; if N <= 0 then N := C * C - C; for i := 0 to N do begin Index1 := Random(C); Index2 := Random(C); Str := List.Strings[Index1]; Obj := List.Objects[Index1]; List.Strings[Index1] := List.Strings[Index2]; List.Objects[Index1] := List.Objects[Index2]; List.Strings[Index2] := Str; List.Objects[Index2] := Obj; end; finally List.EndUpdate; end; end; Перевод контента на русский язык: Процедура для перемешивания списка строк в Delphi! Давайте разбить ее и предложим некоторые улучшения. Исходный код Процедура Процедура начинается с обновления списка для модификаций (используя После цикла процедура заканчивает обновление (используя Улучшения Вот несколько предложений для улучшения:
1. Используйте более описательное имя переменной: вместо Вот отредактированный код:
В целом, исходный код хорошо структурирован и легко читаем. Эти улучшения направлены на то, чтобы сделать его более эффективным, читаемым и надежным. Процедура ShuffleStrings перемешивает строки в списке, количество перестановок задается параметром MoveCount или принимается равным квадрату количества строк в списке. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |