Не работает генерация рандомного числа - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Каждый раз программа дает 7, счетчик К работает правильно, а вот строка r:=random(1,k); дает всегда один и тот же результат. r:=random(k)+1; (что идентично по действию) дает такой же результат.
Что не так?

Решение задачи: «Не работает генерация рандомного числа»

textual
Листинг программы
Program test;
function randomset(s: set of integer): integer;
var
  num, k, i, r: integer;
  res: array[1..5] of integer;
begin
  k := 0;
  foreach num in s do 
  begin
    inc(k);
    res[k] := num;
  end;
  r:=random(1,k);
  result := res[r];
end;
 
var s: set of integer;
begin
randomize;
s+=[1,3,7,9,5];
write(randomset(s));
end.

Объяснение кода листинга программы

  1. Объявлены функции randomset и main, а также переменные num, k, i, r, res.
  2. В функции randomset перебираются все числа из множества s с помощью цикла foreach.
  3. Каждое число из множества s добавляется в массив res с индексом k.
  4. Переменная k инициализируется нулем.
  5. В функции main вызывается функция randomize для инициализации генератора случайных чисел.
  6. Множество s заполняется числами [1,3,7,9,5].
  7. Функция randomset вызывается с аргументом s, результат выводится на экран.
  8. В функции randomset переменная r инициализируется случайным числом в диапазоне от 1 до k.
  9. Результатом работы функции randomset является элемент массива res с индексом r.
  10. Цикл foreach завершается, когда все элементы множества s будут добавлены в массив res.
  11. Значение переменной k не используется в коде.
  12. Множество s не изменяется внутри функции randomset.
  13. Функция randomset не возвращает случайное число, а возвращает одно из чисел, добавленных в массив res.
  14. Функция randomize используется для инициализации генератора случайных чисел.
  15. Значение переменной r не используется в функции main.
  16. Переменная i не используется в функции randomset.
  17. Переменная num не используется в функции randomset.
  18. Переменная k не используется в функции main.
  19. Переменная i не используется в функции main.
  20. Переменная num не используется в функции main.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы