📜  门| GATE-CS-2017(套装2)|问题 6(1)

📅  最后修改于: 2023-12-03 15:12:44.464000             🧑  作者: Mango

门 | GATE-CS-2017(套装2)|问题 6

这道题目需要你实现一个门类,包括基础门和组合门,以及这些门的特定行为,例如输出和计算等。这道题需要你在OOP的框架下编写代码。

基础门

首先,我们需要实现 Gate 类,它是模拟电路中的基本逻辑门的抽象基类。 Gate 类包括以下三个元素:

  • pins:表示门的输入引脚的数量。
  • label:标志门类型的名称。
  • output:表示门的输出状态。

你需要实现两个方法:

    def get_label(self):
        return self.label
        
    def get_output(self):
        self.output = self.perform_logic()
        return self.output

get_label 方法返回门的类型名称,而 get_output 方法使用 perform_logic 抽象方法计算门的输出,并将其存储在 output 属性中。

基本门

继承基类 Gate,我们可以实现以下基本门类型:BinaryGateUnaryGate,它们仅有一个输出和两个或一个输入引脚。你需要继承 Gate 类并实现以下属性和方法:

BinaryGate
  • __init__(self, n):: 构造方法,它将 n 设为引脚的数目。
  • get_pinA(self): :返回 pinA 上的输入状态 。
  • get_pinB(self): :返回 pinB 上的输入状态 。
UnaryGate
  • __init__(self)::构造方法。
  • get_pin(self)::返回输入状态。
组合门

现在,让我们实现组合门,他们使用基本门类型和其他组合门类型作为输入。我们可以使用以下两个门类型:AndGateOrGate

AndGate

AndGate 继承 BinaryGate 类,我们需要实现以下方法:

  • perform_logic(self)::返回 Pin A 和 Pin B 的逻辑 and
OrGate

OrGate 也继承 BinaryGate 类,我们需要实现以下方法:

  • perform_logic(self)::返回 Pin A 和 Pin B 的逻辑 or
Markdown 格式化代码:
## 门 | GATE-CS-2017(套装2)|问题 6

这道题目需要你实现一个门类,包括基础门和组合门,以及这些门的特定行为,例如输出和计算等。这道题需要你在OOP的框架下编写代码。

### 基础门

首先,我们需要实现 `Gate` 类,它是模拟电路中的基本逻辑门的抽象基类。 `Gate` 类包括以下三个元素:

- `pins`:表示门的输入引脚的数量。
- `label`:标志门类型的名称。
- `output`:表示门的输出状态。

你需要实现两个方法:

def get_label(self): return self.label

def get_output(self): self.output = self.perform_logic() return self.output


`get_label` 方法返回门的类型名称,而 `get_output` 方法使用 `perform_logic` 抽象方法计算门的输出,并将其存储在 `output` 属性中。

### 基本门

继承基类 `Gate`,我们可以实现以下基本门类型:`BinaryGate`和`UnaryGate`,它们仅有一个输出和两个或一个输入引脚。你需要继承 `Gate` 类并实现以下属性和方法:

#### `BinaryGate`

- `__init__(self, n):`: 构造方法,它将 `n` 设为引脚的数目。
- `get_pinA(self):` :返回 `pinA` 上的输入状态 。
- `get_pinB(self):` :返回 `pinB` 上的输入状态 。

#### `UnaryGate`

- `__init__(self):`:构造方法。
- `get_pin(self):`:返回输入状态。

### 组合门

现在,让我们实现组合门,他们使用基本门类型和其他组合门类型作为输入。我们可以使用以下两个门类型:`AndGate`和`OrGate`。

#### `AndGate`

`AndGate` 继承 `BinaryGate` 类,我们需要实现以下方法:

- `perform_logic(self):`:返回 `Pin` A 和 `Pin` B 的逻辑 `and`。

#### `OrGate`

`OrGate` 也继承 `BinaryGate` 类,我们需要实现以下方法:

- `perform_logic(self):`:返回 `Pin` A 和 `Pin` B 的逻辑 `or`。