[PASCALABC] Создать объект BitString для работы с битовой строкой длиной 8...

0 голосов
107 просмотров

[PASCALABC] Создать объект BitString для работы с битовой строкой длиной 8 бит. Определить метод инициализации бинарного числа, а также получения его инверсии и дополнительного кода (инверсия бинарного числа с добавлением единицы к младшему разряду). Написать программу, демонстрирующую работу с созданным классом


Информатика (14 баллов) | 107 просмотров
0

PascalABC.NET? Это где его так глубоко учат, что добрались до пользовательских классов?

Дан 1 ответ
0 голосов

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.6k баллов)
0

https://znanija.com/task/36607789 , помогите пожалуйста прошу Вас ... 71 б