I need help annotating this code.  def OR(a, b):     if a == 1:         return 1     elif b == 1:         return 1     else:         return 0    def NOR(a, b):     if a == 0 and b == 0:         return 1     elif a == 0 and b == 1:         return 0     elif a == 1 and b == 0:         return 0     elif a == 1 and b == 1:         return 0    def AND(a, b):     if a == 1 and b == 1:         return 1     else:         return 0 def logic_circuit(A,B,C):     Q = OR(NOR(A,B),AND(B,C))     return(Q) A = int(input("Enter binary input For A: ")) B = int(input("Enter binary input For B: ")) C = int(input("Enter binary input For C: ")) Q = logic_circuit(A, B, C) print("Output: ", Q)

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I need help annotating this code. 

def OR(a, b):
    if a == 1:
        return 1
    elif b == 1:
        return 1
    else:
        return 0
  
def NOR(a, b):
    if a == 0 and b == 0:
        return 1
    elif a == 0 and b == 1:
        return 0
    elif a == 1 and b == 0:
        return 0
    elif a == 1 and b == 1:
        return 0
  
def AND(a, b):
    if a == 1 and b == 1:
        return 1
    else:
        return 0

def logic_circuit(A,B,C):
    Q = OR(NOR(A,B),AND(B,C))
    return(Q)

A = int(input("Enter binary input For A: "))
B = int(input("Enter binary input For B: "))
C = int(input("Enter binary input For C: "))
Q = logic_circuit(A, B, C)
print("Output: ", Q)

Expert Solution
Step 1

The annotations in Python are provided in 4 different manners:

  1. Annotations for simple parameters
    • def foobar(a: expression, b: expression = 5):
  2. Annotations for excess parameters
    • def foobar(*args: expression, *kwargs: expression):
  3. Annotations for nested parameters
    • def foobar((a: expression, b: expression), (c: expression, d: expression)):
  4. Annotations for return type
    • def foobar(a: expression)->expression:
Step 2
# User defined function for logic OR
# The function takes two parameters and returns a single int
def OR(a: int, b: int)->int:
# If a is equal to 1 return 1
if a == 1 :
return 1
# If b is equal to 1 return 1
elif b == 1 :
return 1
# If a and b is equal to 0 return 0
else :
return 0


# User defined function for logic NOR
# The function takes two parameters and returns a single int
def NOR(a: int, b: int)->int:
# If a is equal to 0 and b is also equal to 0 return 1
if a == 0 and b == 0 :
return 1
# If a is equal to 0 and b is equal to 1 return 0
elif a == 0 and b == 1 :
return 0
# If a is equal to 1 and b is also equal to 0 return 0
elif a == 1 and b == 0 :
return 0
# If a is equal to 1 and b is also equal to 1 return 0
elif a == 1 and b == 1 :
return 0


# User defined function for logic AND
# The function takes two parameters and returns a single int
def AND(a: int, b: int)->int:
# Return 1 if both a and b are equal to 1
if a == 1 and b == 1 :
return 1
# Return 0 otherwise
else :
return 0


# User defined function for defining a logical circuit
# The function takes three parameters and returns a single int
def logic_circuit(A: int, B: int, C: int)->int:
# Calling above defined functions with
# parameters passed to them
# The function calls simulate a logic circuit
# The result is stored in a variable Q
# The value in Q is returned
Q = OR(NOR(A, B), AND(B, C))
return Q


# User inputs for bits A, B and C
A = int(input("Enter binary input For A: "))
B = int(input("Enter binary input For B: "))
C = int(input("Enter binary input For C: "))

# Calling function logic_circuit with A, B and C
# passed as parameters
# The result is stored in a variable Q
# The value of Q is returned
Q = logic_circuit(A, B, C)
print("Output: ", Q)

NOTE:

The definition for NOR(a, b) can be changed as follows:

# User defined function for logic NOR
# The function takes two parameters and returns a single int
def NOR(a: int, b: int)->int:
# If a is equal to 0 and b is also equal to 0 return 1
if a == 0 and b == 0 :
return 1
# Return 0 for all other value combination of a and b
else:
return 0
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Datatypes
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education