
Последние записи
- Кодировка в INDY 10 (как бороться с «???»)
- Переход по ссылке при клике на кнопку, счётчик кликов по кнопке и число переходов по ссылке на ява скрипт
- Сравнение двух диапазонов ячеек Excel на полное совпадение данных
- С++. Как напечатать в консоли два столбца?
- Конвертирование PNG в JPG на Delphi
- Можно ли, название сайта которое находится в шапке заключать в HTML тег h1 или h2 h3 h4 h5 h6?
- как бороться со знаками вопросов при проблеме с кодировкой в INDY 10 Delphi ?
- Связать ProgressBar + скорлинг в Texbox
- RichEdit и выгрузка в RTF-файл (добавление в конец файла)
- Чтение разделов из IniFile / MemIniFile

Оплата за обучение в Kata Academy только после твоего трудоустройства в IT
Начни карьеру Middle Java-разработчика, подробнее на сайте академии, ссылка - https://clck.ru/fCrQw

Интенсив по Python - 3-5 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
14th
Окт
Как в RandomRange исключить определенные числа?
Posted by Chas under Delphi
К примеру число 53, как это сделать?
Serge_Bliznykov
Во-первых, не «цифра», а «число».
А во-вторых, ну выпадёт ещё раз, ещё раз генерите ПСЧ. до тех пор, пока не выпадет другое.
общая логика такая (если, например, не нужны числа 53, 35 и 99 ):
Randomize;
....
repeat
r := RandomRage(x, y);
until (r<>53) and (r<>35) and (r<>99);
phomm
Иногда, понта ради, я пользуюсь хаками (для себя, не в продакшене, конечно). Сей случай хорошая возможность продемонстрировать это
предположим надо сгенерировать число от 1 до 100, за исключением 53, 35 и 99:
Result := Random(100-1-3) + 1; // числа 1 и 100 - здесь диапазон генерации
For i := 1 to 3 do // 3 тут и на пред. строке - кол-во исключаемых эл-тов
Inc(Result, Ord(Result >= Ord(#35#53#99))); // сама магия, числа для исключения через # по возрастающей
Ну а сам пример — небольшая математическая уловка.
Хак со строкой можно делать даже для чисел больше 255, вообще он предназначен для определения некоего произвольного набора чисел, сразу в коде, без декларации, некоторое время назад придумал сам, но пока пользовал просто в экспериментальных вещах, ну а орд от булеана довольно известный, пользую нередко
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas

Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)