Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.01;
Скачать: CL | DM;

Вниз

проверить содержится ли значение в массиве   Найти похожие ветки 

 
Ak47   (2009-09-03 15:43) [0]

емеется статический массив:

 arr_index_Headers: array [0..7] of Integer = (0, 8, 12, 18, 21, 28, 31, 38);

можно ли без цикла проверить содержится ли значение в массиве, пробовал использовать IN не получилось.


 
Romkin ©   (2009-09-03 15:46) [1]

Можно!
Result := False;
if arr_index_Headers[0] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[1] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[2] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[3] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[4] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[5] = A then
begin
 Result := True;
 Exit;
end;
if arr_index_Headers[6] = A then
begin
 Result := True;
 Exit;
end;if arr_index_Headers[7] = A then
begin
 Result := True;
 Exit;
end;


 
Ak47   (2009-09-03 15:48) [2]

круто, а если серьезно


 
cwl ©   (2009-09-03 15:48) [3]

создать массив, каждый элемент A[i] которого будет показывать - содержится ли i в вышеприведенном массиве
// размер массива - по обстоятельствам %>


 
Leonid Troyanovsky ©   (2009-09-03 15:49) [4]


> Ak47   (03.09.09 15:43)  
> емеется статический массив:

See Set.

Если в жизни это дейс-но Integer, то
http://delphimaster.net/view/2-1251711913/
and TBits class.

--
Regards, LVT.


 
Romkin ©   (2009-09-03 15:49) [5]

Но можно проще:
const
 index_Headers: set of byte = [0, 8, 12, 18, 21, 28, 31, 38];

и юзать in


 
Anatoly Podgoretsky ©   (2009-09-03 15:51) [6]

> Ak47  (03.09.2009 15:43:00)  [0]

IN это для множеств.


 
Ak47   (2009-09-03 15:51) [7]


> Но можно проще:const  index_Headers: set of byte = [0, 8,
>  12, 18, 21, 28, 31, 38];и юзать in


вот то что
> Leonid Troyanovsky ©   (03.09.09 15:49) [4]
> > Ak47   (03.09.09 15:43)  > емеется статический массив:
> See Set


то что надо. про set совсем забыл. Спасибо.


 
Дмитрий С ©   (2009-09-03 16:18) [8]

А IN для сета не использует циклы?


 
Leonid Troyanovsky ©   (2009-09-03 16:32) [9]


> Дмитрий С ©   (03.09.09 16:18) [8]

> А IN для сета не использует циклы?

Циклы бывают разные. Тут, видимо, имелось ввиду ЯВУ.
Возможно, для конкретного 0..7 может что и есть проще.

--
Regards, LVT.


 
Romkin ©   (2009-09-03 18:02) [10]


> А IN для сета не использует циклы?

Да вообще-то не должен.


 
Sha ©   (2009-09-03 18:38) [11]

//имеется статический массив:
//arr_index_Headers: array [0..7] of Integer = (0, 8, 12, 18, 21, 28, 31, 38);
//можно ли без цикла проверить, содержится ли значение в массиве?
procedure TForm1.Button1Click(Sender: TObject);
const
 //0100 0000 1001 0000 0010 0100 0001 0001 0000 0001
 ArrIndex= $4090241101;
 Captions: array[boolean] of string= ("нет", "да");
var
 i: integer;
begin;
 i:=StrToIntDef(Edit1.Text,-1);
 Edit2.Text:=Captions[(dword(i)<=63) and odd(ArrIndex shr i)];
 end;


 
Anatoly Podgoretsky ©   (2009-09-03 19:04) [12]

> Дмитрий С  (03.09.2009 16:18:08)  [8]

Не использует, только DIV и MOD и всего один раз.
IN хорошо оптимизирован



Страницы: 1 вся ветка

Текущий архив: 2009.11.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
2-1252953846
cyberspy85
2009-09-14 22:44
2009.11.01
не запускается скрипт


15-1250698612
Cyrax
2009-08-19 20:16
2009.11.01
Раздаточный материал с фотографиями серых телефонов


6-1209387329
pavel_guzhanov
2008-04-28 16:55
2009.11.01
Адрес приложения, написанного с использованием IntraWeb


15-1252159778
Ruzzz
2009-09-05 18:09
2009.11.01
Turbo Delphi не хочет компилировать .rc


2-1252341586
fics)
2009-09-07 20:39
2009.11.01
Вопрос по копмонентам