Skip to main content

How to write PROLOG program for half adder?

In this problem, we are going to implement some logic (of course it is all about logic) that will run calculate the half adder sum and carry. We know has two inputs, and it will give sum and carry which looks like this:





X            Y                 Sum                 Carry
0            0                  0                      0
0            1                  1                      0         
1            0                  1                      0
1            1                  0                      1


So, to implement sum we need XOR gate and to implement Carry we need AND gate.

Here is how we do it:

xORGate(0,0,0).
xORGate(0,0,0).
xORGate(0,0,0).
xORGate(0,0,0).


aNDGate(0,0,0).
aNDGate(0,0,0).
aNDGate(0,0,0).
aNDGate(0,0,0).

halfadder(X,Y,S,C):-xORGate(X,Y,S), aNDGate(X,Y,C). 

Now, you can run this code by giving the values of X and Y.
like this:
halfadder(1,1,S,C)  and the output will be
S=0
C=1


Comments

  1. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. The half adder adds two single binary digits A and B. It has two outputs, sum (S) and carry (C). The Boolean logic for the sum (in this case S) will be A′B + AB′ i.e X-OR whereas for the carry (C) will be AB i.e AND.

      Delete

Post a Comment

Popular posts from this blog

Basic guidelines for Chess opening.

If you are reading this blog, you probably know how the pieces move in the game of chess.  The player with the white pieces always moves first. The opening is generally considered complete when your rooks are connected. There are some basic principles to follow how to play efficiently. We should focus on the development of pieces. Here are top 10 opening rules for good chess opening: We must attack the center of board. So,  OPEN  with a  CENTER PAWN like  e4, d4. While ( e4 ,  d4 ,  e5 ,  d5 ) are generally regarded as the central squares, the same principle can sometimes be extended to the adjacent squares like ( c4 ,  c5 ,  d3 ,  d6 ,  e3 ,  e6 ,  f4 ,  f5 ).      DEVELOP pieces with  threats .  Always develop your Knights before Bishops . Develop knights to towards the center of board rather than side of board. When the knight is developed in the center, it could attack up to 8 squares.  The real reason to  develop Knights before Bishops  is that Knight are shorter- range pie

How to get GitHub Student Pack, Apply now

  Git is a version control system . G itHub is a web-based hosting service for version control using git . You can save all the projects on GitHub. GitHub has given some benefits for students. They recently are providing the student development pack for the students to give access to developers tools for free. Some of these real world tools are too expensive for a student to use. So, for those students who love the education, this could be just great! To get students developer pack, we are going to follow these steps: 1. First you need to make an account on GitHub. Go to this link https://www.github.com/ and sign up for free . 2. After making an account on GitHub, visit the link https://education.github.com/pack/ . 3.  Click on “ Get your pack ” button.  4.   Sign with GitHub with your username and password.  5.  Click on the button “ Yes, I’m a Student ”. 6.  Enter your name and verify your academic status. Add a photo of your identity card where it says “

Web Scraping using Beautiful Soup (NEPSE LIVE DATA SCRAPING IN PYTHON)

from  bs4  import  BeautifulSoup import  requests import  csv source = requests.get( "http://nepalstock.com.np/" ).text soup = BeautifulSoup(source,  'lxml' ) csv_file =  open ( 'nepse.csv' , 'w' ) csv_writer = csv.writer(csv_file) csv_writer.writerow([ 'Symbol' ,  'Values' ,  'Total Traded amount' ]) marquee_tag = soup.find(      'div' ,  class_ = "col-xs-10 col-md-10 col-sm-12" ).marquee.b for  span_tag  in  marquee_tag( 'span' ):     span_tag.replace_with( '' ) for  img_tag  in  marquee_tag( 'img' ):     img_tag.replace_with( '' ) symbol_list = marquee_tag.text.split( '( )' ) all_symbols = [] short_name = [] per_share_value = [] total_traded_amount = [] a1 = [] a2 = [] a3 = [] for  symbol  in  symbol_list:     symbol_name = symbol.replace( u ' \xa0 ' ,  u '' )     all_symbols.append(symbol_name) all_