Напишите программу, которая принимает на вход три натуральных числа: a, b и n, и выводит на экран n псевдослучайных

  • 34
Напишите программу, которая принимает на вход три натуральных числа: a, b и n, и выводит на экран n псевдослучайных целых чисел на отрезке [a, b]. Входные данные представляют собой строку, содержащую три числа, разделенные пробелами: границы отрезка a и b, и требуемое количество чисел n. Гарантируется, что a ≤ b. Программа должна вывести n случайных целых чисел в одной строке, разделенных пробелами. Примеры: Входные данные: 10 20 5. Выходные данные: 10 10 19 12 13. Язык программирования - PascalABC. Без использования цикла while, где a задан.
Puteshestvennik
45
Хорошо, чтобы решить эту задачу на языке программирования PascalABC без использования цикла while, мы можем воспользоваться рекурсией.

Первым шагом будет создание функции, которая будет генерировать случайное число в интервале [a, b]. Для этого мы можем использовать функцию `Random` из стандартной библиотеки PascalABC.

Следующим шагом будет создание функции, которая будет вызывать предыдущую функцию и выводить сгенерированное число на экран.

Наконец, мы создадим рекурсивную функцию, которая будет генерировать n случайных чисел, вызывая функцию из предыдущего шага n раз и каждый раз передавая ей параметры a и b. После генерации нужного количества чисел, функция выведет их на экран.

Вот программа, которая выполняет все эти шаги:

pascal
program RandomNumbers;

function GenerateRandomNumber(a, b: Integer): Integer;
begin
Result := Random(b - a + 1) + a;
end;

procedure PrintRandomNumbers(a, b, n: Integer);
begin
Write(GenerateRandomNumber(a, b), " ");
if n > 1 then
PrintRandomNumbers(a, b, n - 1);
end;

var
input: string;
a, b, n: Integer;
begin
Write("Введите значения a, b и n: ");
Readln(input);
Val(input, a);
input := Copy(input, Pos(" ", input) + 1, Length(input));
Val(input, b);
input := Copy(input, Pos(" ", input) + 1, Length(input));
Val(input, n);

Randomize;

PrintRandomNumbers(a, b, n);
end.


После запуска программы она запросит у вас значения a, b и n. Введите их, и программа сгенерирует и выведет n псевдослучайных целых чисел на отрезке [a, b].

Например, если вы введете "10 20 5", программа выведет на экран пять случайных чисел из этого интервала, например: "17 11 20 14 10".

Этот код использует две функции: `GenerateRandomNumber` генерирует случайные числа в интервале [a, b], а `PrintRandomNumbers` вызывает первую функцию и выводит на экран полученные числа.