Условие:
9.2. Реализовать объект из двух пересекающихся сдвиговых регистров x и y. Каждый сдвиговый регистр имеет свой размер (количество ячеек) N{x} ≥slant 1 и N{y} ≥slant 1. Объект имеет входную ячейку x{0} и выходную - y{Ny}.
Реализовать конструктор с передачей в качестве параметров размеры сдвиговых регистров.
Реализовать функцию shift, которой передаётся входное значение и которая возвращает выходное значение. При записи значения во входную ячейку, значение из последней ячейки сдвигового регистра x, записывается во входную ячейку сдвигового регистра y. Из последней ячейки сдвигового регистра y значение выталкивается и является выходным значением функции shift.
Реализовать функции смещения одного сдвигового регистра относительно другого. Если при смещении в одну из сторон достигнута крайняя ячейка, то дальнейшего смещения в эту сторону не происходит.
Реализовать функции просмотра содержимого ячеек объекта в соответствующей форме (в форма креста)
Решение:
Для реализации объекта из двух пересекающихся сдвиговых регистров x и y на языке Python, мы можем создать класс, который будет содержать необходимые методы и атрибуты. Давайте разберем решение по шагам.
Шаг 1: Определение класса и конструктора
Создадим класс
ShiftRegister, который будет принимать размеры регистров Nx и Ny в качестве параметров конструктора. Внутри класса мы инициализируем два списка для хранения значений регистров.Теперь реализуем метод , который будет принимать входное значение, обновлять регистры и возвращать выходное значение. Теперь добавим методы для смещения регистров. Мы создадим методы и , которые будут сдвигать регистры влево и вправо соответственно. Добавим метод для отображения содержимого регистров в форме креста. Теперь объединим все части в один класс: Теперь у нас есть класс , который реализует два пересекающихся сдвиговых регистра с необходимыми функциями. Вы можете создать объект этого класса, вызывать метод , а также смещать и отображать содержимое регистров.
