Принадлежность элемента массива множеству чисел

  • Автор темы juventine
  • Дата начала
J

juventine

Гость
#1
Вопрос следующий: в Паскале нужно проверять, принадлежит ли элемент массива множеству чисел... но почему-то такая конструкция не работает:

if ( mas in Otr ) then...
где Otr объявляется следующим образом: Otr : array [1..9] of integer = ( -1 , -2 , -3 , -4 , -5 , -6 , -7 , -8 , -9 );

mas : mas : array [0..40] of integer;



в то время как запись if ( mas in [0..9] ) является рабочей...

как быть? где я не прав?

заранее благодарю!
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#2
Вопрос следующий: в Паскале нужно проверять, принадлежит ли элемент массива множеству чисел... но почему-то такая конструкция не работает:

if ( mas in Otr ) then...
где Otr объявляется следующим образом: Otr : array [1..9] of integer = ( -1 , -2 , -3 , -4 , -5 , -6 , -7 , -8 , -9 );

mas : mas : array [0..40] of integer;



в то время как запись if ( mas in [0..9] ) является рабочей...

как быть? где я не прав?

заранее благодарю!


in используется не с массивами а с множествами.
пример Множества
 
J

juventine

Гость
#3
in используется не с массивами а с множествами.


ОК... но почему тогда возникает ошибка при объявлении следующего множества: Otr : set of integer = [ -1 , -2 , -3 , -4 , -5 , -6 , -7 , -8 , -9 ];

Вот что не совсем понятно...

Спасибо!
 
J

juventine

Гость
#5
[Error] Laba1.dpr(11): Sets may have at most 256 elements

Цитата:



Ключевое слово Set объявляет тип множества до 255 дискретных значений.
Перечислимый тип может быть:
Целые числа в диапазоне от 0 до 255
...



integer как бы немного больше :ithx:

ну, как бы с этим все ясно... был невнимателен.. =)

вопрос такой: есть ли в таком случае возможность объявить множество чисел в диапазоне от -1 до -9 = )


Спасибо!
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#6
[Error] Laba1.dpr(11): Sets may have at most 256 elements




ну, как бы с этим все ясно... был невнимателен.. =)

вопрос такой: есть ли в таком случае возможность объявить множество чисел в диапазоне от -1 до -9 = )


Спасибо!
А что мешает написать свою функцию MyIn
например
Код:
function MyIn(El:integer):boolean;
begin
result:=false;
for i:=1 to countEl
begin
if a[i]=el then result:=true;
break;
end;
end;
если массивы данных для поиска большие см. бинарный поиск например.