RosettaCodeData/Task/Ternary-logic/Free-Pascal/ternary-logic-2.free
2019-09-12 10:33:56 -07:00

46 lines
1.6 KiB
Text

program ternarytests;
{$mode objfpc}
uses
ternarylogic;
begin
writeln(' a AND b');
writeln('F':7,'U':7, 'T':7);
writeln('F|',tFalse and tFalse:7,tFalse and tMaybe:7,tFalse and tTrue:7);
writeln('U|',tMaybe and tFalse:7,tMaybe and tMaybe:7,tMaybe and tTrue:7);
writeln('T|',tTrue and tFalse:7,tTrue and tMaybe:7,tTrue and tTrue:7);
writeln;
writeln(' a OR b');
writeln('F':7,'U':7, 'T':7);
writeln('F|',tFalse or tFalse:7,tFalse or tMaybe:7,tFalse or tTrue:7);
writeln('U|',tMaybe or tFalse:7,tMaybe or tMaybe:7,tMaybe or tTrue:7);
writeln('T|',tTrue or tFalse:7,tTrue or tMaybe:7,tTrue or tTrue:7);
writeln;
writeln(' NOT a');
writeln('F|',not tFalse:7);
writeln('U|',not tMaybe:7);
writeln('T|',not tTrue:7);
writeln;
writeln(' a XOR b');
writeln('F':7,'U':7, 'T':7);
writeln('F|',tFalse xor tFalse:7,tFalse xor tMaybe:7,tFalse xor tTrue:7);
writeln('U|',tMaybe xor tFalse:7,tMaybe xor tMaybe:7,tMaybe xor tTrue:7);
writeln('T|',tTrue xor tFalse:7,tTrue xor tMaybe:7,tTrue xor tTrue:7);
writeln;
writeln('equality/equivalence and multiplication');
writeln('F':7,'U':7, 'T':7);
writeln('F|', tFalse * tFalse:7,tFalse * tMaybe:7, tFalse * tTrue:7);
writeln('U|', tMaybe * tFalse:7,tMaybe * tMaybe:7,tMaybe * tTrue:7);
writeln('T|', tTrue * tFalse:7, tTrue * tMaybe:7, tTrue * tTrue:7);
writeln;
writeln('IMP. a.k.a. IfThen -> not(a) or b');
writeln('F':7,'U':7, 'T':7);
writeln('T|',tTrue >< tTrue:7,tTrue >< tMaybe:7,tTrue >< tFalse:7);
writeln('U|',tMaybe >< tTrue:7,tMaybe >< tMaybe:7,tMaybe >< tFalse:7);
writeln('F|',tFalse >< tTrue:7, tFalse >< tMaybe:7,tFalse >< tFalse:7);
writeln;
end.