text: В виде двух кубов размером 3x3x3 (типа кубика Рубика): Куба младшего разряда суммы, состоящего из трёх слоёв: y z = 0 y z = 1 y z = 2 ^ ^ ^ | | | 2 0 1 0 1 2 1 2 0 - 1 2 0 -> x - 2 0 1 -> x - 0 1 2 -> x 0 1 2 1 2 0 2 0 1 | | | FT2N8229 FT2N15613 FT2N5681 и куба старшего разряда суммы (переноса), состоящего из трёх слоёв: y z = 0 y z = 1 y z = 2 ^ ^ ^ | | | 0 0 2 0 0 0 2 0 2 - 0 1 0 -> x - 1 1 0 -> x - 0 0 0 -> x 0 0 0 0 1 0 0 0 2 | | | FT2N13203 FT2N111 FT2N14598 В виде таблицы истинности: В виде двух строк: строки значений младшего разряда (трита) S суммы: 021210102210102021102021210 или c зада наперёд 012120201120201012201012120 строки значений старшего разряда (трита) Cout суммы (трита переноса): 202000200000011010200010000 или с зада наперёд 000010002010110000002000202 Одна из множества возможных реализаций табличного троичного симметричного сумматора: на Java: // Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель // в системе обозначений (-1,0,+1)=(2,0,1) import java.io.*; class TernaryAdderSubstractor { public static void main (String args) throws java.lang.Exception { intS={{{0,1,2},{1,2,0},{2,0,1}},{{1,2,0},{2,0,1},{0,1,2}},{{2,0,1},{0,1,2},{1,2,0}}}; intC={{{0,0,0},{0,1,0},{0,0,2}},{{0,1,0},{1,1,0},{0,0,0}},{{0,0,2},{0,0,0},{2,0,2}}}; int A = 2; // (2,0,1)=(-1,0,+1) int B = 2; // (2,0,1)=(-1,0,+1) int Cin=2; // (2,0,1)=(-1,0,+1) System.out.println("" + C + S); } } на JavaScript: // Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель // в системе обозначений (-1,0,+1)=(2,0,1) //importPackage(java.io); importPackage(java.lang); var S=,,],,,],,,]]; var C=,,],,,],,,]]; var A = 2; // (2,0,1)=(-1,0,+1) var B = 2; // (2,0,1)=(-1,0,+1) var Cin=2; // (2,0,1)=(-1,0,+1) System.out.println( C.toString() + S.toString() ); //alert( C.toString() + S.toString() ); // For Plunker (plnkr.co/edit) на Python: """Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель в системе обозначений (-1,0,+1)=(2,0,1)""" S = ,,],,,],,,]] C = ,,],,,],,,]] A = 2 B = 2 Cin=2 print C,S на С++: // Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель // в системе обозначений (-1,0,+1)=(2,0,1) #include <iostream> using namespace std; void main() { int S={0,1,2,1,2,0,2,0,1, 1,2,0,2,0,1,0,1,2, 2,0,1,0,1,2,1,2,0}; int C={0,0,0,0,1,0,0,0,2, 0,1,0,1,1,0,0,0,0, 0,0,2,0,0,0,2,0,2}; int A = 2; // (2,0,1)=(-1,0,+1) int B = 2; // (2,0,1)=(-1,0,+1) int Cin=0; // (2,0,1)=(-1,0,+1) cout << C << ' ' << S; } на C: // Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель // в системе обозначений (-1,0,+1)=(2,0,1) #include <stdio.h> void main() { int S={0,1,2,1,2,0,2,0,1, 1,2,0,2,0,1,0,1,2, 2,0,1,0,1,2,1,2,0}; int C={0,0,0,0,1,0,0,0,2, 0,1,0,1,1,0,0,0,0, 0,0,2,0,0,0,2,0,2}; int A = 2; // (2,0,1)=(-1,0,+1) int B = 2; // (2,0,1)=(-1,0,+1) int Cin=2; // (2,0,1)=(-1,0,+1) printf("%i%i", C, S); } на PHP: <?php // Табличный одноразрядный (однотритный) троичный симметричный сумматор-вычитатель // в системе обозначений (-1,0,+1)=(2,0,1) $S=,,],,,],,,]]; $C=,,],,,],,,]]; $A = 2; $B = 2; $Cin=2; echo(int)($C); echo(int)($S); ?> (Проверить и изменить коды программ на Java, JavaScript, Python, C++, C, PHP и др. можно во многих онлайн компиляторах, например в онлайн компиляторе для 60 языков программирования на сайте ideone.com.) на TB: ' Save this supermain program as file "job.bas" $include "main%.bas" if fn main% then print "Job done.