Помощь - Поиск - Пользователи - Календарь
Полная версия: Заполнение массива разными числами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Вячеслав Л.
Задача: заполнить массив не повторяющимися элементами. Знаю только, как вывести неповторяющиеся элементы (с помощью множеств). Привожу эту прогу:
var
mn, k: Set of 1..20;
kol, l, i, n: Integer;

begin
Randomize;

mn:=[1..50];

k:=[];
for l:=1 to 20 do
begin
repeat
n:=Random(50)
until (n in mn) and not (n in k);
k:=k+[n];
Write(n,' ');
end;
end.
Как сделать то же самое для заполнения массива (мы же не можем написать "until (n in massiv)" )?
Unconnected
Можно просто последовательностью чисел заполнить, повторяться они не будут:)
-volvo-
Цитата
(мы же не можем написать "until (n in massiv)" )
А и не надо... Делай почти так же, как и показал:
k:=[];
for i:=1 to 20 do
begin
repeat
n:=Random(50) + 1;
until not (n in k); { <--- Условие (n in m) явно лишнее, других значений быть не может }
k:=k+[n];
A[ i ] := n;
end;
Lapp
Цитата(Вячеслав Людской @ 2.11.2009 10:11) *
var
mn, k: Set of 1..20;
...
mn:=[1..50];

Сдается мне, какая-то тут неувязочка.. smile.gif
Вячеслав Л.
Спасибо большое, я все понял.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.