Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не повтарение чисел


kizam ©   (2006-02-13 02:26:00) 

например у меня есть массив   bus[0..8]. есть ещо число,нужно проверить это число в массиве есть или нет,чтото не получается.


CMOS   (2006-02-13 14:37:00) [1]

Лучше здесь использовать множества.

var s: Set of Byte;
 a: Array[0..8] of Byte;
begin
s:= [];//Зануляем множество
for n:= 0 to 5 do
begin
 repeat
   x:= random(10)+1;//Генерируем случайное число
 until not(x in s) //если этого числа еще не было выходим из цикла
 s:= s+[x]; //Запоминаем случ. чило во множество
 a[n]:= x; //Присваеваем элементу массива это число
end;

Все элементы в массиве будут уникальны


Virgo_Style   (2006-02-13 13:03:00) [2]

kizam   (13.02.06 2:26)
массив   bus[ 0.. 8]


kizam   (13.02.06 2:37) [2]
for m:= 1to 5do


?


SkyRanger   (2006-02-13 09:03:00) [3]

randomize;
for i:=1 to 5 do
begin
k:=random(10)+1;
for m:=1 to 5 do
begin
if k<>bus[m] then t:=t+1
end;

Ну во-первых считаем количество begin и end.  У тебя  в самом конце пропущен end.

И еще совет когда пишешь

for m:=1 to 5 do
begin
if k<>bus[m] then t:=t+1
end;

Можно писать так

for m:=1 to 5 do
 if k<>bus[m] then
   t:=t+1


Т.е. если у тебя внутри begin...end только 1 оператор или условие или цикл - можно опустить begin...end Но чтобы не путаться лучше сначала напиши со всеми begin...end и когда все заработает правильно можно убрать старые...

А вообще давай код целиком, а то непонятно де начало, а де конец...


evvcom   (2006-02-13 08:55:00) [4]


> ошыбаюсь

М...дя... Помню в первом классе большой плакат: "ЖИ-ШИ пиши с буквой И". Видимо, сейчас уже и на дешевых плакатах экономят :(

Где-то ошибаешься, точно. Ты не показал, где пишешь в bus, что такое t, где оно инициализируется и пр. Ну и как тебе помочь?


kizam   (2006-02-13 02:37:00) [5]

randomize;
for i:=1 to 5 do
begin
k:=random(10)+1;
for m:=1 to 5 do
begin
if k<>bus[m] then t:=t+1
end;

я вот пишу так, но ошыбаюсь гдето.


Marser   (2006-02-13 02:28:00) [6]

Что не получается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо