ТИ
Тесса Иш

Делфи, вывод в мемо случайных чисел без повторов из массива. массив от 1 до 35.

Всем привет, хочу вывести в мемо случайные числа без повторов от 1 до 35. Как это реализовать?
Вот мой код:
procedure TForm1.Button1Click(Sender: TObject);
var
a : array [1..35] of integer;
i, newPos, tmpA:integer;
begin
for i:=1 to 35 do a:=35 + i;
Randomize;

for i:=1 to 5 do begin
newPos := Random (10);
tmpA:= a[newPos];
a[newPos]:=a;
a:=tmpA;
memo1.Lines.Add(inttostr(tmpA));
end;

Выводится но значение выше 35... Код не мой, брал с какого то форума, пытался править под себя..

Фр
Фрррррррррр

implementation

{$R *.dfm}

const
Len = 35;

//Не прибегая к помощи математики
procedure TForm1.Button1Click(Sender: TObject);
var
a: array [1 .. Len] of integer;
i, k, n: integer;
begin
n := Len;
Memo1.Clear;
for i := 1 to Len do
a[і] := i;
for i := 1 to Len do
begin
k := random(n) + 1;
Memo1.Lines.Add(IntToStr(a[k]));
a[k] := a[n];
dec(n)
end
end;

//С помощью предварительно рассчитанных или подобранных
//коэффициентов линейно-конгруэнтного генератора
procedure TForm1.Button2Click(Sender: TObject);
const
m = 36;
a = 13;
c = 19;
var
b: array [1 .. Len] of integer;
i, Seed: integer;
begin
Memo1.Clear;
Seed := random(Len) + 1;
for i := 1 to Len do
b[і] := i;
for i := 1 to m do
begin
Seed := (Seed * a + c) mod m;
if Seed > 0 then
Memo1.Lines.Add(IntToStr(b[Seed]))
end
end;

initialization
randomize;

end.

Lubov
Lubov

Пишите на почту или в асю 586178755

АШ
Алексей Шанов

Попробуй так:
procedure TForm1.Button1Click(Sender: TObject);
var
N,f,g:integer;
a:array[0..35]of integer;
begin
Randomize;
N:=35;
for f:=1 to N do a[f]:=f;
for f:=1 to N do begin
g:=Trunc(Random*(N-f)+f+0.5);
memo1.Lines.Add(inttostr(a[g]));
a[g]:=a[f];
end;
end;

ЮК
Юлия Кравцова

мой вариант проги 100% работает:
procedure TForm1.Button1Click(Sender: TObject);
var
w,e:integer;
q:array[1..35]of integer;
begin
for w:=1 to 35 do q[w]:=0;
w:=0;
while q[36]=0 do
w:=w+1;
randomize;
e:=Random(35);
if q[w] = 0 then q[w]:=e;
memo1.Lines.Add(inttostr(q[w]));
end;
end;

Похожие вопросы
С++ двухмерныее и многомерные массивы. int k[1][1]={{1}{2}}; как вивести например 2рой массив без вывода первого?
Мемо в Делфи, небольшая проблемка. Просьба помочь
Округление чисел в делфи 7
С помощью датчика случайных чисел задан одномерный массив.
Дан массив из 15 элементов задаваемые с помощью датчика случайных чисел. найти минимальный элемент массива. Помогите))
Массив. Определить имеется ли в массиве целых чисел хотя бы один «0»
По поводу массивов в Делфи 7
Создайте массив А [1..8] с помощью генератора случайных чисел с элементами от –10 до 10
Помогите пожалуйста с двумерным массивом, не пойму, почему не выводит значение чисел.
Проблема с выводом вопросов случайным образом на Делфи.