Помогите с программой в паскале с помощью процедуры Процедура выводит N целых случайных...

0 голосов
56 просмотров

Помогите с программой в паскале с помощью процедуры
Процедура выводит N целых случайных чисел с интервала a, b


Информатика (192 баллов) | 56 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Procedure RND(a,b,n:integer);
var
  i:integer;
begin
  Randomize;
  for i:=1 to n do Write(Random(b-a+1)+a,' ')
end;

var
  a,b,n:integer;
begin
  Write('Задайте интервал для генерирования чисел ');
  Read(a,b);
  Write('Укажите количество случайных чисел: '); Read(n);
  RND(a,b,n)
end.

Тестовое решение:
Задайте интервал для генерирования чисел -5 10
Укажите количество случайных чисел: 30
-4 1 4 -1 3 -4 9 1 5 -1 -1 9 1 -2 -5 -2 1 -2 2 -3 2 -4 7 10 -3 3 10 5 6 -1



(142k баллов)
0

спасибо большое! а не можете объяснить это:
(b-a+1)+a

0

Функция Random(k) в языке Паскаль возвращает целочисленное случайное число из диапазона [0..k-1]. У нас диапазон [a,b], содержащий b-a+1 целых значений, поэтому для получения k приходится писать такое выражение. А чтобы "сдвинуть" полученное число от 0 к а, мы добавляем +а

0

Подправил ответ, там лишнее i было в var

0

спасибо большое Вам!

0

Пожалуйста!