Тема: множества. Через программу паскаль Требуется сформировать последовательность...

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

Тема: множества. Через программу паскаль Требуется сформировать последовательность натуральных чисел от 1 до n, расположенных в случайном порядке без повторения значений.


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

var n,i:integer; begin writeln('n='); readln(n); for i:=1 to n do writeln(i); end.

0

Не могу сделать так, чтобы они распологались в случайном порядке

Дан 1 ответ
0 голосов

var b: set of integer;

   n,k,m: integer;  

begin

 randomize;

 write('n = '); readln(n);

 k:=0;

 while k

 begin

   m:=random(1,n);

   if not (m in b) then

   begin

     write(m,' ');

     b:=b+[m];

     k:=k+1;

   end;

 end;

end.  


(9.7k баллов)
0

В паскале abc не запускается, пишет что в 3 строке неожиданный символ ' '

0

Вот так программа работает:var n,i,k,m:integer; b: set of integer;begin write('n = '); readln(n); k:=0;while kbegin m:=random(1,n); if not (m in b) thenbegin write(m,' '); b:=b+[m]; k:=k+1;end;end;end.

0

while kbegin? Так работает? Неожиданный символ ' ' - это уже проблемы сайта.

0

Ну да, ты можешь объяснить, что за что отвечает

0

А что тут объяснять? Генерируете датчиком случайных чисел random(1,n) случайное число в интервале [1,n] , проверяете, входит ли это число в множество b, если не входит, то добавляете его в множество и выводите на экран, продолжаете до тех пор, пока в множестве не будет n элементов, т.к. датчик случайных чисел генерирует случайные числа, то и последовательность будет в случайном порядке, а так как в множество не добавл. элем., которые уже , то все элем. последоват. будут различными.