It's my First day of Prolog and here is the Half Added login in Prolog. It is not a solution but it just works.
1 2 3 4 5 6 7 8  high(1).
low(0).
xor(X,Y,Sum) : (((low(X) , low(Y)) ; (high(X) , high(Y))) , low(Sum)) ; (((low(X) , high(Y)) ; (high(X) , low(Y))) ,high(Sum)).
and(X,Y,Carry) : (high(X), high(Y), high(Carry)) ; (((low(X) , low(Y)) ; (low(X) , high(Y)) ; (high(X) , low(Y))) , low(Carry)).
half_adder(X,Y,Sum,Carry): xor(X,Y,Sum) , and(X,Y,Carry).

for Xor > if [(X and Y is low or X and Y is high) and sum is low. ] OR [ (if X is low and Y is high or X is high and Y is low) and Sum is high]
for and > if (X is high and Y is High And Carry is high) OR [(if X is low and Y is low or X is low and Y is high or X is high and Y is low) and Carry is low]
low = 0 and high = 1
Output:
prolog task3.pl 
The half adder adds two binary digits called as augend and addend and produces two outputs as sum and carry; XOR is applied to both inputs to produce sum and AND gate is applied to both inputs to produce carry. The full adder adds 3 one bit numbers, where two can be referred to as operands and one can be referred to as bit carried in. And produces 2bit output, and these can be referred to as output carry and sum.
Half  Adder Truth Table 
0 comments:
Post a Comment