FUNCTION ANDA(X,Y) IF X=1 AND Y=1 THEN LET ANDA=1 ELSE LET ANDA=0 END IF END FUNCTION FUNCTION ORA(X,Y) IF X=0 AND Y=0 THEN LET ORA=0 ELSE LET ORA=1 END IF END FUNCTION FUNCTION NOTA(X) IF X=1 THEN LET NOTA=0 ELSE LET NOTA=1 END IF END FUNCTION FUNCTION XORA(X,Y) IF X=Y THEN LET XORA=0 ELSE LET XORA=1 END IF END FUNCTION PRINT PRINT "< AND OR NOT だけで作る論理回路 >" PRINT PRINT "A と B の真偽が異なる時だけ出力が 1 になる。" PRINT " このような回路を「不一致回路」という。" PRINT PRINT " A B ∧ ∨ f3 F F’" PRINT " ================================" FOR t=1 TO 4 READ a,b LET f1=ANDA(a,b) LET f2=ORA(a,b) LET f3=NOTA(f1) LET f4=ANDA(f2,f3) LET f5=XORA(a,b) PRINT " ";a;" ";b;" ";f1;" ";f2;" ";f3;" ";f4;" ";f5 NEXT t DATA 1,1,1,0,0,1,0,0 PRINT PRINT " 1 : 真 0 : 偽" PRINT " ∧ = AND ( A, B )" PRINT " ∨ = OR ( A, B )" PRINT " f3 = N0T ( ∧ )" PRINT " F = AND ( ∨, f3 )" PRINT " F'= XOR ( A, B )" PRINT PRINT PRINT PRINT "A と B の真偽が異なる時だけ出力が 1 になる。" PRINT " これを「排他的論理和」という。" PRINT PRINT " A B NA NB f3 f4 F F’" PRINT " ====================================" FOR t=1 TO 4 READ a,b LET f1=NOTA(a) LET f2=NOTA(b) LET f3=ANDA(f1,b) LET f4=ANDA(a,f2) LET f5=ORA(f3,f4) LET f6=XORA(a,b) PRINT " ";a;" ";b;" ";f1;" ";f2;" ";f3;" ";f4;" ";f5;" ";f6 NEXT t DATA 1,1,1,0,0,1,0,0 PRINT PRINT " 1 : 真 0 : 偽" PRINT " NA = NOT ( A )" PRINT " NB = NOT ( B )" PRINT " f3 = AND ( NA, B )" PRINT " f4 = AND ( A, NB )" PRINT " F = OR ( f3, f4 )" PRINT " F'= XOR ( A, B )" PRINT PRINT PRINT PRINT "A と B の真偽が同じ時だけ出力が 1 になる。" PRINT " このような回路を「一致回路」という。" PRINT PRINT " A B ∧ NA NB f4 F F’" PRINT " ===================================" FOR t=1 TO 4 READ a,b LET f1=ANDA(a,b) LET f2=NOTA(a) LET f3=NOTA(b) LET f4=ANDA(f2,f3) LET f5=ORA(f1,f4) LET f6=NOTA(XORA(a,b)) PRINT " ";a;" ";b;" ";f1;" ";f2;" ";f3;" ";f4;" ";f5;" ";f6 NEXT t DATA 1,1,1,0,0,1,0,0 PRINT PRINT " 1 : 真 0 : 偽" PRINT " ∧ = AND ( A, B )" PRINT " NA = NOT( A )" PRINT " NB = NOT( B )" PRINT " f4 = AND ( NA, NB )" PRINT " F = OR ( ∧, f4 )" PRINT " F'= NOT ( XOR ( A, B ))" PRINT END