Функция Random и Процедура Randomize в Pascal.

Вопросы по Pascal

В чем заключается вопрос: Что такое функция Random() и процедура Randomize в языке Pascal. Как это работает?

Сложность : легкая .

И так что такое random и randomize в pascal ?

Randomize — это процедура которая используется в Паскаль для включения генератора случайных чисел.

Функция Random определяет диапазон случайных чисел. Процедура Randomize и функция Random очень часто используются для демонстрации работы массивов в Паскаль.

Т.е. функция random возвращает нам число.

Пример :

var a : integer;
---------------
a := random(10);

И тут у нас переменная a может равняться числам от 0 до 9, не 10!!!!

Если мы хотим вывести числа от 0 до 1, то мы пишем следующее :

var a : integer;
---------------
a := random;

Т.е. random без всего.

Бывают случаи когда хочется иметь промежуток(диапазон) чисел. Допустим от -23 до 5, как его задать ?

Для начала мы складываем 23 и 5 без учета знаков и прибавляем 1(всегда) , у нас будет 29. Теперь пишем

var a : integer;
---------------
a := random(29);

Но это вернет нам числа от 0 до 28, теперь просто надо вычесть 23, не учитывая знаков. Так для промежутка c отрицательными числами.

С двумя положительными числами всё наоборот, сначала вычитаем из второго первое и прибавляем 1, мы получаем число, затем к нему прибавляем первое число :

5 до 29 = 29 - 5 + 1 = random(25) + 5

-1 до 13 = 13 + 1 + 1 = random(15) - 1

Так же есть формула для всех случаев:

x := random(max-min+1)+min; // тут уже все знаки учитываются

Т.е. если нам нужен диапазон отрицательных чисел, например от -5 до -10, то мы пишем:

// -5 это максимальное значение, потому что оно больше -10, а -10 это минимальное

random(-5-(-10)+1)+(-10) // все знаки учитываются

В основном random и randomize в pascal используются вместе. Если использовать random отдельно, то у нас будут случайные числа постоянно одинаковы.

Допустим у нас есть код :

var a : integer;
begin
   a := random(10);
   writeln(a);
   readln;
end;

И при запуске программы у нас выведется допустим 3. И если мы запустим заново, то у нас снова выведется 3 и так при каждом запуске.

Для этого и используется randomize, чтобы числа не повторялись :

var a : integer;
begin
   randomize; // пишем до использование random()
   a := random(10);
   writeln(a);
   readln;
end;

Если мы это напишем, то у нас функция random каждый раз при запуске программы будет выдавать разные числа.

Вот и весь вопрос.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий