Вопрос задан 07.09.2018 в 09:29. Предмет Информатика. Спрашивает Шокбар Алмат.

Я писал программу в Паскале ABC для произвольного промежутка [a:b] и для произвольного количества

случайных чисел. В качестве примера я взял промежуток [1:3] , в данном интервале могут быть только числа 1,2 и 3, но когда я проверял мне даже выдавало 0. Посмотрите, может в мою программу закралась ошибка program m_1; var n, k1, x, max, min: integer; begin randomize; writeln ('Случайные числа из интервала [a;b]'); write ('Введи минимальное значение интервала - '); read (min); write ('Введи максимальное значение интервала - '); read (max); write ('Введи кол-во случайных чисел - '); read (n); k1:=0; repeat if (n>=0) then k1:=k1+1; x:=random((max-min+1)+min); writeln (x); until k1=n; end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Есинов Игорь.
Так будет проще ну по мне так это проще

program m_1;
var n, k1, x, max, min, i: integer;
begin 
 writeln ('Случайные числа из интервала [a;b]');
 write ('Введи минимальное значение интервала - ');
 read (min);
 write ('Введи максимальное значение интервала - ');
 read (max);
 write ('Введи кол-во случайных чисел - ');
 read (n);
 for i:=1 to n do
  begin
   x:=random(max-min+1)+min;
   write (x,' ');
  end;
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваша программа написана на языке Pascal ABC и предназначена для генерации случайных чисел в указанном пользователем интервале [a:b] и для заданного количества случайных чисел (n). Однако в коде есть несколько ошибок, которые могут привести к некорректному выполнению программы. Давайте рассмотрим их:

1. Переменные `n`, `k1`, `x`, `max`, `min` не были объявлены как массивы. Для генерации n случайных чисел вам, возможно, следует использовать массив.

2. В выражении `if (n >= 0) then k1 := k1 + 1;` проверяется условие `n >= 0`, однако это условие всегда истинно, так как `n` является количеством случайных чисел, и оно всегда положительное. Вероятно, вам нужно проверить `k1 < n`.

3. Вместо `random((max-min+1)+min)` вам следует использовать `random(max-min+1) + min`. Функция `random` возвращает случайное число в диапазоне от 0 до (max-min), поэтому прибавление `min` смещает это значение на нужный вам интервал.

Исправленный код может выглядеть так:

```pascal program m_1;

var n, k1, x, max, min: integer;

begin randomize; writeln('Случайные числа из интервала [a;b]'); write('Введи минимальное значение интервала - '); read(min); write('Введи максимальное значение интервала - '); read(max); write('Введи кол-во случайных чисел - '); read(n); k1 := 0; repeat if (k1 < n) then begin k1 := k1 + 1; x := random(max - min + 1) + min; writeln(x); end; until k1 = n; end. ```

Теперь программа должна корректно генерировать n случайных чисел в указанном интервале.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос