Halbaddierer

Einleitung:

halbaddierer

Aufgabe:

Man erstelle Computerprogramme, die einen Halbaddierer simulieren.

Analyse:

uebertrag
Beim Übertrag müssen a=1 UND b=1 sein (Konjunktion)
summe
Bei der Summe muss a=1 UND b=0 sein ODER a=0 UND b=1.

Zum Probieren:

Maxima Code zu diesen Abbildungen:

WW:{true,false} /* WW = Wahrheitswerte */;
Zustand:listify(cartesian_product(WW,WW));
u(x):=x[1] and x[2];
s(x):=x[1] and not x[2] or not x[1] and x[2];
Uebertrag:map(u,Zustand);
Summe:map(s,Zustand);

Maxima-Code (erste Variante für den Halbaddierer):

r(x,y):=x*y$
p(x,y):=x+y-x*y$
s(x,y):=1-r(p(x,1-y),p((1-x),y))$
u(x,y):=r(x,y)$
print("Halbaddierer")$
print(["a","b","s","u"])$
for x:1 thru 0 step -1 do
for y:1 thru 0 step -1 do
print([x,y,s(x,y),u(x,y)])$

wxMaxima mit Begriffserklärung:

halladdierer

Vroomlab:

vroom-addierer
Das Programm musste etwas modifiziert werden.