Другие языки программирования и технологии

помогите написать прогу в паскале:)

есть 20 чисел от 1 до 20, их нужно в рандомном порядке разбить на две группы по 10 чисел:)
for n:=1 to 20 do a[n]:=n;{создали массив}
m:=20;//элементов в a
for n:=1 to 20 do begin
r:=random(m)+1;{случайное число}
b[n]:=a[r];{заносим случайный элемент a в b}
a[r]:=a[m];{заносим последний элемент a на место случайного}
m:=m-1;{запоминаем, что a сократилось}
end;
в b элементы 1-10 и 11-20 - случайные.
Остальное по вкусу.
СВ
Сергей Вашкевич
92 175
Лучший ответ
А помощь-то в чем? Что не получается?
Двойной вложенный цикл, в первом генерируется число, во втором проверка что число еще не используется.
Или в массив генерировать числа, а потом первую половину в одну группу записать, а вторую половину во вторую.
Saga S
Saga S
51 015
Типа готово!
Во сколько вариантов нагенерировал:

15 13 20 10 8 17 12 18 6 4
11 9 7 3 14 16 1 2 19 5

1 17 14 7 5 16 18 8 2 10
9 4 6 3 15 11 19 13 12 20

9 19 11 20 14 17 16 15 18 12
4 8 5 6 13 2 7 3 10 1

6 19 7 3 9 14 1 8 20 5
15 4 11 10 2 17 12 16 13 18

13 14 4 18 15 16 6 10 17 19
3 11 1 8 12 9 20 2 5 7

8 5 2 13 6 18 17 12 3 16
19 11 7 15 9 1 20 4 14 10

1 14 19 8 2 11 17 9 3 6
18 20 10 5 12 15 13 7 4 16

8 6 12 13 10 18 9 20 5 2
3 14 11 16 15 7 19 17 4 1

6 20 2 13 10 1 9 15 8 3
14 7 18 19 4 17 12 11 5 16

9 18 1 19 3 17 6 20 13 11
4 15 5 14 8 10 7 2 12 16

6 10 15 11 9 18 13 16 1 8
14 3 2 4 19 12 20 7 5 17

16 12 1 3 4 18 2 20 13 9
10 15 17 6 14 5 7 11 8 19
for i := 1 to 20 do begin if (random(2) = 0 and (c > 0)) then begin b[ bp ] := a[ i ]; inc( bp ) dec(c); end else begin c[ cp ] := a[ i ]; inc( cp ); end;
NL
Nikolai Lisitsyn
34 701