ваша программа не работет по нескольким причинам: 1 функция random(n) возвращает тип word(0..65535), при этом может вернуть 0, а тип результата определяется первым слогаемым, след-но word т.е. если директива {$R+} не включена, то у вас выйдет 65532, что не влезет в inetger(-32768..32768), и результат будет не верен, а пр {$R+} программа просто вылетит, след-но заполнять надо так: a[i]:=-3 + random(10);