Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
1-1222168796
Игорь
2008-09-23 15:19
2009.11.01
Как сменить пользователя программно?


15-1252009806
Юрий
2009-09-04 00:30
2009.11.01
С днем рождения ! 4 сентября 2009 пятница


2-1252760308
EH
2009-09-12 16:58
2009.11.01
DevExpress TVerticalGrid + TcxComboBox


15-1251750605
Юрий
2009-09-01 00:30
2009.11.01
С днем рождения ! 1 сентября 2009 вторник


15-1251715556
Kolan
2009-08-31 14:45
2009.11.01
Компонент Линия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский