Функция random в паскале

Функция random в паскале

Бывают ситуации, когда требуется, чтобы результат работы программы был случайным в определенных пределах. Для реализации такой возможности во многих языках программирования присутствуют встроенные функции, код которых выдает случайные числа. На самом деле числа не совсем случайные, а псевдослучайные. Дело в том, что искусственно реализовать случайность невозможно. Обычно берется некоторый коэффициент, и с его помощью вычисляется каждое последующее «случайное» число.

В языке программирования Паскаль для генерации псевдослучайных чисел в заданных диапазонах используется функция random. Перед ее использованием обычно выполняется процедура инициализации датчика случайных чисел — randomize; иначе программа всегда будет выдавать один и тот же результат. Randomize задает начальное значение последовательности, от которого вычисляются все последующие. При каждом запуске программы это значение будет разным, а значит и результат работы функции random будет различным.

Функция random генерирует случайное число в диапазоне от 0 (включительно) до единицы. Если в скобках указан аргумент, то от 0 до значения указанного в скобках (не включая само значение). Так выражение random (10), говорит о том, что будет получено любое число в диапазоне [0, 10). Если требуется получать значения в каком-либо другом диапазоне (не от нуля), то прибегают к математической хитрости. Например, чтобы получить случайное число от -100 до 100 достаточно записать такое выражение: random (200) – 100. В результате, сначала будет получено число из диапазона [0, 199], а затем из него будет вычтена сотня. И если случайное число было меньше 100, то результат выражения будет отрицательным.

В примере программы сначала с помощью процедуры randomize инициализируется датчик случайных чисел. Далее переменной n присваивается случайное значение в диапазоне [5, 12). Значение переменной n используется для определения количества итераций цикла for. В цикле for генерируются случайные числа в диапазоне [0, 50) и выводятся на экран.

Читайте также:  Для чего нужен сабвуфер с колонками
Поиск

Язык:
Русский
English

Возвращает случайное число.

Объявление

Function Random [ ( Range : Word) ] : ;

Режим

Windows, Real, Protected

Замечания

Если параметр Range не определен, то результатом будет случайное число типа Real в диапазоне 0 Смотри также

Пример

Язык:
Русский
English

Pascal (Паскаль) функция Random, процедура Randomize.

Pascal (Паскаль) функция Random, процедура Randomize.
1. Общие сведения.
Функция Random в Паскале определяет диапазон случайных чисел.

В результате исполнения кода появляется практически одно и тоже число. На самом деле в Паскале, как в прочем во всех языках, используется ряд псевдослучайных чисел. Чтобы запускать новый ряд псевдослучайных чисел, каждый раз при работе программы, необходимо использовать процедуру в Паскале: Randomize.

Добавим в наш код возможность повторения кода, то есть вводим цикл while. Так же удалим (комментарий) процедуру Randomize.

Код только Random.

Скомпилируем наш код. Запускаем несколько раз полученную программу Код только Random (без Randomize). При каждом запуске, в окне увидим один и тот же ряд чисел.

Результат работы кода только один Random.

Убираем комментарий, вводим оператор Randomize. Снова компилируем, теперь выводится новый ряд чисел при каждом запуске программы.
Вывод: Генератор псевдослучайных числ работает только с функцией Random и процедурой Randomize вместе.

2. Использование параметра Random.
Набираем такой код:

Компилируем программу — выскакивает ошибка:

Ошибка компиляции функция Random.

Почему возникла ошибка компиляции?
Функция Random без параметров возвращает тип значения real в интервале [0…1]. А переменная sN тип integer. Изменим ее тип на real.
Компиляция прошла без ошибок.

Random без указания параметра.

Ошибка возникла потому, что язык Паскаль является строго типизированным. Нельзя присваивать переменной типа Integer, значение другого типа.

Если необходимо получить не только значения целых чисел в определенном интервале, но и значения вещественных чисел в определенном интервале, например [0…10], перепишем код:

Читайте также:  Туалетный бачок не держит воду

Random вывод вещественных чисел в интервале от 0 до 10.

Function Random [ ( sN : Word) ] : тип параметра;
Возвращает:
Если sN неопределенный, тогда значение случайного числа от 0 до 1, включая ноль.
Если sN определенный, тогда значение случайного числа от 0 до sN. включая ноль.

Ссылка на основную публикацию
Фум лента в стоматологии фото
Автор: G. Freedman Перевод: Александр Зыбайло Автор: G. Freedman Перевод: Александр Зыбайло Ограничение количества цемента для фиксации и использование определенной...
Усики для автомобильной антенны
Убираясь в бардачке я наткнулся на ремкомплект антенных усиков — лежит наверно уже полгода, всё наклеить не могу, то забываю,...
Усиление сигнала интернета на даче своими руками
С наступление дачного сезона, я озадачился установкой хорошего скоростного интернет на даче, у нас голосовая связь работает без проблем, а...
Функции жесткого диска в компьютере
Жесткий диск, он же винчестер, является основным местом, где хранится вся информация. В отличие от оперативной памяти, он энергетически независим,...
Adblock detector