Пользователь вводит число,программа должна вывести ** экран 3 случайных числа ,не...

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

Пользователь вводит число,программа должна вывести на экран 3 случайных числа ,не совпадающих с введённым пользователем числом . ( Паскаль)
Я написала ,но проблема в условии ( сейчас просто цикл) . Исправьте пожалуйста!
uses crt;
var a,b,d:integer;
Begin
readln (a);
randomize;
for b:=1 to 3 do
begin
d:=random (3);
write (' ',d,' ');
end;

end.


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

При таком задании придётся переделать цикл полностью. В частности, придётся отказаться от цикла for и использовать while. Также придётся ввести индекс, определяющий количество значений, не равных введённому. Используем переменную b для этой цели.
Переделывая твой код получаем следующее.
uses crt;
var a,b,d,i:integer;
Begin
  readln (a);
  randomize;
  b := 0;
  while i < 3 do
  begin
    d:=random (10);
    if d <> a then
    begin
     write (' ',d,' ');
     i += 1;
    end;
  end;
end.

(812 баллов)