Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Randomize

Автор: Anastacia Adesso 27.09.2006 20:16

Прикрепленный файл  LATLOTO.PAS ( 719 байт ) Кол-во скачиваний: 390
Не скажите, как сделать эту программу, чтоб случайные числа выпадали ОБЯЗАТЕЛЬНО разные?
Please

Автор: volvo 27.09.2006 21:11

Процедуру masivs переделать так:

    procedure masivs;
var used: set of byte;
begin
randomize;
used := [];
for i:=1 to n do begin
repeat
ar[i] := 1 + random(35); { <--- от 1 до 35 }
until not(ar[i] in used);
used := used + [ar[i]];
end;

writeln('Skaitli 5 no 35');writeln;
end;

Автор: Anastacia Adesso 27.09.2006 21:16

volvo

А можно как то без множеств? У меня препод выдаст что мы такое не умеем

Автор: volvo 27.09.2006 21:24

Можно... Только во-первых, будет сложнее для понимания, а во-вторых - больше кода... Нужно?

Вот, объем кода не особо увеличился smile.gif :

    procedure masivs;
var
found: boolean;
j: integer;
begin
randomize;
for i:=1 to n do begin
repeat
ar[i] := 1 + random(35);
found := false;
for j := 1 to i - 1 do
if ar[j] = ar[i] then found := true;
until not found;
end;

writeln('Skaitli 5 no 35');writeln;
end;

Автор: Anastacia Adesso 27.09.2006 21:43

Спасибо огромное!!!
Я кстати эту поняла!!!

Автор: lapp 28.09.2006 17:39

Сообщение Madam перенесено в отдельную тему: http://forum.pascal.net.ru/index.php?showtopic=12860&hl=