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.
использовать Чертежник
алг
нач
выбрать чернила (красный)
сместиться в точку (1, 1)
опустить перо
сместиться в точку (4, 7)
сместиться в точку (5, 7)
сместиться в точку (8, 1)
сместиться в точку (7, 1)
сместиться в точку (6.2,2.5)
сместиться в точку (2.8,2.5)
сместиться в точку (2, 1)
сместиться в точку (1, 1)
поднять перо
сместиться в точку (3.3,3.5)
опустить перо
сместиться в точку (5.7,3.5)
сместиться в точку (5, 5)
сместиться в точку (4, 5)
сместиться в точку (3.3,3.5)
поднять перо
сместиться в точку (0, 0)
кон
2.
использовать Чертежник
алг
нач
сместиться в точку (2.7,1)
опустить перо
сместиться в точку (6,9.8)
сместиться в точку (9.3,1)
сместиться в точку (1,6)
сместиться в точку (11,6)
сместиться в точку (2.7,1)
поднять перо
сместиться в точку (0,0)
кон
3.
использовать Чертежник
алг
нач
сместиться в точку (3,7)
нц 5 раз
опустить перо
сместиться на вектор (0,-2)
сместиться на вектор (-2,0)
поднять перо
сместиться на вектор (3,1)
кц
сместиться в точку (0,0)
кон
Объяснение:
Смотри картинки