Лабораторная 2. Статические структуры данных в оперативной памяти

  1. Разработать функции для низкоуровневого управления байтовыми множествами, реализующие операции in, +, -, * и функции include, exclude средствами прямого доступа к оперативной памяти множества. Множество состоит из 32 байт, каждый элемент множества соответствует одному из битов множества, что и определяет 256 элементов множества. Например, значение 0 соответствует нулевому младшему биту начального байта множества, значение 1 соответствует первому младшему биту начального байта множества, значение 7 - старшему биту начального байта множества, значение 8 - нулевому младшему биту следующего байта множества и т.д. Значение 0 бита говорит об отсутствии соответствующего элемента во множестве, значение 1 бита говорит о наличии соответствующего элемента во множестве.
     { тип множества }
    type ByteSet=set of byte;
    
     { аналог операции in }
    function inSet(e:byte; bset:ByteSet):boolean;
    
     { аналог операции + }
    function addSet(b1set,b2set:ByteSet):ByteSet; 
    
     { аналог операции - }
    function subSet(b1set,b2set:ByteSet):ByteSet; 
    
     { аналог операции * }
    function mulSet(b1set,b2set:ByteSet):ByteSet; 
    
     { аналог функции include }
    function includeSet(e:byte; bset:ByteSet):ByteSet;
    
     { аналог функции exclude }
    function excludeSet(e:byte; bset:ByteSet):ByteSet;
    
    Проверить работу функций.