Напишите программу, которая случайным образом выбирает дежурных: выводит два случайных...

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

Напишите программу, которая случайным образом выбирает дежурных: выводит два случайных числа в диапазоне от 1 до N, где N- количество учеников вашего класса. С какой проблемой вы можете столкнуться?
Нужно сделать в Паскале. Заранее спасибо!


Информатика (183 баллов) | 508 просмотров
0

Проблема простая - могут случайно совпасть два выбранных значения.

Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
var
  n,n1,n2:integer;
begin
  Write('Количество учеников: '); Read(n);
  Randomize;
  n1:=Random(n)+1;
  n2:=n1;
  while n2=n1 do n2:=Random(n)+1;
  Writeln('Номера дежурных: ',n1,', ',n2)
end.

Тестовое решение:
Количество учеников: 35
Номера дежурных: 2, 26

(142k баллов)
0 голосов

Var n,d1,d2:integer;
begin
  writeln('Укажите сколько человек в классе:');
  readln(n);
  Randomize;
  d1:=Random(1,n);
  d2:=Random(1,n);
  while d1=d2 do d2:=Random(1,n);
  writeln('Дежурными назначены: ',d1,' и ',d2);
 end.

цикл 
  while d1=d2 do d2:=Random(1,n); сделан, чтобы исключить возможность совпадения номеров (когда генератор случайных чисел одинаковые номера выдаст)

(3.3k баллов)