Код на С++
Данная задача была размещена для задач С++ и решение будет на этом языке
#include
bool notGate(bool input) {
return !input;
}
bool andGate(bool input1, bool input2) {
return input1 && input2;
}
bool orGate(bool input1, bool input2) {
return input1 || input2;
}
bool nandGate(bool input1, bool input2) {
return !(input1 && input2);
}
bool norGate(bool input1, bool input2) {
return !(input1 || input2);
}
int main() {
bool A = 1;
bool B = 1;
bool C = 0;
// Step 1: A OR (NOT B AND C) OR (A AND B)
bool F1 = orGate(A, orGate(andGate(notGate(B), C), andGate(A, B)));
// Step 2: Using NAND gates
bool notA = notGate(A);
bool notB = notGate(B);
bool notC = notGate(C);
bool B_or_notC = notGate(norGate(B, notC));
bool notA_or_notB = notGate(norGate(notA, notB));
bool andResult = nandGate(notA, nandGate(B_or_notC, notA_or_notB));
bool F2 = notGate(andResult);
std::cout << "F (using AND, OR, NOT): " << F1 << std::endl;
std::cout << "F (using NAND): " << F2 << std::endl;
return 0;
}
Этот код вычисляет значение функции F с использованием базисов {И, ИЛИ, НЕ} и {И-НЕ}. Вы можете проверить, что результат будет одинаковым для обеих реализаций.
2.Записать заданную функцию через операцию «И-НЕ».
3.По полученному в п.1.2 выражению построить логическую схему в базисе {И-НЕ}.
Указать на схемах из п.1.1 и п.1.3 значения логических сигналов на выходе каждого логического элемента для заданной комбинации входных сигналов. Значение f ФАЛ в п.1.1 должно быть равно f ФАЛ в п.1.3.