Случайные числа «RANDOMIZE…RANDOM»

Октябрь 12, 2009 / Автор AlexR / Рубрики Учебник по паскалю / Комментировать

Прежде, чем использовать случайные числа вначале программы пишут команду «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.

Вернуться к оглавлению

Комментарии закрыты.