Модератор: ответ на сообщениеviewtopic.php?p=31078#p31078. Тема обсуждения изменилась и выделена.

Конечно плохо. Вот например сегодня с утреца решил я посмотреть как будет работать реализация алгоритма quick sort на CP. Реализацию алгоритма нашел на этом форуме (две реализации: одна от info21 (не рабочая -- просто не компилируется), другая от Ярослав Романченко -- рабочая), однако прежде чем сортировать, нужно контейнер (в данном случае массив) чем-то заполнить. Желательно случайными числами. В результате я где-то на протяжении часа искал чем же в BB сгенерить случайное число. Гугл не помог. Дока тоже не помогла (на самом деле помогла бы если бы по умолчанию оно искало бы регистеронезависимо, или я бы додумался поставить галку "Ignore case"). На форуме нашел таки упоминание про модуль ObxRandom. Нашел его в доке. Открываю...

И вижу буквально вот это:
## Код:
```
MODULE ObxRandom;
(**
   project   = "BlackBox"
   organization   = "www.oberon.ch"
   contributors   = "Oberon microsystems"
   version   = "System/Rsrc/About"
   references   = "Martin Reiser, Niklaus Wirth, Programming In Oberon, ISBN 0201565439"
   changes   = ""
   issues   = ""

**)

   VAR z: INTEGER;   (* global variable *)

   PROCEDURE Uniform* (): REAL;
      CONST a = 16807; m = 2147483647; q = m DIV a; r = m MOD a;
      VAR gamma: INTEGER;
   BEGIN
      gamma := a * (z MOD q) - r * (z DIV q);
      IF gamma > 0 THEN
         z := gamma
      ELSE
         z := gamma + m
      END;
      RETURN z * (1.0 / m)   (* value of the function *)
   END Uniform;

   PROCEDURE InitSeed* (seed: INTEGER);
   BEGIN
      z := seed
   END InitSeed;

BEGIN
   z := 314159   (* initial value of seed *)
END ObxRandom.
```


Что возвращает функция? В каких диапазонах будет лежать значение...
Да, а самое смешное, поскольку у меня был массив INTEGER'ов, то пришлось присваивать значения вот так:
## Код:
```
Arr[i]:= SHORT(ENTIER(ObxRandom.Uniform()));
```


Т.е. в процессе исполнения имеем забавные превращения: INTEGER->REAL->LONGINT->INTEGER

Или есть какой-то более кошерный способ генерации псевдослучайных целых чисел в BB? (про обероны не говорю, ибо общей какой-то библиотеки, или хотя бы общей вики по библиотекам просто нет).