Помощь - Поиск - Пользователи - Календарь
Полная версия: множества
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-Екатерина-
var
cf: set of 100..107;
a: integer;
begin
cf:=[ ];
a:=12;
cf:=cf+[a];
writeln (' ',a in cf,' ', size of (cf));
end.

не пойму почему меняя значения в описании типа set и давая разные значения а на экран выводится то false 2, то false 1, то же с true
от чего это зависит??
volvo
Цитата
от чего это зависит??
От значений, которые задаются граничными для множества... Все дело здесь - во внутреннем представлении множества: это набор битов, по одному на каждый допустимый элемент множества. То есть, если ты задашь
cf: set of 0 .. 7;
то для представления этого множества достаточно 8 бит (1 байт), если
cf: set of 0 .. 9;
, то понадобится уже 10 бит, а это 2 байта...

Теперь по поводу True/False... Всегда, когда значение A находится в интервале, разрешенном базовым диапазоном множества, результат будет True. Во всех остальных случаях - False...

Но твоя программа, например, и на диапазоне
cf: set of 100 .. 107;
выдает размер в 2 байта. Почему? Попробуй догадаться сама. Нужно немного подправить программу, чтобы результат всегда был ожидаемым и правильным... smile.gif

-Екатерина-
спасибо)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.