Помощь - Поиск - Пользователи - Календарь
Полная версия: Заполнение массива разными числами
Форум «Всё о Паскале» > 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
Вячеслав Л.
Спасибо большое, я все понял.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.