Форум: "Прочее";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];
Внизпроверить содержится ли значение в массиве Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.016 c