- И так функция RANDOM возвращает случайное
число от 0 до 1. пример ниже иллюстрирует работу функции.
-
- begin
-
- writeln(random:2:2);
-
readln;
-
- end.
-
- При этом если запускать программу, то каждый раз
будет выводится одно и тоже число. Чтобы получить действительно
псевдослучайное число при каждом запуске программы в начале кода
надо поставить ещё одну функцию randomize.
Как
в примере ниже:
- begin
-
randomize;
-
writeln(random:2:2);
-
readln;
-
- end.
-
- А
теперь в следующем примере попробуем вывести серию из 10 случайных
чисел.
- var
-
i :
integer;
-
begin
-
randomize;
-
for
i := 1 to 10 do
-
write(random:2:2,
' ');
-
readln;
-
- end.
-
- Мы
получили ряд чисел не больше 1. если записать функцию ввиде
RANDOM(10)
к
примеру, то мы получим ряд чисел уже от 0 до 10, смотри пример ниже.
-
- var
-
i :
integer;
-
begin
-
randomize;
-
for
i := 1 to 10 do
-
write(random(10),
' ');
-
readln;
-
- end.
-
- При
этом форматирование выводу у функции уже можно не осуществлять, так
как будут выводится целые числа. Если надо получить как
положительные так и отрицательные числа то можно записать так:
random(10)-5
-
- А
теперь попробуем написать свой маленький генератор случайных чисел.
- var
-
i :
integer; {счётчик}
-
n :
integer; {диапазон генерации}
-
s :
integer; {количество чисел}
-
p :
real; {генерируемое число}
-
begin
-
randomize;
-
writeln('Введите
диапазон от 0 до n, генерируемого числа.');
-
readln(n);
-
writeln('Введите
кол-во чисел.');
-
readln(s);
-
for
i := 1 to s do
-
begin
-
p :=
random(n) - (n+s)/s;
-
write(p:2:2,
' ');
-
end;
-
readln;
-
- end.
-
- Примерно
так, в задаче получаем и отрицательные и положительные числа, также
случайное число зависит от выбранного диапазона и кол-ва чисел.
-
- Скачать
решение.