Случайные числа «RANDOMIZE…RANDOM»
Прежде, чем использовать случайные числа вначале программы пишут команду «randomize», таким образом, происходит активация генератора случайных чисел.
Получение случайных чисел:
1. <переменная>:=random — случайное вещественное число от 0 до 1 (не включая единицу)
2. <переменная>:=random(<N>) — случайное число от 0 до N-1
3. <переменная>:=trunc ((B-A)*random+A) — то, что стоит в скобках вещественное число, но при помощи оператора «trunc» число получается целым от A до B.
Примечание к пункту 3: В «Pascal ABC. NET» все выражение можно записать при помощи только одной единственной команды random (A, B). A и B — целые числа.
Пример:
Вывести на экран N случайных чисел от -20 до 20, определить количество отрицательных чисел и произведение всех положительных.
program rnd;
var z,n,s,p,i: integer;
begin
randomize; //активируем генератор случайных чисел
write('Введите количество случайных чисел:');
readln (n);
s:=0; //это сумматор, где будем считать количество отрицательных чисел
p:=1; //здесь будем считать произведение всех положительных чисел
for i:=1 to n do begin
z:=trunc(20-(-20))*random+(-20)); //В Pascal ABC. NET это выражение запишется так: z:=random (-20, 20);
write (z:3);
if z<0 then s:=s+1
else if z>0 then p:=p*z //мы не учитываем ноль, так как сказано в условии задачи только про положительные и отрицательные числа, про ноль не оговаривалось
end;
writeln;
writeln ('Количество отрицательных чисел:', s);
writeln ('Произведение положительных чисел:', p)
end.