type
BitSring = class
private
BitStr: byte;
function GetStr := BitStr;
function StrToByte(s: string): byte;
begin
Result := 0;
s := s.Left(8);
var p: byte := 1;
var len := s.Length;
for var i := len downto 1 do
begin
if s[i] = '1' then
Result += p;
p := p shl 1;
end
end;
public
property bit8: byte read GetStr;
constructor(st: string);
begin
BitStr := StrToByte(st);
end;
constructor(n: byte);
begin
BitStr := n;
end;
constructor;
begin
BitStr := 0;
end;
function Inv8 := new BitSring(not BitStr);
function Mod8 := new BitSring(not BitStr + 1);
function ToString: string; override;
begin
Result := '';
var n: byte := BitStr;
while n > 0 do
begin
Result := (if n mod 2 <> 0 then '1' else '0') + Result;
n := n shr 1
end;
var len := Result.Length;
if len < 8 then
Result := '0' * (8 - len) + Result
end;
end;
begin
var x := new BitSring(ReadString);
Println(x);
Println(x.Inv8);
Println(x.Mod8);
end.
Пример работы:
1011011
01011011
10100100
10100101
Поделитесь своими знаниями, ответьте на вопрос:
Контрольні питання 1. Що таке електронна таблиця і яке її призначення? 2. Як позначаються стовпці і рядки в ЕТ? 3. Які типи даних опрацьовують ЕТ? 4. Що зображено в клітинці після введення в неї формули?Як побачити формулу? 5. Як виконати копіювання формули? 6. Як задати чи змінити деякий формат відображення чисел? 7. Як розграфити таблицю? 8. Як задати колір клітинкам і колір шрифта? 9. Які основні прийоми автоматизації обчислень в ЕТ? 10. Як побудувати діаграму в ЕТ?
165
Объяснение:
Формула включений и исключений для двух множеств:
A ИЛИ B = A + B - A И B
Формула включений и исключений для трех множеств:
A ИЛИ B ИЛИ C = A + B + C - A И B - A И C - B И C + A И B И C
& = И
| = ИЛИ
ХИЖИНА ИЛИ ДОМ = ХИЖИНА + ДОМ - ХИЖИНА И ДОМ
ХИЖИНА И ДОМ = ХИЖИНА + ДОМ - ХИЖИНА ИЛИ ДОМ
ХИЖИНА И ДОМ = 80 + 50 - 110 = 130 - 110 = 20
ДОМ ИЛИ ХИЖИНА ИЛИ ЖИЛИЩЕ = ДОМ + ХИЖИНА + ЖИЛИЩЕ - ДОМ И ЖИЛИЩЕ - ЖИЛИЩЕ И ХИЖИНА - ХИЖИНА И ДОМ + ДОМ И ХИЖИНА И ЖИЛИЩЕ
ДОМ ИЛИ ХИЖИНА ИЛИ ЖИЛИЩЕ = 50 + 80 + 100 - 20 - 30 - 20 + 5 = 165